Новый метод размещения содержания на веб-странице появившийся относительно недавно под названием CSS Grid Layot является замечательным подтверждением известной истины, что новое — это хорошо забытое старое.
Как возвращение Одиссея
Земля, как известно, круглая. И чем дальше от нас что-то отдаляется, тем ближе оно к нам с другой стороны и, следовательно, вот-вот внезапно вернётся. Поэтому Одиссей, как бы далеко он не уплыл, обязательно возвратится к своей Пенелопе.
За 30 лет, в течение которых развивается Всемирная Паутина, многое, связанное с этой мировой Сетью, казалось бы, от нас ушло навсегда. Современный Веб это совсем не та легковесная Паутина 90-х годов. И в первую очередь от нас ушла именно легкость создания и работы веб-страниц. Нынешние веб-сайты тяжеловесны и неповоротливы. Они обрюзгли и раскабанели от чрезмерного злоупотребления JavaScript и мультимедийными излишествами. Казалось бы, больше не осталось места сайтам с простой вёрсткой табличками, примером чего можно назвать старую версию сайта «Компьютерные Вести».
[Старый сайт «КВ»]
Но, видимо, интернет как и Земля круглый. Поэтому что именно вёрстка веб-страниц табличками внезапно, как Одиссей к Пенелопе, к нам и возвратилась. Новый метод размещения содержания на веб-странице, появившийся относительно недавно под названием CSS Grid Layot, можно смело назвать возвращением старой доброй вёрстки HTML-страниц таблицами.
CSSGridLayot со второй попытки
Табличное расположение содержания на веб-странице - естественная и понятная концепция каждому человеку. Это как раскладывать вещи по полочкам в шкафу.
Естественно, вёрстка веб-страниц табличками в свое время была очень популярна. Для создания макета страницы использовались стандартные табличные HTML-теги TABLE, TR, TD и т.д.
Противоестественным же было использование табличных HTML-тегов одновременно и для табличного представления данных, и для создания шаблона веб-страницы. Поэтому еще во времена тотального господства MS Internet Explorer была предпринята попытка реализовать вёрстку таблицами посредством каскадных таблиц стилей CSS через свойство display: table. Но тогда в Microsoft не сочли эту идею интересной. А вместо неё для создания макета веб-страниц широкое распространение получила концепция «всплывающиех блоков» float div или же в просторечии «флоатов». Эта концепция является господствующей для веб-дизайна и по сей день.
Но, видимо было нужно обязательно намучиться с этими «всплывающими», как известная субстанция, «флоатами», которые постоянно всплывают не так и не там где надо, чтобы снова вернутся к идее простой и понятной таблицы. И в 2017 году Рабочая Группа Каскадных Таблиц Стилей (CSS Working Group) создала спецификацию CSS Grid Layout Level 1, которая возвращает нас снова к идее табличной вёрстки.
[CSS Grid Layout]
Технология и терминология
Технологически вёрстка посредством CSS Grid Layout осуществляется специальным модулем каскадных таблиц стилей браузера через свойство display: grid. Многоцелевое свойство CSS display указывает способы отображения HTML-элемента — например, блочное отображение block, строчное inline и отсутствие отображения none.
С появлением CSS Grid Layout табличные HTML-теги теперь рекомендуется применять только для форматирования табличной информации.
Также для CSS Grid Layout придумали и оригинальную собственную терминологию, призванную семантически отделить табличную вёрстку через CSS и HTML-таблицы. Вместо термина «таблица» используется понятие «сетка» — отсюда и название «CSS Grid». Колонки и строки называются «треки» или «полосы». Пространство и границы между ячейками называются «аллеи» или «дорожки». Что, правда, не мешает авторам документации и мастер-классов по CSS Grid по-прежнему использовать термины «таблица», «колонки», «строки». Потому что так понятнее.
И так как технологическое и семантическое различие CSS Grid Layout и HTML-таблиц не отрицает их общий смысл, то в первую очередь возможности вёрстки по сетке следует изучить по отношению к вёрстке табличными тегами. Что ниже мы и сделаем.
Компактность и лаконизм CSSGridLayout
Для примера, создадим с помощью CSS Grid классический народный трёхколоночный табличный шаблон, подобный шаблону старого сайта «Компьютерные Вести». Это где в первой строке макета обычно размещаются заголовочные данные — название, логотип, выходные данные и т.д. А во второй строке таблицы помещаются меню, главное содержание и баннеры с котиками.
[Классический табличный макет веб-страницы]
Теперь создадим html-файл, где в заголовке head в правилах CSS зададим специальный контейнер, состоящий всего из пары строк:
Здесь мы создаем grid-контейнер mygrid, объявив его сеткой-таблицей через свойство display: grid. А потом через свойство grid-template-columns задаём шаблон таблицы из трёх колонок шириной 125, 468 и 125 соответственно.
Дальше в теле html-страницы просто по порядку помещаем в этот контейнер в качестве его прямых потомков нужные нам элементы: логотип, название, выходные данные, меню, контент, баннер:
Модуль браузера CSS Grid внутри блока mygrid автоматически сформирует трёхколоночную сетку-таблицу. Автоматически будет вычислено нужное количество строк и ячеек в этих колонках, в которые модуль CSS Grid разместит все прямые потомки контейнера каждый по отдельности в отдельной ячейке слева направо, начиная с верхней левой ячейки. В результате в два щелчка пальцами получаем олдскульный табличный шаблон сайта.
[Пример шаблона на CSSGridLayot]
Можно поиграть в панели разработчика браузера, чтобы при желании добиться полного соответствия внешнего вида примера с олдскульным сайтом «КВ» — добавив, например, синевы в меню и прочих ништяков.
Но основное, что должно броситься в глаза — это лаконичность и краткость описания шаблона веб-страницы с помощью Grid Layot. Вёрстка на CSS Grid легковеснеё даже HTML-табличек. При использовании табличных HTML-тегов нужно явно задавать с их помощью каждую колонку, каждый столбец, каждую ячейку.
Эта лаконичность достигается возможностью модуля CSS Grid создавать неявные столбцы и колонки, когда в сетку-таблицу будет автоматом добавлено столько строк или столбцов, сколько будет помещено в контейнер элементов. При этом размер ячеек автоматически вычисляется по размеру содержащихся в них элементов.
Ещё важно отметить, что свойство display: grid можно задавать любому блочному элементу HTML-страницы — <body>, <header>, <footer> и т.п. И потому при создании шаблона страницы целиком или её части можно обойтись даже без блоков <div> или свести их использование к разумным пределам. Потому что «многоэтажные» вложенные div’ы — это один из кошмаров современного веб-дизайна.
Таким образом, подводя итог первой части обзора CSS Grid Layot отметим, что в первую очередь новая технология возвращает Вебу былую лёгкость. И для создания макетов веб-страниц снова достаточно простого блокнота.
Во второй части мы рассмотрим функциональные возможности CSS Grid Layot. Это явное форматирование сетки, нотация, фракции, объединение ячеек, z-index, адаптивная вёрстка.
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
Волк слабее льва и тигра, но в цирке волк не выступает!
Волк - единственный из зверей, который может пойти в бой на более сильного противника.
Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...
Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.