Menu
Coddy logo textTech

המרכז המושלם

חלק מהיחידה עיצוב באמצעות CSS במסלול ה-HTML של Coddy. שיעור 48 מתוך 76.

ב-CSS, השגת "מרכז מושלם" — מיקום של רכיב במרכז, הן אופקית והן אנכית, בתוך רכיב האב שלו — היא אתגר נפוץ בעיצוב פריסות. Flexbox מספק פתרון אלגנטי ופשוט לבעיה הזו. בשילוב המאפיינים justify-content ו-align-items, אפשר למרכז בקלות רכיב ילד בתוך מכל Flex שלו, ללא קשר לגודל של רכיב הילד או של רכיב האב. 

כך אפשר להגיע למרכוז מושלם באמצעות Flexbox:

.container {
    display: flex; /* הפכו את אלמנט האב למכל flex */
    justify-content: center; /* מרכזו את אלמנט הבן אופקית לאורך הציר הראשי */
    align-items: center; /* מרכזו את אלמנט הבן אנכית לאורך הציר המשני */
}

כדי שהטכניקה הזאת תפעל ביעילות, ודאו שלמכל הגמיש יש גובה מוגדר. אם הגובה של המכל לא מוגדר במפורש, הוא יהיה גבוה רק במידה הנדרשת לתוכן שלו, וייתכן שמרכוז אנכי לא יהיה ניכר.

הנה דוגמה לשימוש בטכניקה הזאת ב-HTML:

<div class="container">
    <div class="child">This is centered</div>
</div>
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px; /* הגדר גובה מסוים למכל */
    border: 1px solid black; /* אופציונלי: הוסף מסגרת להמחשה */
}

.child {
    padding: 20px;
    border: 1px solid red;
}

בדוגמה הזו, הגובה של האלמנט .container הוא 300px, והאלמנט .child יהיה ממורכז בדיוק בתוכו הן אופקית והן אנכית.

challenge icon

אתגר

קל

ניתן לך מסמך HTML עם אזור חלוקה הורה (<div>) שמכיל אזור חלוקה ילד (<div>). המשימה שלך היא להשתמש ב-Flexbox כדי למרכז באופן מושלם את אזור החלוקה הילד בתוך אזור החלוקה ההורה. פעל לפי השלבים הבאים:

  1. כתוב כלל CSS שמכוון לרכיב <div> עם המחלקה parent.
  2. הגדר את המאפיין display של הרכיב .parent לערך flex כדי להפוך אותו למכל גמיש.
  3. הגדר את המאפיין justify-content של הרכיב .parent לערך center כדי למרכז את הילד אופקית.
  4. הגדר את המאפיין align-items של הרכיב .parent לערך center כדי למרכז את הילד אנכית.
  5. תן לרכיב .parent גובה של 200px כדי לוודא שהיישור האנכי למרכז יהיה גלוי.

נסו בעצמכם

<html>
<head>
    <title>The Perfect Center</title>
    <style>
        /* Write CSS rules here */
    </style>
</head>
<body>
    <div class="parent">
        <div class="child">Center Me</div>
    </div>
</body>
</html>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה עיצוב באמצעות CSS

תרגלו בעצמכם: Web אונליין