align
تُستخدم بشكل مُباشر لمحاذاة العناصر. بدلاً من ذلك، هناك مجموعة من الخصائص تُستخدم لمحاذاة العناصر بأنواعها المختلفة، سواء كانت نصوصًا، عناصر صور، عناصر صندوقية، أو عناصر مرنة (Flexbox). سأشرح لك أهم هذه الخصائص وكيفية استخدامها:1. محاذاة النصوص (Text Alignment):
تُستخدم الخاصية text-align
لمحاذاة النصوص داخل عنصر ما بشكل أفقي.
-
القيم المُمكنة لـ
text-align
:left
: محاذاة النص إلى اليسار (القيمة الافتراضية).right
: محاذاة النص إلى اليمين.center
: توسيط النص.justify
: ضبط النص، حيث يتم توزيع المسافات بين الكلمات لجعل سطور النص متساوية الطول.start
: يُحاذي النص إلى بداية اتجاه الكتابة (يسارًا في اللغات التي تُكتب من اليسار إلى اليمين، ويمينًا في اللغات التي تُكتب من اليمين إلى اليسار).end
: يُحاذي النص إلى نهاية اتجاه الكتابة.
-
مثال:
p { text-align: center; /* توسيط النص داخل الفقرة */}
div { text-align: right; /* محاذاة النص إلى اليمين داخل div */}
2. محاذاة العناصر الصندوقية (Box Alignment):
لا تُستخدم text-align
لمحاذاة العناصر الصندوقية (مثل div
، span
، img
) بشكل عمودي. لمحاذاة هذه العناصر، نستخدم طرقًا مختلفة، منها:
- الهوامش التلقائية (Auto Margins): يُمكن توسيط عنصر صندوقي أفقيًا عن طريق تعيين قيمة
auto
للهوامش الجانبيةmargin-left
وmargin-right
. - جرب الان
div { width: 50%; margin-left: auto; margin-right: auto;}
- خاصية
vertical-align
: تُستخدم لمحاذاة العناصر السطرية (inline) أو عناصر الجدول عموديًا بالنسبة إلى خط الأساس (baseline) للعنصر الأب. لها قيم متعددة مثلtop
،middle
،bottom
،baseline
، وغيرها.
img { vertical-align: middle; /* توسيط الصورة عموديًا بالنسبة للنص المجاور */}
-
خاصية
display: flex
معalign-items
وjustify-content
: تُعتبر هذه الطريقة الأكثر قوة ومرونة لمحاذاة العناصر، خاصةً مع تصميمات الويب الحديثة.align-items
: تُستخدم لمحاذاة العناصر على المحور العمودي (المحور المُتقاطع).justify-content
: تُستخدم لمحاذاة العناصر على المحور الأفقي (المحور الرئيسي).- جرب الان
.container { display: flex; align-items: center; /* توسيط العناصر عموديًا */ justify-content: center; /* توسيط العناصر أفقيًا */}
- خاصية
display: grid
معalign-items
وjustify-items
وplace-items
وalign-content
وjustify-content
وplace-content
: تُوفر Grid Layout نظامًا قويًا آخر لمحاذاة العناصر في صفوف وأعمدة.
3. محاذاة العناصر المرنة (Flexbox Alignment):
كما ذكرت أعلاه، يُعتبر Flexbox نظامًا قويًا ومرنًا لمحاذاة العناصر. أهم الخصائص المُستخدمة في Flexbox لمحاذاة العناصر هي:
justify-content
: تُستخدم لمحاذاة العناصر على المحور الرئيسي (عادةً ما يكون أفقيًا). قيمها:flex-start
،flex-end
،center
،space-between
،space-around
،space-evenly
.align-items
: تُستخدم لمحاذاة العناصر على المحور المُتقاطع (عادةً ما يكون عموديًا). قيمها:flex-start
،flex-end
،center
،baseline
،stretch
.align-self
: تُستخدم لمحاذاة عنصر واحد داخل حاوية Flexbox بشكل مُنفرد، وتتجاوز قيمةalign-items
المُطبقة على الحاوية.align-content
: تُستخدم لمحاذاة أسطر العناصر في حالة وجود أكثر من سطر في حاوية Flexbox.
4. محاذاة عناصر Grid (Grid Layout Alignment):
يُوفر Grid Layout نظامًا مُتقدمًا لمحاذاة العناصر في صفوف وأعمدة. أهم الخصائص المُستخدمة في Grid لمحاذاة العناصر هي:
justify-items
: تُستخدم لمحاذاة العناصر داخل خلايا الشبكة على المحور الأفقي.align-items
: تُستخدم لمحاذاة العناصر داخل خلايا الشبكة على المحور العمودي.justify-content
: تُستخدم لمحاذاة مساحة الشبكة نفسها على المحور الأفقي داخل حاوية الشبكة.align-content
: تُستخدم لمحاذاة مساحة الشبكة نفسها على المحور العمودي داخل حاوية الشبكة.place-items
: خاصية مُختصرة لـalign-items
وjustify-items
.place-content
: خاصية مُختصرة لـalign-content
وjustify-content
.
باختصار، لا توجد خاصية align
مُستقلة في CSS. بدلاً من ذلك، هناك مجموعة من الخصائص تُستخدم لمحاذاة العناصر بأنواعها المختلفة، ويعتمد اختيار الخاصية المُناسبة على نوع العنصر وطريقة عرضه. يُعتبر استخدام Flexbox و Grid Layout من أفضل وأقوى الطرق لمحاذاة العناصر في تصميمات الويب الحديثة.