تحديد إتجاه المحتوى في HTML
في عالم الويب، المحتوى مش دايماً بيمشي من الشمال لليمين (LTR). فيه لغات كتير زي العربية والعبرية بتبدأ من اليمين لليسار (RTL). كمهندس HTML محترف، لازم تعرف إزاي تتحكم في إتجاه المحتوى ده عشان موقعك يبان صح في كل اللغات.
خاصية dir
دي أهم خاصية بتحدد إتجاه المحتوى لأي عنصر HTML. ممكن تحطها على الـ القيم اللي ممكن تاخدها:
ملاحظة: دايماً الأفضل إنك تحدد الـ مثال:
عنصر الـ مثال:
ممكن تتحكم في الإتجاه باستخدام CSS بخاصية مثال CSS:
نصيحة ذهبية: استخدم خاصية
دي مفيدة جداً في حقول إدخال النص (text areas) أو في أي محتوى جاي من قاعدة بيانات أو API ومش ضامن إتجاهه. المتصفح هيحلل أول حروف قوية في النص ويحدد الإتجاه بناءً عليها.
مثال:
بس كده، عرفت إزاي تتحكم في إتجاه المحتوى في HTML. طبق الكلام ده عشان موقعك يكون قوي ومرن لكل المستخدمين حول العالم!
نفسه عشان تحدد الإتجاه الافتراضي للصفحة كلها، أو على أي عنصر تاني زي عشان تغير الإتجاه لعنصر معين.
ltr: إتجاه من الشمال لليمين (Left-to-Right). ده الإتجاه الافتراضي لمعظم المتصفحات.rtl: إتجاه من اليمين لليسار (Right-to-Left). للغات زي العربية.auto: المتصفح بيحاول يكتشف الإتجاه بناءً على أول حرف قوي في المحتوى. مفيدة جداً لما يكون عندك محتوى جاي من المستخدم ومش عارف إتجاهه.
dir على عنصر الـ وكمان تحدد الـ lang عشان المتصفحات ومحركات البحث تفهم لغة واتجاه الصفحة صح.
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>صفحة RTL</title>
</head>
<body>
<h1>مرحباً بالعالم!</h1>
<p>هذا النص مكتوب باللغة العربية ويتجه من اليمين لليسار.</p>
<div dir="ltr">
This div content is forced to be LTR.
</div>
</body>
</html>عنصر
<bdo><bdo> (Bi-Directional Override) بيسمحلك تعمل override أو إلغاء مؤقت لاتجاه النص في جزء معين. لازم تستخدم معاه خاصية dir (بقيمة ltr أو rtl).
<p dir="rtl">
هذا النص عربي، لكن الكلمة التالية <bdo dir="ltr">HELLO</bdo> ستظهر من اليسار لليمين.
</p>خاصية
direction في CSSdirection. القيم هي ltr و rtl. لكن خلي بالك، الـ CSS بتأثر على الـ presentation مش على الـ semantics (معنى المحتوى). عشان كده الأفضل دايماً تستخدم خاصية dir في HTML.
<style>
.rtl-text {
direction: rtl;
unicode-bidi: embed; /* مهم جداً عشان CSS direction تشتغل صح */
}
</style>
<p class="rtl-text">
هذا نص عربي تم تحديد اتجاهه بـ CSS.
</p>
dir في HTML لتحديد إتجاه المحتوى الأساسي والـ lang لتحديد اللغة. خلي الـ CSS لضبط التنسيقات الجمالية بس، إلا في حالات نادرة جداً لما تحتاج تتحكم في الإتجاه ديناميكياً بـ JavaScript مثلاً.
متى تستخدم
dir="auto"؟<label for="user-input">أدخل نصاً هنا:</label>
<textarea id="user-input" dir="auto"></textarea>