كيف اوزع مساحة الاب الافقية (العرض) على ابنائه بالتساوي ؟ من غير استخدام width: %x

Alasdee_Ali

بطريقة اوتماتيكية كما الفليكس بوكس وليس بحساب العرض وتقسيمه عليهم.

الflex-basis or grow for example


التعليق السابق

فهمتك شكرا جزيلا، ولكن الا يعني هذا اننا نستخدم الخاصية f-grow ؟

+ كيف اخبره ان يعمل break للسطر عند عدد ابناء معين .(css) .

نعم بالفعل هذه الخاصية هي short hand لثلاث خصائص flex-grow و flex-shrink و flex-basis يمكنك وضع الثلاث قيم معا في سطر واحد .

وما قمنا به هو وضع 1 لقيمة flex-grow و يمكنك إستبدال flex ب flex-grow إذا أردت .

أما بخصوص عمل break بعد عدد عناصر معين يمكنك إستخدام الخاصية flex-basis هكذا :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .container {
            display: flex;
            flex-wrap: wrap;
        }
        .item {
            flex-grow: 1;
            flex-basis: 30%;
            box-sizing: border-box;
            padding: 10px;
            border: 1px solid #000;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
    </div>
</body>
</html>

لاحظ هنا إستخدمنا الخاصة flex-basis ووضعناها 30% أي أننا نريد ثلاث عناصر فقط في الصف ويمكنك تحديد النسبة بناء على عدد العناصر التي تريدها ويمكنك إستخدام ال short hand كالتالي :

.item {
flex: 1 1 30%;
box-sizing: border-box;
padding: 10px;
border: 1px solid #000;
}

وهذه هي النتيجة التي ستحصل عليها