• 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();

VPS Starter Arubacloud
+1 głos
178 wizyt
pytanie zadane 19 kwietnia w HTML i CSS przez Gamin Użytkownik (780 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 przez VBService Ekspert (255,840 p.)
wybrane 19 kwietnia 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 przez Gamin Użytkownik (780 p.)

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

komentarz 20 kwietnia przez VBService Ekspert (255,840 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 przez Panelinio Stary wyjadacz (10,210 p.)


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

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

Podobne pytania

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

93,032 zapytań

141,995 odpowiedzi

321,300 komentarzy

62,379 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...