إتقان محاذاة Div مع CSS
يعد توسيط العناصر أفقيًا في CSS مهمة شائعة يواجهها مطورو الويب. سواء أكان الأمر يتعلق بمحاذاة زر أو صورة أو div، فإن تحقيق المحاذاة المثالية قد يكون أمرًا صعبًا في بعض الأحيان. في هذا الدليل، سنستكشف طرقًا مختلفة لتوسيط أ أفقيًا
ومن خلال فهم هذه التقنيات وتطبيقها، يمكنك التأكد من وضع عناصر الويب الخاصة بك بدقة في المكان الذي تريده. سنغطي أساليب مختلفة، بما في ذلك flexbox، والشبكة، والأساليب التقليدية، لنمنحك فهمًا شاملاً لمهارة CSS الأساسية هذه.
يأمر | وصف |
---|---|
display: flex; | يحدد الحاوية المرنة ويمكّن تخطيط flexbox. |
justify-content: center; | توسيط العناصر أفقيًا داخل حاوية مرنة. |
align-items: center; | توسيط العناصر عموديًا داخل حاوية مرنة. |
place-items: center; | توسيط العناصر أفقيًا وعموديًا في حاوية الشبكة. |
transform: translate(-50%, -50%); | يقوم بإزاحة عنصر بنسبة 50% من عرضه وارتفاعه لتوسيطه. |
position: absolute; | يضع عنصرًا بالنسبة إلى أقرب سلف له. |
top: 50%; | يضع العنصر على مسافة 50% من أعلى العنصر الذي يحتوي عليه. |
left: 50%; | يضع العنصر على مسافة 50% من يسار العنصر الذي يحتوي عليه. |
توسيط العناصر باستخدام Flexbox وGrid وCSS التقليدي
يوضح البرنامج النصي الأول كيفية توسيط أ
في النص الثاني نستخدم لتحقيق نتائج مماثلة. عن طريق التقديم إلى الحاوية الأم و ، يتم توسيط العناصر الفرعية أفقيًا وعموديًا. هذه الطريقة مفيدة بشكل خاص للتخطيطات المستندة إلى الشبكة. وأخيرا، الطريقة التقليدية تنطوي على الإعداد position: absolute; على العنصر الفرعي واستخدامه و مع لتوسيطها داخل الأصل. هذا الأسلوب فعال للعناصر ذات الحجم الثابت.
استخدام Flexbox لتوسيط Div أفقيًا
HTML وCSS مع Flexbox
<!DOCTYPE html>
<html>
<head>
<title>Flexbox Centering</title>
<style>
#outer {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
border: 1px solid black;
}
#inner {
padding: 20px;
background-color: lightblue;
border: 1px solid blue;
}</style>
</head>
<body>
<div id="outer">
<div id="inner">Foo foo</div>
</div>
</body>
</html>
توسيط Div باستخدام CSS Grid
HTML وCSS مع تخطيط الشبكة
<!DOCTYPE html>
<html>
<head>
<title>Grid Centering</title>
<style>
#outer {
display: grid;
place-items: center;
height: 100vh;
border: 1px solid black;
}
#inner {
padding: 20px;
background-color: lightgreen;
border: 1px solid green;
}</style>
</head>
<body>
<div id="outer">
<div id="inner">Foo foo</div>
</div>
</body>
</html>
الطريقة التقليدية للتوسيط مع CSS
HTML وCSS مع هامش تلقائي
<!DOCTYPE html>
<html>
<head>
<title>Traditional Centering</title>
<style>
#outer {
width: 100%;
height: 100vh;
border: 1px solid black;
position: relative;
}
#inner {
width: 50px;
padding: 20px;
background-color: lightcoral;
border: 1px solid red;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}</style>
</head>
<body>
<div id="outer">
<div id="inner">Foo foo</div>
</div>
</body>
</html>
التقنيات المتقدمة لتوسيط العناصر
هناك طريقة أخرى لتوسيط العناصر أفقيًا داخل الحاوية تتضمن استخدام ملكية. يعد هذا الأسلوب فعالاً بشكل خاص بالنسبة للعناصر المضمنة أو المضمنة. عن طريق التقديم إلى الحاوية الأصلية، سيتم توسيط جميع العناصر الفرعية أفقيًا. ومع ذلك، لا تعمل هذه الطريقة مع العناصر على مستوى الكتلة إلا إذا تم تحويلها إلى كتلة مضمّنة.
بالإضافة إلى ذلك، يمكنك استخدام خاصية توسيط العناصر على مستوى الكتلة. من خلال ضبط الهوامش اليمنى واليسرى لعنصر ما على الوضع التلقائي، يمكنك توسيطه أفقيًا داخل الحاوية الأصلية الخاصة به. هذه التقنية بسيطة وتعمل بشكل جيد مع العناصر ذات العرض الثابت. يوفر الجمع بين هذه الأساليب وتقنيات تخطيط CSS الحديثة مثل Flexbox وGrid مجموعة أدوات شاملة لمحاذاة العناصر بدقة حسب الحاجة.
- كيف يمكنني توسيط عنصر مضمن؟
- يستخدم على الحاوية الأصل لتوسيط العناصر المضمنة.
- هل يمكنني استخدام الهامش: تلقائي؛ لتوسيط عنصر الكتلة؟
- نعم، الإعداد على الجانبين الأيسر والأيمن سوف يتم توسيط عنصر الكتلة.
- ما هو الفرق بين Flexbox وGrid للتمركز؟
- يستخدم للتخطيطات أحادية البعد، بينما مخصص للتخطيطات ثنائية الأبعاد.
- كيف يمكنني توسيط عنصر ذو عرض ثابت باستخدام CSS؟
- يستخدم أو مع
- هل يمكنني توسيط العناصر عموديًا باستخدام Flexbox؟
- نعم استخدم لتوسيط العناصر عموديًا في حاوية مرنة.
- هل تتم محاذاة النص: center؛ العمل لعناصر الكتلة؟
- لا، يعمل فقط مع العناصر المضمنة أو المضمنة.
- كيف أقوم بتوسيط عناصر متعددة في الحاوية؟
- يستخدم مع و
- ما هي عناصر المكان: المركز؛ في الشبكة؟
- توسيط العناصر أفقيًا وعموديًا في حاوية الشبكة.
- هل من الممكن توسيط العناصر بدون Flexbox أو Grid؟
- نعم، باستخدام أساليب مثل , ، أو يمكن أيضًا توسيط العناصر.
اختتام تقنيات توسيط CSS
يعد فهم كيفية توسيط العناصر أفقيًا باستخدام أساليب CSS المختلفة أمرًا ضروريًا لإنشاء تخطيطات ويب جذابة بصريًا. من خلال إتقان تقنيات مثل , ، و العقارات، يمكن للمطورين التأكد من أن تصميماتهم وظيفية وممتعة من الناحية الجمالية. ستوفر تجربة هذه الأساليب فهمًا أعمق لقدرات CSS.