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

div przyjmuje inna pozycje niz ustawioną w gridzie

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
+2 głosów
315 wizyt
pytanie zadane 13 listopada 2020 w HTML i CSS przez lacki530 Nowicjusz (140 p.)

Witam. Ustawiłem pozycje diva za pomocą grid-column na 2/3 a on nadal zostaje w kolumnie 1/2. Element "nav" za to zamiast być w 3/12 wyświetla się w2/3. Nie mam pojęcia co robię źle, chociaz to pewnie jakiś banał. Z góry dziękuje.

body
{
    display: grid;
    grid-template-columns: repeat(12, 8vw);
    grid-template-rows: 100px;
    margin:0 auto;
    padding: 0;
    font-family: 'Open Sans', sans-serif;
    width: 1600px;
}

header
{
    display: grid;
}

.logo
{
    grid-row: 1/2;
    grid-column: 2/3; 
    
}
nav
{
    grid-row: 1/2;
    grid-column: 3/12;

}
<body>
    <header>
        <div class="logo">
            <img src="img/Pex_logo.png" alt="logo_pex">
             Photoshop Website template
        </div>
        <nav>
            <a href="#">About</a>
            <a href="#">How it works</a>
            <a href="#">Services</a>
            <a href="#">FAQ</a>
            <a href="#">Contact</a>
            <input>
        </nav>
    </header>
    <main>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <div class="pink_placeholder">
        </div>
        <article>
            <img src="img/Pex_04.png" alt="foto_hand_pencil">
            <h4>lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ipsa itaque molestias sint consequuntur, quo autem eveniet facere error, animi accusamus perferendis est? Ullam enim doloribus iste nesciunt, magnam sunt. Expedita?</p>
        </article>
        <article>
            <h1>Experience the rush today</h1>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Et aliquam eligendi quam dolores aut, magnam unde  </p>
            <img src="img/Pex_06.png" alt="foto_mountain_tree">
            <div class="purple_placeholder">
            </div>
            <div class="purple_button">
                Get Started Today
            </div> 
        </article>
        <img src="img/Pex_07.png" alt="foto_hand_food">
        <article>
            <h4> A HEADING IS WHAT YOU NEED HERE</h4>
            <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Earum quos eos vero, aperiam voluptatem tempora accusantium expedita, nemo doloremque enim velit ea natus illo? Fugit aperiam magnam consectetur dignissimos id!</p>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nisi doloribus tempora nostrum nesciunt, culpa explicabo id impedit hic excepturi ad accusamus, minus, molestias quam. Autem beatae placeat odio ut temporibus?</p>
            <img src="img/Pex_09.png">
        </article>
        <footer>
            <h4>lorem ipsum</h4>
            <p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tenetur itaque, quae sunt quaerat aperiam eligendi possimus molestiae architecto incidunt cum nam inventore vel corporis nisi illum alias similique officiis nesciunt?</p>
        </footer>
    </main>
</body>

 

2 odpowiedzi

+2 głosów
odpowiedź 14 listopada 2020 przez ScriptyChris Mędrzec (190,190 p.)

Jeśli Twoją intencją jest ustawienie elementów div.logo oraz nav względem siatki ustawionej w body (bo tam definiujesz liczbę i rozmiar kolumn), to jest to niemożliwe*, ponieważ:

  • elementami siatki (grid items) są bezpośrednie dzieci kontenera z display: grid, a nie potomkowie (zagnieżdżone dzieci) - natomiast próbujesz ustawiać potomków względem kontenera wyższego niż rodzic, a to tak nie działa*
  • element header posiada display: grid, a więc to on stanowi kontener siatki dla div.logo oraz nav, i to względem niego będą rozmieszczone dzieci w obrębie siatki. Ale, że w header nie zdefiniowałeś rozmiarów  ani liczby kolumn, to (w tym przypadku) ustawienia:
        grid-column: 2/3;
        grid-column: 3/12;
    nie dają wizualnego "efektu pominięcia" pierwszej (zerowej) kolumny, ponieważ ona ma 0px (możesz to sprawdzić w inspektorze elementów).

Rozwiązaniem jest zdefiniowanie kolumn - podobnie jak to zrobiłeś dla body.

*można to próbować obchodzić przy pomocy subgrida, ale to póki co jest dostępne tylko w Firefox.

komentarz 14 listopada 2020 przez lacki530 Nowicjusz (140 p.)
dziękuje :)
0 głosów
odpowiedź 14 listopada 2020 przez VBService Ekspert (256,600 p.)
edycja 14 listopada 2020 przez VBService

Nie będę się rozpisywał, dlaczego znacznik <body> nie nadaje się do ustawienia grid-a, bo @ScriptyChris w Mojej opinii wyczerpał temat. U Mnie się sprawdza taki zapis, że ustawiam kontener dla grid-a, zaraz po <body>

<body>
  <div class="grid-container">

   . . .

  </div>
</body>
@viewport {
    width: device-width;
    initial-scale: 1;
}

*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html, body {
    padding:0;
    margin:0;
    border:0;
}

.grid-container {
    display: grid;
    . . .
}

możesz tworzyć kolejnego grid-a wewnątrz jednej z "komórek" już utworzonego "bazowego" grid-a smiley Codepen

@viewport {
    width: device-width;
    initial-scale: 1;
}
 
*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
 
html, body {
    padding:0;
    margin:0;
    border:0;
}
 
.grid-container {
    display: grid;
    grid-template-columns: 1fr 5fr;
    grid-template-rows: 1fr 1fr;
    gap: 0px 0px;
    grid-template-areas:
      "header main"
      ". main";
  
    margin:0 auto;
    padding: 0;
    font-family: 'Open Sans', sans-serif;
    width: 1300px;
}

.header {
  display: grid;
  grid-template-columns: 1fr 3fr;
  grid-template-rows: 1fr;
  gap: 0px 0px;
  grid-template-areas:
    "logo nav";
  grid-area: header;
}
.logo { grid-area: logo; }
.logo img {
  width: 40px;
  height: 45px;
  margin: 0.5em;
}
.nav { grid-area: nav; }
.nav a { display: block; }

.main { grid-area: main; }


<body>
  <div class="grid-container">
    <div class="header">
        <div class="logo">
          <img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse3.mm.bing.net%2Fth%3Fid%3DOIP.wcn82aRTXN-iChzl9SutNAAAAA%26pid%3DApi&f=1" alt="logo_pex">
          Photoshop Website template
        </div>
        <div class="nav">
          <nav>
            <a href="#">About</a>
            <a href="#">How it works</a>
            <a href="#">Services</a>
            <a href="#">FAQ</a>
            <a href="#">Contact</a>
            <input>
          </nav>
        </div>
    </div>
    <div class="main">
    <main>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <article>
            <h4> lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur velit doloremque itaque perspiciatis temporibus, reprehenderit delectus commodi rem error eaque aut repellat perferendis eveniet voluptates reiciendis ipsum ab, exercitationem dolores!</p>
        </article>
        <div class="pink_placeholder">
        </div>
        <article>
            <img src="img/Pex_04.png" alt="foto_hand_pencil">
            <h4>lorem ipsum</h4>
            <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ipsa itaque molestias sint consequuntur, quo autem eveniet facere error, animi accusamus perferendis est? Ullam enim doloribus iste nesciunt, magnam sunt. Expedita?</p>
        </article>
        <article>
            <h1>Experience the rush today</h1>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Et aliquam eligendi quam dolores aut, magnam unde  </p>
            <img src="img/Pex_06.png" alt="foto_mountain_tree">
            <div class="purple_placeholder">
            </div>
            <div class="purple_button">
                Get Started Today
            </div> 
        </article>
        <img src="img/Pex_07.png" alt="foto_hand_food">
        <article>
            <h4> A HEADING IS WHAT YOU NEED HERE</h4>
            <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Earum quos eos vero, aperiam voluptatem tempora accusantium expedita, nemo doloremque enim velit ea natus illo? Fugit aperiam magnam consectetur dignissimos id!</p>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nisi doloribus tempora nostrum nesciunt, culpa explicabo id impedit hic excepturi ad accusamus, minus, molestias quam. Autem beatae placeat odio ut temporibus?</p>
            <img src="img/Pex_09.png">
        </article>
        <footer>
            <h4>lorem ipsum Footer</h4>
            <p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tenetur itaque, quae sunt quaerat aperiam eligendi possimus molestiae architecto incidunt cum nam inventore vel corporis nisi illum alias similique officiis nesciunt?</p>
        </footer>
    </main>  
    </div>
  </div>
</body>

komentarz 14 listopada 2020 przez lacki530 Nowicjusz (140 p.)
dziękuje

Podobne pytania

0 głosów
2 odpowiedzi 380 wizyt
pytanie zadane 7 sierpnia 2017 w HTML i CSS przez jankowa1ski Gaduła (3,560 p.)
+1 głos
2 odpowiedzi 348 wizyt
pytanie zadane 1 kwietnia 2021 w HTML i CSS przez Nearr Obywatel (1,890 p.)
0 głosów
1 odpowiedź 302 wizyt
pytanie zadane 12 kwietnia 2018 w HTML i CSS przez barteku12 Obywatel (1,340 p.)

93,435 zapytań

142,430 odpowiedzi

322,666 komentarzy

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

...