Responsywne projektowanie stron internetowych - siatka wizualna

Co to jest siatka wizualna?

Wiele stron internetowych opiera się na siatce wizualnej (grid-view), co oznacza, że strona jest podzielona na kilka kolumn:

Użycie siatki wizualnej w projektowaniu stron internetowych jest bardzo pomocne. Pozwala to na łatwiejsze umieszczanie elementów na stronie.

Responsywne siatki wizualne zazwyczaj mają 12 kolumn, całkowitą szerokość 100%, i rozszerzają się i kurczą się podczas zmiany rozmiaru okna przeglądarki.

Budowanie responsywnej siatki wizualnej

Zacznijmy budować responsywną siatkę wizualną.

Najpierw upewnij się, że wszystkie elementy HTML box-sizing właściwość ustawiona na border-boxW ten sposób można upewnić się, że całkowita szerokość i wysokość elementu zawiera wewnętrzne marginesy (wypełnienie) i ramki.

Dodaj następujący kod do CSS:

* {
  box-sizing: border-box;
}

Proszę, odwiedź nasz CSS Box Sizing Przeczytaj więcej o właściwości box-sizing w rozdziale.

Poniższy przykład pokazuje prostą responsywną stronę internetową, która zawiera dwie kolumny:

25%
75%

przykład

.menu {
  szerokość: 25%;
  float: left;
}
.main {
  szerokość: 75%;
  float: left;
}

Spróbuj Sam

Jeśli strona zawiera tylko dwie kolumny, przykład powyżej jest w porządku.

Ale chcemy użyć responsywnej siatki z 12 kolumn, aby lepiej kontrolować stronę.

Po pierwsze, musimy obliczyć procent jednej kolumny: 100% / 12 kolumn = 8.33%.

Następnie, tworzymy klasę dla każdego z 12 kolumn, tj. class="col-" i liczbą, która definiuje liczbę kolumn, które ten sekcja powinna przekraczać:

CSS:

.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}

Spróbuj Sam

Wszystkie te kolumny powinny być przesuwane w lewo i mieć wewnętrzną margines 15px:

CSS:

[class*="col-"] {
  float: left;
  padding: 15px;
  border: 1px solid red;
}

Każda rząd powinna być otoczona <div> Wewnętrzna liczba kolumn powinna sumować się do 12:

HTML:

<div class="row">
  <div class="col-3">...</div> <!-- 25% -->
  <div class="col-9">...</div> <!-- 75% -->
</div>

Wszystkie kolumny wewnętrzne są przesuwane w lewo, więc są usuwane z przepływu strony i umieszczane inne elementy, jakby te kolumny nie istniały. Aby zapobiec temu, dodamy styl czyszczenia przepływu:

CSS:

.row::after {
  content: "";
  clear: both;
  display: table;
}

Chcemy dodać trochę stylów i kolorów, aby wyglądało lepiej:

przykład

html {
  font-family: "Lucida Sans", sans-serif;
}
.header {
  background-color: #9933cc;
  color: #ffffff;
  padding: 15px;
}
.menu ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
.menu li {
  padding: 8px;
  margin-bottom: 7px;
  background-color :#33b5e5;
  color: #ffffff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
}
.menu li:hover {
  background-color: #0099cc;
}

Spróbuj Sam

Proszę zauważyć, że gdy rozszerzasz okno przeglądarki do bardzo małej szerokości, przykładowa strona internetowa nie wygląda zbyt dobrze. W następnym rozdziale nauczymy się, jak rozwiązać ten problem.