סידור DIV שיתפוס את כל השטח - CSS

davidnead

משתמש צעיר
D I G I T A L
אני מנסה לבצע את המשימה הבאה:

בתוך div מסויים, אני רוצה להכניס עוד כמה divs. אני רוצה שכל הdivs יחד ימלאו 100% מהשטח של הdiv החיצוני. אם הייתי יודע מראש את מספר הdivs לא הייתה בעיה, למשל אם המספר הוא 3 הייתי נותן לכל אחד33%. הבעיה שזה קור בזמן ריצה על פי נתונים שנשאבים ממסד נתונים, אין לי מושג מראש כמה divs יהיהו. איזו הגדרה אני יכול לתת להם כדי שכל אחד יתפוס את כל השטח, וכאשר מגיע עוד אחד הוא יקטין את הקודם וימלא את השטח שנוצר?

תודה
 

GolanArt

משתמש סופר מקצוען
עיצוב גרפי
צילום מקצועי
הדמיות בתלת מימד
D I G I T A L
עיצוב ואדריכלות פנים
פשוט מאד. תן לדיב הראשי שלך דיספלאי: פלקס, ולדיב הפנימי פלקס: 1

הנה דוגמה:

קוד:
<div class = "div1">

 <div class = "div2">
 </div> 

 <div class = "div2"> 
 </div> 

<div class = "div2"> 
</div>

</div>


<style>

.div1{
height:500px;
width:500px;
background-color:red;
display: flex;
}
.div2{
height:400px;
background-color:blue;
border: 2px black solid;
float:right;
flex: 1;
}

</style>
 
נערך לאחרונה ב:

davidnead

משתמש צעיר
D I G I T A L
תודה רבה! אני לא מכיר בכלל את ההגדרה flex, אני לא בטוח שהבנתי כיצד להשתמש בה.

למשל, זה הקוד שלי:
קוד:
var parentDiv = $("<div>").css(}"height"" "500px", display: "flex"})
$("body").append(parentDiv)

for (i=0;i<arr.lenght;i++){       //האורך של arr לא ידוע
   $(parentDiv).append(
        $("<div">).css({height: "100%", flex:1})
   )
}

לזה התכוונת? זה אמור לעבוד?

פשוט מאד. תן לדיב הראשי שלך דיספלאי: פלקס, ולדיב הפנימי פלקס: 1

הנה דוגמה:

קוד:
<div class = "div1">

 <div class = "div2">
 </div>

 <div class = "div2">
 </div>

<div class = "div2">
</div>

</div>


<style>

.div1{
height:500px;
width:500px;
background-color:red;
display: flex;
}
.div2{
height:400px;
background-color:blue;
border: 2px black solid;
float:right;
flex: 1;
}

</style>
 

GolanArt

משתמש סופר מקצוען
עיצוב גרפי
צילום מקצועי
הדמיות בתלת מימד
D I G I T A L
עיצוב ואדריכלות פנים
תודה רבה! אני לא מכיר בכלל את ההגדרה flex, אני לא בטוח שהבנתי כיצד להשתמש בה.

למשל, זה הקוד שלי:
קוד:
var parentDiv = $("<div>").css(}"height"" "500px", display: "flex"})
$("body").append(parentDiv)

for (i=0;i<arr.lenght;i++){       //האורך של arr לא ידוע
   $(parentDiv).append(
        $("<div">).css({height: "100%", flex:1})
   )
}

לזה התכוונת? זה אמור לעבוד?
זה אני לא יודע לענות לך, אני לא בקיא מספיק בJS...
אבל אם תריץ את הCSS שנתתי לך תראה איך זה עובד.
 

davidnead

משתמש צעיר
D I G I T A L
tu
זה אני לא יודע לענות לך, אני לא בקיא מספיק בJS...
אבל אם תריץ את הCSS שנתתי לך תראה איך זה עובד.
אוקי, תודה רבה. זה עבד יופי. זה אכן סידר אותם זה לצד זה. כעת, כוונתי הייתה לגובה, זה מעל זה. איזו הגדרה צריך לשנות? אי לא מבין איך הפלקס הזה עובד, אז לא מבין מה הגדיר אותם לעמוד לרוחב. זה סוג של float?
 

GolanArt

משתמש סופר מקצוען
עיצוב גרפי
צילום מקצועי
הדמיות בתלת מימד
D I G I T A L
עיצוב ואדריכלות פנים
tu

אוקי, תודה רבה. זה עבד יופי. זה אכן סידר אותם זה לצד זה. כעת, כוונתי הייתה לגובה, זה מעל זה. איזו הגדרה צריך לשנות? אי לא מבין איך הפלקס הזה עובד, אז לא מבין מה הגדיר אותם לעמוד לרוחב. זה סוג של float?
לגובה? למה צריכים לגובה?
 

GolanArt

משתמש סופר מקצוען
עיצוב גרפי
צילום מקצועי
הדמיות בתלת מימד
D I G I T A L
עיצוב ואדריכלות פנים
נסה את הקוד הזה (שים לב! כדי להדגיש בחרתי עובי קו שחור של 2PX, לכן הגדרתי רוחב
מינימלי של 31% אבל בהעדר קו מתאר (בורדר) אתה תשתמש ב33%)
בקוד הזה אחרי שלושה דיבים יש נפילת שורה, אבל אם תרצה שהאחרון לא יתפוס את
כל השורה, אז תוסיף עוד שלושה דיבים שקופים באופן קבוע אחרי הדיב האחרון.

קוד:
<div class = "div1">
 <div class = "div2">

 </div>
 <div class = "div2">
 
 </div>
 <div class = "div2">

 </div>
<div class = "div2">


</div>
</div>
<style>
.div1{
height:500px;
width:500px;
background-color:red;
display: flex;
flex-wrap: wrap;
}
.div2{
height:400px;
background-color:blue;
border: 2px black solid;
float:right;
flex: 1;
min-width:31%;

}

</style>
 

davidnead

משתמש צעיר
D I G I T A L
תודה רבה! אך למעשה, המדריך שאיש פשוט נתן, נתן לי את הפתרון הפשוט, הייתי רק צריך לשנות את ההגדרה משורה לעמודה, כך:
"flex-direction": "column"
אולי לא הייתי מספיק ברור בשאלה.
בכל אופן, תודה רבה. זה ידע חשוב מאוד, היו לי חיים יותר קלים בCSS אם הייתי מכיר את הפלקס קודם. זה מה שקורה כשאתה לומד CSS ממדריכים ישנים באינטרנט.
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קלב

א שִׁיר הַמַּעֲלוֹת זְכוֹר יְהוָה לְדָוִד אֵת כָּל עֻנּוֹתוֹ:ב אֲשֶׁר נִשְׁבַּע לַיהוָה נָדַר לַאֲבִיר יַעֲקֹב:ג אִם אָבֹא בְּאֹהֶל בֵּיתִי אִם אֶעֱלֶה עַל עֶרֶשׂ יְצוּעָי:ד אִם אֶתֵּן שְׁנַת לְעֵינָי לְעַפְעַפַּי תְּנוּמָה:ה עַד אֶמְצָא מָקוֹם לַיהוָה מִשְׁכָּנוֹת לַאֲבִיר יַעֲקֹב:ו הִנֵּה שְׁמַעֲנוּהָ בְאֶפְרָתָה מְצָאנוּהָ בִּשְׂדֵי יָעַר:ז נָבוֹאָה לְמִשְׁכְּנוֹתָיו נִשְׁתַּחֲוֶה לַהֲדֹם רַגְלָיו:ח קוּמָה יְהוָה לִמְנוּחָתֶךָ אַתָּה וַאֲרוֹן עֻזֶּךָ:ט כֹּהֲנֶיךָ יִלְבְּשׁוּ צֶדֶק וַחֲסִידֶיךָ יְרַנֵּנוּ:י בַּעֲבוּר דָּוִד עַבְדֶּךָ אַל תָּשֵׁב פְּנֵי מְשִׁיחֶךָ:יא נִשְׁבַּע יְהוָה לְדָוִד אֱמֶת לֹא יָשׁוּב מִמֶּנָּה מִפְּרִי בִטְנְךָ אָשִׁית לְכִסֵּא לָךְ:יב אִם יִשְׁמְרוּ בָנֶיךָ בְּרִיתִי וְעֵדֹתִי זוֹ אֲלַמְּדֵם גַּם בְּנֵיהֶם עֲדֵי עַד יֵשְׁבוּ לְכִסֵּא לָךְ:יג כִּי בָחַר יְהוָה בְּצִיּוֹן אִוָּהּ לְמוֹשָׁב לוֹ:יד זֹאת מְנוּחָתִי עֲדֵי עַד פֹּה אֵשֵׁב כִּי אִוִּתִיהָ:טו צֵידָהּ בָּרֵךְ אֲבָרֵךְ אֶבְיוֹנֶיהָ אַשְׂבִּיעַ לָחֶם:טז וְכֹהֲנֶיהָ אַלְבִּישׁ יֶשַׁע וַחֲסִידֶיהָ רַנֵּן יְרַנֵּנוּ:יז שָׁם אַצְמִיחַ קֶרֶן לְדָוִד עָרַכְתִּי נֵר לִמְשִׁיחִי:יח אוֹיְבָיו אַלְבִּישׁ בֹּשֶׁת וְעָלָיו יָצִיץ נִזְרוֹ:
נקרא  24  פעמים

אתגר AI

תקווה לעתיד טוב יותר • אתגר 17

לוח מודעות

למעלה