• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiana szerokości divów po użyciu flex-basis: calc();

Cloud VPS
+1 głos
288 wizyt
pytanie zadane 19 kwietnia 2024 w HTML i CSS przez Gamin Użytkownik (800 p.)

Witam, mam mały problem z kodem. Po 11-stym divie, pozostałe 9 ma się znaleźć w kolejnej linii (co zrobiłem), ale przy tym szerokość i wysokość divów uległy zmianie (szer. 84px zamiast 50px). Jak usunę flex-basis: calc() to szerokość wraca do normy (50px). Mógłby ktoś podpowiedzieć dlaczego tak się dzieje? Chciałbym otrzymać efekt jak na zdjęciu nr 1:

a otrzymuję coś takiego: 

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Zadanie 10</title>
</head>
<body>
    <style>
        .numbersbox {
          position: fixed;
          border: 1px dashed black;
          background-color: #fdf7ed;
          display: flex;
          flex-wrap: wrap;
          justify-content: space-between;
          column-gap: 1px;
        }
        
        .number {
          width: 50px;
          height: 50px;
          line-height: 50px;
          text-align: center;
          color: white;
        }

        .numbersbox > div {
          flex-basis: calc(100%/12);
        }
        
        .one {
          background-color: #9b2915;
          height: 50px;
        }
        
        .two {
          background-color: #E6AC37;
          height: 75px;
        }
        
        .three {
          background-color: #50A2A7;
          height: 100px;
        }
        
        .four {
          background-color: #000F08;
          height: 125px;
        }
        
        .five {
          background-color: #5F4BB6;
          height: 150px;
        }
        </style>
        
        
        <div class="numbersbox">
          <div class="number one">1</div>
          <div class="number two">2</div>
          <div class="number three">3</div>
          <div class="number four">4</div>
          <div class="number five">5</div>
        
          <div class="number one">1</div>
          <div class="number two">2</div>
          <div class="number three">3</div>
          <div class="number four">4</div>
          <div class="number five">5</div>
        
          <div class="number one">1</div>
          <div class="number two">2</div>
          <div class="number three">3</div>
          <div class="number four">4</div>
          <div class="number five">5</div>
        
          <div class="number one">1</div>
          <div class="number two">2</div>
          <div class="number three">3</div>
          <div class="number four">4</div>
          <div class="number five">5</div>
        </div>
</body>
</html>

 

2 odpowiedzi

+3 głosów
odpowiedź 19 kwietnia 2024 przez VBService Ekspert (256,600 p.)
wybrane 19 kwietnia 2024 przez Gamin
 
Najlepsza

AFAIK, flex-basis "nadpisuje" wyliczone wartość co do width i height, tylko użycie auto powoduje odniesienie do width i height

Note: In case both flex-basis (other than auto) and width (or height in case of flex-direction: column) are set for an element, flex-basis has priority.

 

może spróbuj tak:

[ przykładowy kod on-line ]

      .numbersbox {
        --width: 50px;
        position: fixed;
        border: 1px dashed black;
        background-color: #fdf7ed;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        column-gap: 1px;
        width: calc(var(--width) * 12);
      }

      .number {
        line-height: 50px;
        text-align: center;
        color: white;
      }

      .numbersbox > div {        
        flex: 0 0 var(--width);
      }

 

komentarz 19 kwietnia 2024 przez Gamin Użytkownik (800 p.)

Heh, liczyłem chociaż na samą podpowiedź, a dostałem gotowe rozwiązanie. Dziękuję laugh

komentarz 20 kwietnia 2024 przez VBService Ekspert (256,600 p.)

Czasem ciężko jest coś opisać na tyle prosto, żeby ktoś inny mógł to zrozumieć równie prosto. Lubię pewien cytat od Linus-a Torvalds-a.

"Talk is cheap. Show me the code!" - Linus Torvalds.

+1 głos
odpowiedź 19 kwietnia 2024 przez Panelinio Stary wyjadacz (10,640 p.)


Jak dla mnie jest w porządku. Może przeglądarka źle kompiluje? Czego używasz?

komentarz 19 kwietnia 2024 przez Gamin Użytkownik (800 p.)
Głównie Chrome, ale na Brave również są problemy.

Podobne pytania

0 głosów
2 odpowiedzi 374 wizyt
pytanie zadane 14 marca 2018 w HTML i CSS przez Selfie Początkujący (440 p.)
0 głosów
2 odpowiedzi 1,325 wizyt
pytanie zadane 8 czerwca 2018 w HTML i CSS przez Jarver Użytkownik (820 p.)
0 głosów
2 odpowiedzi 353 wizyt
pytanie zadane 13 kwietnia 2019 w HTML i CSS przez Gekon Początkujący (380 p.)

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,903 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...