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

Object Storage Arubacloud
+1 głos
115 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 (254,440 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 (254,440 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 Mądrala (5,230 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 286 wizyt
pytanie zadane 14 marca 2018 w HTML i CSS przez Selfie Początkujący (440 p.)
0 głosów
2 odpowiedzi 1,109 wizyt
pytanie zadane 8 czerwca 2018 w HTML i CSS przez Jarver Użytkownik (820 p.)
0 głosów
2 odpowiedzi 205 wizyt
pytanie zadane 13 kwietnia 2019 w HTML i CSS przez Gekon Początkujący (380 p.)

92,624 zapytań

141,482 odpowiedzi

319,822 komentarzy

62,005 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...