Селектор | Пример | Описание |
---|---|---|
.class | .intro | Выделяет все элементы с |
#id | #firstname | Выделяет все элементы с |
* | * | Выделяет все элементы |
элемент | p | Выделить все элементы <p> |
элемент,элемент | div, p | Выделить все элементы <div> и <p> |
элемент элемент | div p | Выделить все элементы <p> внутри элементов <div> |
элемент>элемент | div > p | Выделить все элементы <p> где родителем является элемент <div> |
элемент+элемент | div + p | Выделить все элементы <p> которые размещаются сразу после элементов <div> |
элемент1~элемент2 | p ~ ul | Выделить каждый элемент <ul> которые размещаются сразу перед элементом <p> |
[атрибут] | [target] | Выделяет все элементы с атрибутом target |
[атрибут=значение] | [target=_blank] | Выделяет все элементы с target=»_blank» |
[атрибут~=значение] | [title~=flower] | Выделяет все элементы с атрибутом title, содержащие слово «flower» |
[атрибут|=значение] | [lang|=en] | Выделяет все элементы со значением атрибута lang, начиная с «en» |
[атрибут^=значение] | a[href^=»https»] | Выбирает каждый элемент <a>, значение атрибута href который начинается с «https» |
[attribute$=значение] | a[href$=». pdf»] | Выбирает каждый элемент <a>, значение атрибута href который заканчивается на «.pdf» |
[атрибут*=значение] | a[href*=»schoolsw3″] | Выбирает каждый элемент <a>, значение атрибута href которого содержит подстроку «schoolsw3» |
:active | a:active | Выбор активной ссылки |
::after | p::after | Вставляет что-нибудь после содержимого каждого элемента <p> |
::before | p::before | Вставить что-то перед содержимым каждого элемента <р> |
:checked | input:checked | Выбирает каждый проверенный элемент <input> |
:disabled | input:disabled | Выбрать каждый отключенный элемент lt;input> |
:empty | p:empty | Выбирает каждый элемент <p>, у которого нет дочерних элементов (включая текстовые узлы) |
:enabled | input:enabled | Выбирает каждый включенный элемент <input> |
:first-child | p:first-child | Выбирает каждый элемент <p>, который является первым дочерним элементом родительского элемента |
::first-letter | p::first-letter | Выбирает первую букву каждого элемента <p> |
::first-line | p::first-line | Выбирает первую строку каждого элемента <p> |
:first-of-type | p:first-of-type | Выбирает каждый элемент <p>, который является первым элементом <p> своего родителя |
:focus | input:focus | Выбирает элемент ввода, имеющего фокус |
:hover | a:hover | Выделяет ссылки при наведении курсора мыши |
:in-range | input:in-range | Выделяет входные элементы со значением в заданном диапазоне |
:invalid | input:invalid | Выбирает все входные элементы с недопустимым значением |
:lang(language) | p:lang(it) | Выбирает каждый элемент <p> с атрибутом lang, равным «it» (итальянский) |
:last-child | p:last-child | Выбирает каждый элемент <p>, который является последним дочерним элементом родительского элемента |
:last-of-type | p:last-of-type | Выбирает каждый элемент <p>, который является последним элементом <p> своего родителя |
:link | a:link | Выделяет все непосещенные ссылки |
:not(selector) | :not(p) | Выбирает каждый элемент, который не является элементом <p> |
:nth-child(n) | p:nth-child(2) | Выбирает каждый элемент <p>, который является вторым дочерним элементом родительского элемента |
:nth-last-child(n) | p:nth-last-child(2) | Выбирает каждый элемент <p>, который является вторым дочерним элементом родительского элемента, считая от последнего дочернего элемента |
:nth-last-of-type(n) | p:nth-last-of-type(2) | Выбирает каждый элемент <p>, который является вторым элементом <p> своего родителя, считая от последнего потомка |
:nth-of-type(n) | p:nth-of-type(2) | Выбирает каждый элемент <p>, который является вторым элементом <p> своего родителя |
:only-of-type | p:only-of-type | Выбирает каждый элемент <p>, который является единственным элементом <p> родительского элемента |
:only-child | p:only-child | Выбирает каждый элемент <p>, который является единственным дочерним элементом родительского элемента |
:optional | input:optional | Выбирает элементы ввода без атрибута «required» |
:out-of-range | input:out-of-range | Выбирает входные элементы со значением вне указанного диапазона |
:read-only | input:read-only | Выбирает входные элементы с указанным атрибутом «readonly» |
:read-write | input:read-write | Выбирает входные элементы с не указанным атрибутом «readonly» |
:required | input:required | Выбирает входные элементы с указанным атрибутом «required» |
:root | :root | Выбирает корневой элемент документа |
::selection | ::selection | Выделяет часть элемента, выбранную пользователем |
:target | #news:target | Выбирает текущий активный элемент #news (при щелчке по URL, содержащему имя привязки) |
:valid | input:valid | Выбирает все входные элементы с допустимым значением |
:visited | a:visited | Выбирает все посещенные ссылки |
УЧЕБНИК CSS
- Автор: Р. Эндрю
- год издания: 2010
- жанр: учебник
- язык: русский
- самоучитель объемом: 333стр.
- формат: pdf
- размер файла: 5.8Mb
Этот учебник по CSS — просто находка для веб-разработчиков, у которых нет времени досконально изучить язык стилей, а необходимость его использования при создании сайтов очевидна. Никаких громоздких теоретических выкладок учебник CSS не содержит. На его страницах вы встретите готовые решения, которые годятся для практического применения. Причем эти решения легко поддаются трансформированию, а как раз подобное экспериментирование на практике, и позволяет легче усваивать новые технологии.
Учебник CSS составлен очень грамотно: нет необходимости читать все от начала и до конца. Вы можете использовать тот раздел учебника, применение которого для вас в данный момент актуально. Все же примеры, содержащиеся в учебнике, поясняются комментариями, поясняющими те или иные конструкции CSS. Это облегчает использование и модификацию этих примеров при обращении к ним в дальнейшем.
Построен учебник по CSS следующим образом: в начале предлагаются основы языка, а далее методы и примеры постепенно усложняются. Особенных знаний для понимания представленного материала от читателя не требуется, а если он обладает начальными знаниями CSS, то это, еще более облегчает восприятие материала. Примеры, содержащиеся в учебнике, затрагивают использование простеньких методов применения CSS, и простираются до создания любых сложных макетов страниц, сложной навигации, форм. 3-е издание «CSS: 100 и 1 совет» было полностью переработано и обновлено, и содержит самые современные подходы, в т.ч. рассматриваются операторы CSS3, а также учитываются особенности, как последних версий браузеров, так и кроссбраузерность.
Вкратце опишу любопытные примеры, содержащиеся в учебнике: создание блока с закругленными краями, и при помощи CSS3, и более традиционными способами; создание колонки, занимающей все доступное пространство по высоте; добавление тени к блоку; добавление к резиновому макету нижнего блока и мн. другое. Учебник CSS можно использовать как справочник для поиска наиболее подходящего решения, которые обязательно возникают в ходе разработки и создания очередного собственного или клиентского сайта.
скачать учебник CSS: TurbobitDepositfiles
Могу порекомендовать видеокурс: «HTML5 и CSS3 для начинающих», если хотите изучить эти технологии быстро. Обучение по видеоурокам занимает гораздо меньше времени. Уроки построены на решении практических задач и легко усваиваются, благодаря уникальной методике. А в результате — вы «построите» полноценный сайт, причем, адаптированный под мобильные устройства.
Верстка сайта на HTML и CSS
Перед вами уроки по верстке сайтов на HTML и CSS. Это незаменимое руководство для новичков, планирующих делать востребованные и современные сайты, как для себя, так и на заказ.
подробнее…
Курсы Евгения Попова
Скачать уроки по созданию сайтов и веб-программированию, освоению инструментов и технических моментов для ведения собственного бизнеса в интернете.
подробнее…
Заработок на создании сайтов под заказ
Подробная инструкция для фрилансеров по заработку на создании сайтов под заказ. Правильная стратегия автора, который сам прошел этот путь с нуля и добился успеха.
подробнее…
Верстка сайта на HTML5 и CSS3
Видеокурс по изучению технологий верстки адаптивных сайтов. Основанием всех современных сайтов являются «два кита»: новейшие версии веб-языков HTML5 и CSS3.
подробнее…
Создание сайта с нуля (PDF)
Процесс создания сайта с нуля — на понятном языке для абсолютных новичков. Четыре этапа сайтостроительства: разработка дизайна, верстка, добавление скриптов и размещение сайта в сети.
подробнее…
Основы JavaScript
Видео содержит только то, что необходимо знать по JavaScript на начальном этапе программирования. Это решение типичных задач на практических и реальных примерах.
подробнее…
Основы PHP 7
Понятный курс по основам PHP 7. В нём — базовые знания PHP без «воды». Это основы веб-программирования.
подробнее…
Видеокурс по основам PHP
Курс по основам PHP для абсолютных новичков на понятном языке. Практическая демонстрация создания PHP-сайта с нуля, наглядная эксплуатация баз данных.
подробнее…
Справочники: Javascript/HTML/CSS
Эта статья — об основных полезных ресурсах по Javascript, и немного — HTML/CSS. Она предназначена большей частью для начинающих, но не только для них.
P.S Поисковик по справочникам находится по адресу http://search.javascript.ru.
UPDATE: на сайте появился свой справочник http://javascript.ru/manual.
Основных справочных центров в интернете два. Это:
- Microsoft Software Developer Network (сокращенно MSDN), где информация гарантированно работает под Internet Explorer, но не факт, что под другие браузеры. Русского нет вообще.
- Mozilla Developer Center (сокращенно MDC), там информация верна для браузеров на движке Gecko: Firefox, Mozilla, Epiphany и т.п. Некоторые тексты переведены на русский.
Информация для остальных браузеров ищется через Google
Известный англоязычный сайт http://quirksmode.org cодержит много информации по кросс-браузерным несовместимостям и особенностям поведения.
Информацию по тагам HTML можно получить на русском сайте http://html.manual.ru, по HTML и CSS — на http://htmlbook.ru
Объединенный поиск по справочникам находится на http://search.javascript.ru
Учебников по Javascript пристойных я пока не знаю.. Найдете — свистните в комментах, добавлю.
Неплохие учебники для начинающих по HTML/CSS находятся на русском сайте http://ru.html.net.
Для освоения CSS-позиционирования и основ верстки div’ами — будет полезен английский учебник Learn CSS Positioning in Ten Steps.
Большое русскоязычное руководство с нуля, после которого Вы точно будете что-то знать — «Javascript, Библия Пользователя».
Из английских — фундаментально пишет N.Zakas: Professional JavaScript for Web Developers (у него есть не только эта книга). Полезно всем.
Кросс-браузерные несовместимости и фишки описал в своей книге quirksmode.org, Peter Koch. Полезно тем, кому актуально.
Полная подборка книг находится в разделе книги. Там же — литература по интеграции с ASP.NET, PHP и др.
Если у Вас есть, чем дополнить эту статью — пишите в комментарии.
CSS проблема с цветом фона, онлайн-учебник
Я следую онлайн-учебнику для css и написал точный код в качестве инструктора, но не могу сгенерировать желаемый результат. Я хочу, чтобы заголовок ‘My Website’ имел коралловый фон, в то время как генерируемый вывод применяет коралловый фон ко всей странице.
body{
background-color:#f4f4f4;
color:#555;
font-family:sans-serif;
font-size:16px;
line-height:1.6em;
margin:0;
}
.container{
width:80%;
margin:auto;
overflow:hidden;
}
#main-header{
background-color:coral;
color:#fff;
}
<!DOCTYPE html>
<html>
<head>
<title>My Website</title>
<link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<header>
<div>
<h2>My Website</h2>
</div>
</body>
</html>
Я хочу, чтобы заголовок ‘My Website’ имел коралловый фон, в то время как генерируемый вывод применяет коралловый фон ко всей странице.
html
css
Поделиться
Источник
Antriksh Shukla
17 июля 2019 в 18:02
2 ответа
- Проблема с цветом фона кнопки после посещения состояния
Проблема с цветом фона кнопки после посещения состояния https://jsfiddle.net/vivekraj_kr/wxokhpy4 / как получить цвет фона на посещенной кнопке <button type=button class=size_btn>S</button> <button type=button class=size_btn>M</button> <button type=button…
- Текст с цветом фона
У меня странная проблема, и, честно говоря, я понятия не имею, как это сделать. У меня есть коробка с фоновым изображением. Поверх фонового изображения у меня есть много коробок с цветом фона и текстом. Я хотел бы, чтобы цвет текста в каждом поле был прозрачным, поэтому цвет будет частью фонового…
0
ваш вопрос мне немного непонятен. Что вы имели в виду, говоря о направлении? Вы использовали тег h2 или тег заголовка? Если ваш ответ-h2, то я просто дал решение, но если это заголовок, то я думаю, что ваш код генерирует правильный вывод во фрагменте кода.
body{
background-color:#f4f4f4;
color:#555;
font-family:sans-serif;
font-size:16px;
line-height:1.6em;
margin:0;
}
.container{
width:80%;
margin:auto;
overflow:hidden;
}
#main-header h2{
color:coral;
}
<!DOCTYPE html>
<html>
<head>
<title>My Website</title>
<link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<header>
<div>
<h2>My Website</h2>
</div>
</body>
</html>
Поделиться
Showrin Barua
17 июля 2019 в 18:13
0
В моих браузерах ваш код даже as-is работает так, как вы ожидаете. Но одной вещи все равно не хватает. У вас нет закрывающего тега для вашего header
.
body{
background-color:#f4f4f4;
color:#555;
font-family:sans-serif;
font-size:16px;
line-height:1.6em;
margin:0;
}
.container{
width:80%;
margin:auto;
overflow:hidden;
}
#main-header{
background-color:coral;
color:#fff;
}
<!DOCTYPE html>
<html>
<head>
<title>My Website</title>
<link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<header>
<div>
<h2>My Website</h2>
</div>
</header>
</body>
</html>
Поделиться
Antenka
17 июля 2019 в 19:13
Похожие вопросы:
Как установить цвет фона mouseover/mouseout таблицы с альтернативным цветом фона
В настоящее время у меня есть таблица с несколькими строками данных. Ряды чередуются между синим и белым цветом фона. Всякий раз, когда я наведу курсор мыши, я хочу, чтобы цвет фона временно…
CSS один и тот же цвет для текста и фона с непрозрачностью фона
Я хочу создать таблицу с белым цветом фона и непрозрачностью с 30%. я могу сделать это со следующим CSS: background-color:#ffffff; opacity:0.3; height:145px; Но моя проблема в том, что я хочу дать…
CSS стиль фона с градиентным цветом
Кто-нибудь знает, как я могу сделать градиентный цвет фона с css свойствами? Если не возможно сделать это с помощью css, есть ли идея сделать это другим способом, кроме размещения изображения?…
Проблема с цветом фона кнопки после посещения состояния
Проблема с цветом фона кнопки после посещения состояния https://jsfiddle.net/vivekraj_kr/wxokhpy4 / как получить цвет фона на посещенной кнопке <button type=button…
Текст с цветом фона
У меня странная проблема, и, честно говоря, я понятия не имею, как это сделать. У меня есть коробка с фоновым изображением. Поверх фонового изображения у меня есть много коробок с цветом фона и…
CSS-пространство между границей и цветом фона
Мне нужно создать белое пространство между границей и цветом фона. Пример Итак, | = граница, # = цвет фона Выше пример будет нарисован как | # # # # # / и мне нужно | ##### | Как бы я это сделал?…
Цвет фона DIV не отображается с цветом тела
Я установил цвет фона тела на цвет светло-серого #D6D6D6 , и я хочу, чтобы div отображался с цветом фона светло-синего #2390bb , однако это просто не работает, div не показывает светло-синий цвет….
CSS-позиционирование изображения между текстом и цветом фона
Я пытаюсь воссоздать что-то, что сам сделал по ошибке: https://bgiltphotos.files.wordpress.com/2015/09/img.jpg Это была моя самая первая попытка CSS, и я продолжал добавлять селекторы на временной…
mpdf с цветом фона в тегах TD через CSS
У меня есть проблема с получением mpdf для генерации ячеек таблицы с фоновыми цветами, если цвет указан в A CSS… Если цвет фона указан в css, он не отображается в сгенерированном pdf, но если я…
Присвоить переменной с цветом фона собственность в CSS
Я пытаюсь создать приложение, в котором пользователь может изменить цвет bg кнопки и после этого скопировать код CSS из тегов <style> с измененным цветом фона в буфер. Для выбора цвета я…
Скачать учебник и справочник по CSS — бесплатно!
Если вы хотите поблагодарить автора сайта за самоучитель по css и весь остальной его труд, можете разместить текстовую ссылку на своем сайте или блоге. Код ссылки: <a href=»http://css.narod.ru/» title=»Учебник и справочник по CSS стилям. CSS таблицы. Примеры, описания свойств, верстка.»>Учебник и справочник по CSS стилям. CSS таблицы. Примеры, описания свойств, верстка.</a>
|
Программирование
Программирование
Программирование
Руководство полного идиота по программированию (на языке Си)
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Автор: Андрей Богатырев
Формат: pdf, txt
Размер архива: 633kb
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Бесплатная раскрутка сайта!С примерами, ссылками и доказательствами!
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Эта электронная книга предназначена для начинающих web-мастеров. В ней все операции по оформлению страниц даны в доступной для понимания форме. Все действия завершаются показом того, что получилось в результате написания html-кодов. Книга написана не профессионалом, а любителем, поэтому Вы сразу разберетесь что к чему.
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
В книге предложена реальная пошаговая система заработка,-от простого к более сложному.Все моменты будут описаны с мельчйшими подробностями,так что каждый новичек начнет зарабатывать в интернете.
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Научись создавать свои баннеры для сайтов.
Создание веб-страниц и веб-сайтов. Самоучитель
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
В. Дунаев
Серия: Самоучитель.
Второе издание.
400 стр., 2005 г.
Издательство: Питер.
PDF
Эта книга предназначена для самостоятельного освоения программирования на языке Java Script. Кроме общего руководства, она содержит множество примеров и текстов готовых к использованию программ. Рассматриваются вопросы создания сценариев для веб-сайтов, а также сценариев, выполняемых Windows Scripting Host. В приложениях приводится справочная информация по Java Script и HTML. Книга адресована как новичкам, так и тем, кто уже имеет некоторый опыт в веб-дизайне и программировании.
Во втором издании книги исправлены замеченные опечатки и неточности.
Лучший учебник html. Основы html
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Автор и ведущий сайта http://zvirec.com — Андрей Галямов
Учебник html — это очень полезная штука, т.к. не зная этот самый язык html, практически невозможно создать свой сайт в сети. C html начинается путь любого веб-мастера.
Еще совсем недавно, я сам перерыл весь интернет, в поисках толкового, написанного для начинающих, учебника html. Найти хороший обучающий материал, с большим количеством примеров, в котором бы доходчиво объяснялись основы html, оказалось довольно сложно. Поэтому было принято решение написать свой, собственный учебник html, с примерами и объяснениями, расчитанными для начинающих… В нем, я попытался разложить основы html по полочкам.
Учебник css. Основы css
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Автор и ведущий сайта http://zvirec.com — Андрей Галямов
CSS (Каскадные таблицы стилей) — это поразительное изобретение человечества, которое значительно облегчает и автоматизирует создание веб-сайтов. Используя эту замечательную технологию, можно управлять внешним видом огромного количества страниц, из одной таблички стилей, также создавать красивые менюшки, делать различные эффекты и.т.п.
Освой самостоятельно C++ за 24 часа
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Автор: Либерти, Джесс, Хорват, Дэвид
Язык: Русский
Формат: djvu
Качество: отличное
Размер: 5,57 Мб
Описание:
Здесь изложены фундаментальные основы программирования на языке C++, описаны принципы управления вводом-выводом, циклы, массивы, объектно-ориентированные подходы, а также создание полнофункционального приложения. Все главы содержат листинги программ, результаты их выполнения и анализ кода. Приведены ответы на часто задаваемые вопросы, а также упражнения и контрольные вопросы. Изложение книги не предполагает наличия у читателя предварительных знаний в области C++, а четкая организация материала позволит быстро и просто изучить язык
Освой самостоятельно HTML 10минут на урок
Рейтинг: 0 / 0 голос
Только зарегестрированные и авторизованные пользователи могут оценивать этот файл
Автор: Хейз Д.
Издательство: Вильямс
Год выпуска: 2007
Страниц: 272
Формат: DjVu
Размер: 7.08 Мb
Освой самостоятельно HTML — Эта книга поможет вам в кратчайшие сроки освоить HTML — язык разметки страниц, применяемый для создания публикуемых в Интернете Web-страниц. Начиная с примеров написания простых HTML-документов, автор урок за уроком рассматривает все более сложные темы, такие как построение списков, таблиц, фреймов, сетевых форм, добавление на страницу изображений, графических, анимационных элементов, видео и звука, использование ссылок и стилевых таблиц. На освоение каждого урока вам потребуется не более 10 минут. Завершив чтение данной книги, вы научитесь создавать свои собственные Web-страницы, готовые к размещению в Интернете.
Самоучитель css онлайн – Telegraph
Самоучитель css онлайн➞➞➞ Скачать Самоучитель css онлайн ======
➞➞➞ Link to download Самоучитель css онлайн ======
Самоучитель css онлайн
Продолжаем изучение не простой, но крайне важной темы. Заголовок будет выравниваться относительно левого края страницы. Все больше планшетных компьютеров, смартфонов и даже телевизоров используется для выхода в Интернет. Вы научитесь применять на практике новые технологии и методики, призванные стать инструментами будущего для веб-разработчиков клиентских приложений. Современные технологии веб-дизайна активно развиваются. В этом большом уроке мы изучим различные свойства и значения css-тегов, с помощью которых можно задавать фон сайта. Более того, поскольку разработчики из этих компаний никак не могут договориться между собой, последние версии броузеров поддерживают неодинаковый набор свойств CSS. В этом случае вы можете использовать эти стили самоучитель css онлайн элементов, располагающихся в пределах странички. Сегодня как никогда остро стоит проблема адаптивного веб-дизайна. Название свойства и его значение разделены двоеточием. Правила для управления строками в каскадных таблицах стилей.
По HTML5 вряд ли где-то найдете адекватный самоучитель, сам в поисках. Кроме того, анализируются наиболее распространенные ошибки, допускаемые при программировании. Во-вторых, появляется отличная возможность мгновенно править что-либо в оформлении всего сайта. Современный учебник CSS — это онлайн-книга, призванная ознакомить веб-разработчиков с современными способами создания сайтов, в том числе и адаптивных. Книга включает упражнения, с помощью которых вы освоите разнообразные техники работы с современными веб-стандартами включая HTML5 и CSS3. Пробуйтетам и тесты есть после каждого урока, и бумажку можно получить в конце.
Круто стать частью огромного волшебного мира и так скоро уже оказаться одним из лучших среди новых коллег. Современный учебник CSS — это онлайн-книга, призванная ознакомить веб-разработчиков с современными способами создания сайтов, в том числе и адаптивных. Безопасность Использование IE6 потенциально опасно, так как именно через него доступ в Ваш компьютер имеют вирусы и мошенники. Я постарался создать данный учебник css максимально простым и понятным даже начинающему. Internet Explorer 6 не способен корректно отображать большинство сайтов. В книге описывается использование Web-технологий динамического HTML DHTML и каскадных таблиц стилей CSS для создания интерактивных динамических WEB-узлов.
Самоучитель css онлайн
Однако учтите, что данный учебник css рассчитан на людей, которые уже знают. Технологии HTML5 и CSS3 закладывают основу для мощных, интерактивных веб-приложений. Все больше планшетных компьютеров, смартфонов и даже телевизоров используется для выхода в Интернет. Давайте рассмотрим, как мы можем воплотить столь замечательные возможности в жизнь.
Именно в этот момент всё выходит из-под контроля: базовый интенсив, продвинутый, JavaScript. Возможность работы со стилями издавна включают в развитые издательские системы и текстовые редакторы, тем самым позволяя одним нажатием кнопки придать тексту заданный, заранее установленный вид. В книге описывается использование динамического HTML DHTML и каскадных таблиц стилей CSS для построения сложных интерактивных Web-узлов.
Box Model
The CSS Podcast — 001: The Box Model
Аудиоверсия этого модуля
Скажем, у вас есть этот фрагмент HTML:
Я - абзац текста, в котором есть несколько слов.
Затем вы пишете для него этот CSS:
p {
width: 100px;
высота: 50 пикселей;
отступ: 20 пикселей;
граница: сплошная 1px;
}
Содержимое выйдет за пределы вашего элемента и будет иметь ширину 142 пикселя, а не 100 пикселей.Это почему? Блочная модель — это основная основа CSS, и понимание того, как она работает, как на нее влияют другие аспекты CSS, и, что важно, как вы можете ее контролировать, поможет вам написать более предсказуемый CSS.
При написании CSS или работе в сети в целом важно помнить, что все, что отображается в CSS, представляет собой прямоугольник. Будь то поле, в котором используется border-radius
, чтобы выглядеть как круг, или даже просто какой-то текст: важно помнить, что это все поля.
Содержимое и размер #
Ящики имеют разное поведение в зависимости от значения display
, заданных размеров и содержимого, которое находится в них. Этим содержимым может быть еще больше блоков, созданных дочерними элементами, или текстовое содержимое. В любом случае это содержимое по умолчанию повлияет на размер поля.
Вы можете контролировать это, используя внешний размер , или вы можете продолжать позволять браузеру принимать решения за вас на основе размера содержимого, используя внутреннее определение размера .
Давайте быстро посмотрим на разницу, используя демонстрацию, которая нам поможет.
Обратите внимание, что, когда блок использует внешние размеры, существует предел того, сколько содержимого вы можете добавить, прежде чем оно выйдет за пределы поля. Это делает слово «потрясающий» переполненным.
В демонстрационной программе есть слова «CSS is awesome» в поле с фиксированными размерами и толстой рамкой. Коробка имеет ширину, поэтому имеет внешний размер. Он контролирует размер своего дочернего содержимого. Проблема с этим в том, что слово «потрясающе» слишком велико для блока, поэтому оно выходит за пределы рамки родительского блока (подробнее об этом позже в уроке).Один из способов предотвратить это переполнение состоит в том, чтобы разрешить внутреннему размеру бокса либо сбросить ширину, либо, в данном случае, установить ширину
равной min-content
. Ключевое слово min-content
сообщает, что ширина блока равна внутренней минимальной ширине его содержимого (слово «потрясающе»). Это позволяет рамке идеально вписаться в «CSS is awesome».
Давайте посмотрим на что-то более сложное, чтобы увидеть влияние различных размеров на реальный контент:
Включите и выключите внутренний размер, чтобы увидеть, как вы можете получить больший контроль с помощью внешнего размера и позволить контенту иметь больший контроль с внутренним размером.Чтобы увидеть эффект, который оказывает внутреннее и внешнее изменение размеров, добавьте на карточку несколько предложений содержания. Когда этот элемент использует внешний размер, существует предел того, сколько контента вы можете добавить, прежде чем он выйдет за границы элемента, но это не тот случай, когда внутренний размер включен.
По умолчанию этот элемент имеет ширину
и высоту
— обе 400 пикселей
. Эти размеры дают строгие границы всему внутри элемента, которые будут соблюдаться, если содержимое не слишком велико для блока, и в этом случае произойдет видимое переполнение.Вы можете увидеть это в действии, изменив содержание подписи под изображением цветка на что-то, превышающее высоту рамки, то есть несколько строк содержания.
Key Term
Когда содержимое слишком велико для коробки, в которой оно находится, мы называем это переполнением. Вы можете управлять тем, как элемент обрабатывает содержимое переполнения, используя свойство overflow
.
Когда вы переключаетесь на собственное определение размеров, вы позволяете браузеру принимать решения за вас в зависимости от размера содержимого окна.Намного сложнее переполниться внутренним размером, потому что размер нашего блока будет изменяться вместе с его содержимым, а не пытаться изменить размер содержимого. Важно помнить, что это гибкое поведение браузера по умолчанию. Хотя внешний размер дает больше контроля на поверхности, внутренний размер обеспечивает большую гибкость в большинстве случаев.
Области блочной модели #
Коробки состоят из отдельных областей блочной модели, каждая из которых выполняет определенную работу.
Четыре основных области блочной модели: поле содержимого, поле заполнения, поле границы и поле поля.
Вы начинаете с блока содержимого , который представляет собой область, в которой находится содержимое. Как вы узнали ранее: это содержимое может управлять размером своего родительского элемента, поэтому обычно это область с самым изменяемым размером.
Поле заполнения окружает поле содержимого и является пространством, созданным свойством padding
. Поскольку отступ находится внутри блока, фон блока будет виден в создаваемом им пространстве. Если в нашем поле установлены правила переполнения, такие как overflow: auto
или overflow: scroll
, полосы прокрутки также займут это пространство.
Поле границы окружает поле заполнения, и его пространство занято значением границы
. Рамка — это границы вашего поля, а граница , граница — это предел того, что вы можете видеть визуально. Свойство border
используется для визуального обрамления элемента.
Последняя область, поле поля , — это пространство вокруг вашего поля, определяемое правилом поля
на вашем поле. Такие свойства, как outline
и box-shadow
, также занимают это пространство, потому что они нарисованы сверху, поэтому они не влияют на размер нашего поля.У вас может быть ширина контура
из 200 пикселей
на нашем блоке, и все внутри, включая рамку, будет точно такого же размера.
Полезная аналогия #
Коробочная модель сложна для понимания, поэтому давайте резюмируем то, что вы узнали, с помощью аналогии.
На этой схеме у вас есть три фоторамки, прикрепленные к стене, рядом друг с другом. На схеме есть метки, которые связывают элементы рамы с коробчатой моделью.
Чтобы разорвать эту аналогию:
- Поле содержимого — это произведение искусства.
- Поле для заполнения белого матового цвета между рамкой и изображением.
- Рамка — это рамка, обеспечивающая буквальную границу для иллюстрации.
- Поле поля — это пространство между каждым кадром.
- Тень занимает то же место, что и поле поля.
Отладка блочной модели #
Browser DevTools обеспечивает визуализацию вычислений блочной модели для выбранного бокса, что может помочь вам понять, как работает блочная модель, и, что немаловажно, как она влияет на веб-сайт, над которым вы работаете.
Попробуйте это в своем собственном браузере:
- Откройте DevTools
- Выберите элемент
- Показать отладчик блочной модели
Управление блочной моделью #
Чтобы понять, как управлять блочной моделью, сначала вы нужно понимать, что происходит в вашем браузере.
Каждый браузер применяет таблицу стилей пользовательского агента к HTML-документам. Используемый CSS варьируется в зависимости от браузера, но они предоставляют разумные значения по умолчанию, чтобы облегчить чтение содержимого.Они определяют, как элементы должны выглядеть и вести себя, если CSS не определен. Это в стилях пользовательского агента, где по умолчанию display
также установлен. Например, если мы находимся в нормальном потоке, значение по умолчанию display
элемента
block
,
имеет значение display
по умолчанию list-item
, а
имеет значение по умолчанию display
inline
. Встроенный элемент
имеет поле блока, но другие элементы его не уважают.Используйте inline-block
, и эти элементы будут учитывать поля блока, в то время как элемент сохраняет большинство тех же действий, что и встроенный элемент
. Элемент блока
по умолчанию будет заполнять доступное внутреннее пространство , тогда как элементы встроенного блока
и встроенного блока
будут иметь размер, равный их содержанию.
Наряду с пониманием того, как стили пользовательского агента влияют на каждый блок, вам также необходимо понимать box-sizing
, который сообщает нашему блоку, как рассчитать его размер.По умолчанию все элементы имеют следующий стиль пользовательского агента: box-sizing: content-box;
.
Наличие content-box
в качестве значения box-sizing
означает, что при установке размеров, таких как width
и height
, они будут применены к content box . Если вы затем установите padding
и border
, эти значения будут добавлены к размеру поля содержимого.
.my-box {
width: 200px;
граница: сплошная 10 пикселей;
отступ: 20 пикселей;
}
Какой ширины вы думаете .my-box
будет?
200px 260px
Так как значение по умолчанию для размера поля — это поле содержимого, отступы и границы будут добавлены к ширине. 200px
было бы правильно, если бы в поле было box-sizing: border-box
.
Размер блока по умолчанию — content-box, что означает добавление отступов и границ ко всему блоку.
Фактическая ширина этого поля будет 260 пикселей. Поскольку CSS по умолчанию использует box-sizing: content-box
, применяемая ширина — это ширина содержимого, к нему добавляются padding
и border
с обеих сторон.Таким образом, 200 пикселей для содержимого + 40 пикселей заполнения + 20 пикселей границы делают общую видимую ширину 260 пикселей.
Вы, , можете управлять этим, , сделав следующую модификацию для использования альтернативной блочной модели, border-box
:
.my-box {
box-sizing: border-box;
ширина: 200 пикселей;
граница: сплошная 10 пикселей;
отступ: 20 пикселей;
}
Эта альтернативная блочная модель сообщает CSS, что нужно применить ширину
к рамке вместо поля содержимого.Это означает, что для наших границ
и padding
вставляется в , и в результате, когда вы устанавливаете .my-box
равным 200px в ширину
: он фактически отображает 200 пикселей в ширину
.
Посмотрите, как это работает, в следующей интерактивной демонстрации. Обратите внимание, что когда вы переключаете значение размера блока , оно показывает - через синий фон - какой CSS применяется внутри нашего блока.
*,
* :: before,
* :: after {
box-sizing: border-box;
}
Это правило CSS выбирает каждый элемент в документе и каждый псевдоэлемент :: before
и :: after
и применяет box-sizing: border-box
.Это означает, что теперь у каждого элемента будет эта альтернативная блочная модель.
Поскольку альтернативная блочная модель может быть более предсказуемой, разработчики часто добавляют это правило к сбросам и нормализаторам, таким как этот.
Ресурсы #
Таблицы стилей пользовательского агента #
Селекторы
Подкаст CSS - 002: Селекторы
Аудиоверсия этого модуля
Если у вас есть текст, который вы хотите быть больше и красным, если он первый абзац статьи, как вы это делаете?
Я хочу быть красным и крупнее, чем другой текст.
Я хочу иметь нормальный размер и цвет по умолчанию.
Вы используете селектор CSS, чтобы найти этот конкретный элемент и применить правило CSS, как это.
артикул п: первоклассный {
цвет: красный;
font-size: 1.5em;
}
CSS предоставляет вам множество опций для выбора элементов и применения к ним правил, от очень простых до очень сложных, чтобы помочь в решении подобных ситуаций.
Части правила CSS #
Чтобы понять, как работают селекторы и их роль в CSS, важно знать части правила CSS.Правило CSS - это блок кода, содержащий один или несколько селекторов и одно или несколько объявлений.
В этом правиле CSS селектор - .my-css-rule
, который находит на странице все элементы с классом my-css-rule
. В фигурных скобках заключены три объявления. Объявление - это пара свойств и значений, которая применяет стили к элементам, совпадающим с селекторами. Правило CSS может иметь сколько угодно объявлений и селекторов.
Простые селекторы #
Самая простая группа селекторов нацелена на элементы HTML, а также классы, идентификаторы и другие атрибуты, которые могут быть добавлены в тег HTML.
Универсальный селектор #
Универсальный селектор, также известный как подстановочный знак, соответствует любому элементу.
* {
цвет: горячий розовый;
}
Это правило приводит к тому, что каждый элемент HTML на странице содержит текст в горячем розовом цвете.
Селектор типа #
Селектор типа напрямую соответствует элементу HTML.
секция {
отступ: 2em;
}
Это правило заставляет каждый элемент
2em
из заполнения
со всех сторон.Селектор класса #
Элемент HTML может иметь один или несколько элементов, определенных в их атрибуте class
. Селектор класса соответствует любому элементу, к которому применен этот класс.
Любой элемент, к которому применен класс, будет окрашен в красный цвет:
.my-class {
цвет: красный;
}
Обратите внимание на то, как .
присутствует только в CSS, а не в HTML. Это потому, что . Символ
указывает языку CSS на соответствие членам атрибутов класса. Это распространенный шаблон в CSS, где специальный символ или набор символов используется для определения типов селекторов.
Элемент HTML с классом .my-class
по-прежнему будет соответствовать приведенному выше правилу CSS, даже если у него есть несколько других классов, например:
Это связано с тем, что CSS ищет атрибут class
, который содержит определенный класс, а не точно соответствует этому классу.
Значение атрибута класса может быть практически любым, каким вы хотите. Одна вещь, которая может вас сбить с толку, - это то, что вы не можете запустить класс (или идентификатор) с номером, например .1element
. Подробнее читайте в спецификации.
Селектор идентификатора #
Элемент HTML с атрибутом id
должен быть единственным элементом на странице с таким значением идентификатора. Вы выбираете элементы с помощью селектора идентификатора следующим образом:
#rad {
border: 1px сплошной синий;
}
Этот CSS применит синюю границу к элементу HTML, имеющему id
из rad
, например:
Аналогично селектору классов .
используйте символ #
, чтобы указать CSS искать элемент, который соответствует идентификатору id
, который следует за ним.
Если браузер встречает более одного экземпляра идентификатора id
, он все равно будет применять любые правила CSS, соответствующие его селектору. Однако любой элемент с атрибутом id
должен иметь уникальное значение для него, поэтому, если вы не пишете очень конкретный CSS для одного элемента, избегайте применения стилей с селектором id
, поскольку это означает, что вы можете ' t повторно использовать эти стили где-нибудь еще.
Селектор атрибутов #
С помощью селектора атрибутов можно искать элементы, которые имеют определенный атрибут HTML или определенное значение для атрибута HTML. Попросите CSS искать атрибуты, заключив селектор в квадратные скобки ( []
).
[data-type = 'primary'] {
цвет: красный;
}
Этот CSS ищет все элементы, которые имеют атрибут типа данных
со значением primary
, например:
Вместо того, чтобы искать конкретное значение типа данных
, вы также можете искать элементы с присутствующим атрибутом, независимо от его значения.
[тип данных] {
цвет: красный;
}
Оба этих элемента
Вы можете использовать селекторы атрибутов с учетом регистра, добавив в селектор атрибутов оператор s
.
[data-type = 'primary' s] {
цвет: красный;
}
Это означает, что если бы элемент HTML имел тип данных
из Primary
, вместо primary
, он не получил бы красный текст.= 'https'] {
цвет: зеленый;
}
/ * href, заканчивающийся на .com * /
[href $ = '. Com'] {
color: blue;
}
В этой демонстрации оператор `$` в нашем селекторе атрибутов получает тип файла из атрибута `href`. Это позволяет добавить к метке префикс на основе этого типа файла с помощью псевдоэлемента.
Селекторы группировки #
Селектор не обязательно должен соответствовать только одному элементу. Вы можете сгруппировать несколько селекторов, разделив их запятыми:
strong,
em,
.мой-класс,
[lang] {
цвет: красный;
}
В этом примере изменение цвета распространяется как на
элементов, так и на
элементов. Он также расширен до класса с именем .my-class
и элемента с атрибутом lang
.
Проверьте свои знания простых селекторов
Какой простой селектор используется в приведенном выше фрагменте?
идентификатор атрибута универсальный класс
[]
используются для атрибутов простых селекторов.
#
используются для простых селекторов ID .
*
— универсальный простой селектор , .
.
используются для простых селекторов класса .
Какой простой селектор используется в приведенном выше фрагменте?
идентификатор атрибута типа класса
A .
используется для простых селекторов класса .
Имя элемента
используется для простых селекторов типа .
Квадратные скобки []
используются для атрибутов простых селекторов.
#
используется для простых селекторов ID .
Псевдоклассы и псевдоэлементы #
CSS предоставляет полезные типы селекторов, которые фокусируются на определенном состоянии платформы, например, когда элемент наведен, структуры внутри элемента или части элемента.
Псевдоклассы #
Элементы HTML находятся в различных состояниях, либо потому, что с ними взаимодействуют, либо потому, что один из их дочерних элементов находится в определенном состоянии.
Например, элемент HTML может зависать с указателем мыши пользователем или , дочерний элемент также может зависать от пользователя. В таких ситуациях используйте псевдокласс : hover
.
/ * Наша ссылка зависает * /
a: hover {
контур: 1px, пунктирная зеленая;
} / * Устанавливает для всех четных абзацев другой фон * /
p: nth-child (even) {
background: floralwhite;
}
Узнайте больше в модуле псевдоклассов.
Псевдоэлемент #
Псевдоэлементы отличаются от псевдоклассов, потому что вместо того, чтобы реагировать на состояние платформы, они действуют так, как если бы они вставляли новый элемент с помощью CSS. Псевдоэлементы также синтаксически отличаются от псевдоклассов, потому что вместо использования одного двоеточия (:
) мы используем двойное двоеточие ( ::
).
Двойное двоеточие ( ::
) — это то, что отличает псевдоэлемент от псевдокласса, но поскольку этого различия не было в старых версиях спецификаций CSS, браузеры поддерживают одиночное двоеточие для исходных псевдоэлементов. , например : до
и : после
, чтобы помочь с обратной совместимостью со старыми браузерами, такими как IE8.
.my-element :: before {
content: 'Prefix -';
}
Как и в приведенной выше демонстрации, где вы указали префикс метки ссылки типом файла, вы можете использовать псевдоэлемент :: before
для вставки содержимого в начало элемента или :: после псевдоэлемента
для вставки содержимого в конец элемента .
Однако псевдоэлементы не ограничиваются вставкой содержимого. Вы также можете использовать их для нацеливания на определенные части элемента.Например, предположим, что у вас есть список. Используйте :: marker
для стилизации каждого маркера (или номера) в списке
/ * Теперь в вашем списке будут красные точки или красные числа * /
li :: marker {
color: red;
}
Вы также можете использовать :: selection
для стилизации содержимого, выделенного пользователем.
:: выделение {
фон: черный;
цвет: белый;
}
Подробнее читайте в модуле о псевдоэлементах.
Проверьте свои знания псевдоселекторов
Сколько двоеточий в селекторах псевдоэлементов используется?
: :: :::
Один :
используется для нацеливания на псевдоклассы.
Два ::
используются для нацеливания псевдоэлементов.
Это недействительно и ничего не нацелено.
p: наведение {
фон: белый;
цвет: черный;
}
Какой псевдоселектор используется в приведенном выше фрагменте?
Псевдокласс Псевдоэлемент
Один :
используется для нацеливания на псевдоклассы.
Два ::
используются для нацеливания псевдоэлементов.
Сложные селекторы #
Вы уже видели огромное количество селекторов, но иногда вам понадобится больше детализированных элементов управления с вашим CSS. Здесь на помощь приходят сложные селекторы.
Здесь стоит помнить, что, хотя следующие селекторы дают нам больше возможностей, мы можем только каскадировать вниз , выбирая дочерние элементы. Мы не можем ориентироваться вверх и выбирать родительский элемент.Мы рассмотрим, что такое каскад и как он работает, на следующем уроке.
Комбинаторы #
Комбинатор — это то, что находится между двумя селекторами. Например, если селектор был p> strong
, комбинатор будет символом >
. Селекторы, которые используют эти комбинаторы, помогают вам выбирать элементы в зависимости от их положения в документе.
Комбинатор потомков #
Чтобы понять комбинаторы потомков, вам нужно сначала понять родительские и дочерние элементы.
Абзац текста с некоторым полужирным шрифтом для выделения .
Родительским элементом является
, который содержит текст. Внутри этого элемента
находится элемент
, что делает его содержимое полужирным. Поскольку он находится внутри
, это дочерний элемент.
Комбинатор потомков позволяет нам нацеливаться на дочерний элемент. Здесь используется пробел (), чтобы указать браузеру искать дочерние элементы:
p strong {
color: blue;
}
Этот фрагмент кода выбирает все
элементов, которые являются дочерними элементами только
элементов, рекурсивно делая их синими.
Поскольку комбинатор потомков является рекурсивным, применяется дополнение, добавленное к каждому дочернему элементу, что приводит к эффекту смещения.
Этот эффект лучше визуализировать в приведенном выше примере, используя селектор комбинатора, .top div
. Это правило CSS добавляет левое заполнение к этим элементам
, которые находятся в .top
, будут иметь такое же заполнение, примененное к ним. Взгляните на панель HTML в этой демонстрации, чтобы увидеть, как работает .Элемент top
имеет несколько
дочерних элементов, которые сами по себе имеют дочерних элементов. Комбинатор следующего родственного элемента #
Вы можете найти элемент, который следует сразу за другим элементом, используя символы +
в вашем селекторе.
Чтобы добавить пространство между элементами в стеке, используйте комбинатор следующего родственного элемента, чтобы добавить пробел только , если элемент является следующим родственником дочернего элемента .верх
.
Вы можете добавить маржу ко всем дочерним элементам .top
, используя следующий селектор:
.top * {
margin-top: 1em;
}
Проблема в том, что, поскольку вы выбираете каждый дочерний элемент .top
, это правило потенциально создает дополнительное ненужное пространство. Комбинатор следующего родственника , смешанный с универсальным селектором , позволяет вам не только контролировать, какие элементы получают пространство, но также применять пространство к любому элементу .Это дает вам некоторую долгосрочную гибкость, независимо от того, какие элементы HTML появляются в .top
.
Комбинатор последующего брата #
Комбинатор последующего элемента очень похож на селектор следующего брата. Однако вместо символов +
используйте символы ~
. Отличие заключается в том, что элемент просто должен следовать за другим элементом с тем же родителем, а не быть следующим элементом с тем же родителем.
Используйте последующий селектор вместе с псевдоклассом `: checked` для создания чистого элемента переключателя CSS.
Этот последующий комбинатор обеспечивает немного меньшую жесткость, что полезно в контекстах, подобных приведенному выше примеру, где мы меняем цвет настраиваемого переключателя, когда связанный с ним флажок имеет состояние : проверено
.
Дочерний комбинатор #
Дочерний комбинатор (также известный как прямой потомок) позволяет вам лучше контролировать рекурсию, которая идет с селекторами комбинатора. Используя символ >
, вы ограничиваете селектор комбинатора применением только к прямым дочерним элементам.
Рассмотрим предыдущий, следующий пример одноуровневого селектора. Пространство добавляется к каждому следующему одноуровневому элементу , но если один из этих элементов также имеет следующих одноуровневых элемента в качестве дочерних, это может привести к нежелательному дополнительному интервалу.
Чтобы решить эту проблему, измените селектор следующего родственника , чтобы включить дочерний комбинатор: > * + *
. Теперь правило только будет применяться к прямым потомкам .top
.
Составные селекторы #
Вы можете комбинировать селекторы, чтобы повысить специфичность и удобочитаемость.Например, чтобы настроить таргетинг на
элементов, которые также имеют класс .my-class
, напишите следующее:
a.my-class {
color: red;
}
Это не применило бы красный цвет ко всем ссылкам, а также применило бы красный цвет только к .my-class
, если было на элементе
. Подробнее об этом см. В модуле специфичности.
Проверьте свои знания сложных селекторов
Какой из следующих символов является , а не комбинатором селектора?
> ÷ + *.
Комбинатор прямого потомка.
Неверный символ, это не символ CSS.
Следующий комбинатор-брат.
Это универсальный простой селектор.
Простой селектор класса.
section.awesome {
граница: 1 пиксель, сплошной горячий розовый;
}
Вышеупомянутый селектор является примером …
Combinator Составной селектор Terminator
Символ, используемый для объединения селекторов в более конкретный.
Когда 2 или более селектора используются вместе без комбинатора, чтобы создать более конкретный селектор.
Не селекторный тип, но звучит как будто не так? 🤖
Ресурсы #
Flexbox
Подкаст CSS — 010: Flexbox
Аудиоверсия этого модуля
Шаблон проектирования, который может быть сложным в адаптивном дизайне, — это боковая панель, которая встроена в некоторый контент. Там, где есть пространство окна просмотра, этот шаблон отлично работает, но там, где пространство сжато, жесткая компоновка может стать проблематичной.
Модель макета гибкого блока (flexbox) — это модель макета, разработанная для одномерного контента.Он отлично подходит для того, чтобы брать кучу элементов разного размера и возвращать для них лучший макет.
Это идеальная модель макета для этого шаблона боковой панели. Flexbox не только помогает расположить боковую панель и контент внутри, но и там, где остается недостаточно места, боковая панель прерывается на новую строку. Вместо того, чтобы устанавливать жесткие размеры для браузера, с помощью flexbox вы можете вместо этого предоставить гибкие границы, чтобы намекнуть, как может отображаться контент.
Что можно делать с гибкой компоновкой? #
Макеты Flex обладают следующими функциями, которые вы сможете изучить в этом руководстве.
- Они могут отображаться как строка или столбец.
- Они уважают режим написания документа.
- По умолчанию они однострочные, но их можно попросить перенести на несколько строк.
- Элементы в макете можно визуально переупорядочить в сторону от их порядка в модели DOM.
- Пространство может быть распределено внутри элементов, поэтому они становятся больше и меньше в соответствии с пространством, доступным в их родительском элементе.
- Пространство можно распределить вокруг элементов и гибких линий в обернутом макете, используя свойства «Выравнивание прямоугольника».
- Сами элементы можно выровнять по поперечной оси.
Главная ось и поперечная ось #
Ключом к пониманию flexbox является понимание концепции главной оси и поперечной оси. Основная ось задается вашим свойством flex-direction
. Если это строка
, ваша основная ось расположена вдоль строки, если это столбец
, ваша основная ось находится вдоль столбца.
Гибкие элементы перемещаются группой по главной оси. Помните: у нас есть много вещей, и мы пытаемся создать для них лучший макет для группы.
Поперечная ось проходит в направлении, противоположном главной оси, поэтому, если flex-direction
соответствует строке
, поперечная ось проходит вдоль столбца.
На поперечной оси можно делать две вещи. Вы можете перемещать элементы по отдельности или в группе, чтобы они выровнялись относительно друг друга и гибкого контейнера. Кроме того, если вы обернули гибкие линии, вы можете рассматривать эти линии как группу, чтобы контролировать, как им выделяется пространство. В этом руководстве вы увидите, как все это работает на практике, а пока просто имейте в виду, что главная ось следует за вашим flex-direction
.
Создание гибкого контейнера #
Давайте посмотрим, как ведет себя flexbox, взяв группу элементов разного размера и используя flexbox для их размещения.
Один
Элемент два
Элемент, который мы будем обозначать как три
Кому используйте flexbox, вам нужно объявить, что вы хотите использовать контекст форматирования flex, а не обычный блок и встроенный макет. Для этого измените значение свойства display
на flex
.
. Контейнер {
дисплей: гибкий;
}
Как вы узнали из руководства по макету, это даст вам блок блочного уровня с дочерними элементами гибких элементов. Гибкие элементы немедленно начинают демонстрировать некоторое поведение flexbox, используя свои начальные значения .
Все свойства CSS имеют начальные значения, которые управляют их поведением «из коробки», когда вы не применили какой-либо CSS для изменения этого начального поведения. Дочерние элементы нашего гибкого контейнера становятся гибкими элементами, как только их родительский элемент получает display: flex
, поэтому эти начальные значения означают, что мы начинаем наблюдать некоторое поведение flexbox.
Начальные значения означают, что:
- Элементы отображаются в виде строки.
- Они не заворачиваются.
- Они не растут, чтобы заполнить контейнер.
- Они выстраиваются в начале контейнера.
Управление направлением элементов #
Даже если вы еще не добавили свойство flex-direction
, элементы отображаются в виде строки, поскольку начальное значение flex-direction
— это строка
. Если вам нужна строка, вам не нужно добавлять свойство.Чтобы изменить направление, добавьте свойство и одно из четырех значений:
-
строка
: элементы расположены в виде строки. -
ряд-реверс:
элементы выкладываются в ряд от конца гибкого контейнера. -
столбец
: элементы расположены в виде столбца. -
column-reverse
: элементы располагаются в виде столбца от конца гибкого контейнера.
Вы можете опробовать все значения, используя нашу группу элементов в демонстрации ниже.
Обратный поток элементов и доступность #
Вы должны быть осторожны при использовании любых свойств, которые изменяют порядок визуального отображения в сторону от того, как вещи упорядочены в документе HTML, так как это может отрицательно повлиять на доступность. Значения в обратном направлении строки
и в обратном направлении столбца
являются хорошим примером этого. Изменение порядка происходит только для визуального, а не для логического порядка. Это важно понимать, поскольку логический порядок — это порядок, в котором программа чтения с экрана зачитывает содержимое, и любой, кто перемещается с помощью клавиатуры, будет следовать.
В следующем видео вы можете увидеть, как в перевернутом расположении столбцов переходы между ссылками отключаются, поскольку навигация с клавиатуры следует за моделью DOM, а не за визуальным отображением.
Все, что может изменить порядок элементов во флексбоксе или сетке, может вызвать эту проблему. Поэтому любое изменение порядка должно включать в себя тщательное тестирование, чтобы убедиться, что это не затруднит использование вашего сайта для некоторых людей.
Для получения дополнительной информации см .:
Режимы и направление записи #
Элементы Flex по умолчанию располагаются в виде строки.Строка идет в том направлении, в котором предложения текут в вашем режиме письма и в направлении сценария. Это означает, что если вы работаете на арабском языке, который имеет направление письма справа налево (rtl), элементы будут выровнены справа. Порядок табуляции также будет начинаться справа, так как именно так читаются предложения на арабском языке.
Если вы работаете в режиме вертикального письма, как некоторые японские гарнитуры, то строка будет располагаться вертикально, сверху вниз. Попробуйте изменить flex-direction
в этой демонстрации, в которой используется режим вертикального письма.
Таким образом, поведение гибких элементов по умолчанию связано с режимом записи документа. Большинство руководств написано с использованием английского или другого горизонтального режима письма слева направо. Это позволило бы легко предположить, что гибкие элементы выстраиваются в линию слева и , а идут горизонтально .
С учетом основной и поперечной оси, а также режима письма, тот факт, что мы говорим о start и end , а не о верхнем, нижнем, левом и правом в flexbox, может быть легче понять.У каждой оси есть начало и конец. Начало главной оси обозначено как main-start . Итак, наши гибкие элементы изначально выстраиваются в линию с самого начала. Конец этой оси — , главный конец . Начало поперечной оси , поперечное начало и конец , поперечное положение .
Перенос гибких элементов #
Начальное значение свойства flex-wrap
— nowrap
. Это означает, что если в контейнере недостаточно места, предметы будут переполняться.
Как только они достигнут минимального размера содержимого, гибкие элементы начнут переполняться в своем контейнере.
Элементы, отображаемые с использованием начальных значений, будут уменьшаться настолько, насколько это возможно, до минимального размера содержимого
, прежде чем произойдет переполнение.
Чтобы элементы были обернуты, добавьте flex-wrap: wrap
к гибкому контейнеру.
. Контейнер {
дисплей: гибкий;
flex-wrap: пленка;
}
Когда гибкий контейнер оборачивается, он создает несколько гибких линий .С точки зрения распределения пространства каждая строка действует как новый гибкий контейнер. Поэтому, если вы обертываете строки, невозможно добиться того, чтобы что-то в строке 2 выровнялось с чем-то над ним в строке 1. Это то, что подразумевается под одномерным flexbox. Вы можете управлять выравниванием по одной оси, строке или столбцу, но не по обоим вместе, как это можно сделать в сетке.
Сокращение flex-flow #
Вы можете установить свойства flex-direction
и flex-wrap
, используя сокращенное обозначение flex-flow
.Например, чтобы установить flex-direction
на column
и разрешить перенос элементов:
.container {
display: flex;
flex-flow: обертка колонки;
}
Управление пространством внутри гибких элементов #
Предполагая, что в нашем контейнере больше места, чем необходимо для отображения элементов, элементы выстраиваются в линию в начале и не растут, чтобы заполнить пространство. Они перестают расти при максимальном размере содержимого. Это связано с тем, что начальное значение свойств flex-
:
-
flex-grow: 0
: элементы не растут. -
flex-shrink: 1
: элементы могут усадиться меньше, чем их flex-base
. -
flex-base: auto
: элементы имеют базовый размер auto
.
Это может быть представлено значением ключевого слова flex: initial
. Сокращенное свойство flex
или длинные руки flex-grow
, flex-shrink
и flex-base
применяются к дочерним элементам гибкого контейнера.
Чтобы заставить элементы увеличиваться, но позволяя большим элементам иметь больше места, чем маленьким, используйте flex: auto
.Вы можете попробовать это, используя демонстрацию выше. Это устанавливает свойства:
-
flex-grow: 1
: элементы могут расти больше, чем их flex-base
. -
flex-shrink: 1
: элементы могут усадиться меньше, чем их flex-base
. -
flex-base: auto
: элементы имеют базовый размер auto
.
Использование flex: auto
будет означать, что элементы будут иметь разные размеры, так как пространство, которое разделяется между элементами, распределяется вместе после каждый элемент размещается как максимальный размер содержимого.Так у большого предмета будет больше места. Чтобы заставить все элементы иметь одинаковый размер и игнорировать размер изменения содержимого, flex: auto
to flex: 1
в демонстрации.
Это распаковывается в:
-
flex-grow: 1
: элементы могут расти больше, чем их flex-base
. -
flex-shrink: 1
: элементы могут усадиться меньше, чем их flex-base
. -
flex-base: 0
: элементы имеют базовый размер 0
.
Использование flex: 1
говорит, что все элементы имеют нулевой размер, поэтому все пространство в гибком контейнере доступно для распределения. Поскольку все элементы имеют коэффициент flex-grow
, равный 1
, все они растут одинаково, и пространство распределяется поровну.
Существует также значение flex: none
, что дает вам негибкие гибкие элементы, которые не растут и не сжимаются. Это может быть полезно, если вы используете только flexbox для доступа к свойствам выравнивания, но не хотите какого-либо гибкого поведения.
Разрешение элементам расти с разной скоростью #
Необязательно давать всем элементам коэффициент flex-grow
, равный 1
. Вы можете задать своим гибким элементам различные коэффициенты flex-grow
. В демонстрации ниже первый элемент имеет flex: 1
, второй flex: 2
и третий flex: 3
. По мере роста этих элементов с 0 до
доступное пространство в гибком контейнере делится на шесть. Одна часть отдается первому предмету, две части — второму, три части — третьему.
Вы можете сделать то же самое с flex-base
или auto
, хотя вам нужно будет указать три значения. Первое значение — flex-grow
, второе flex-shrink
и третье flex-base
.
.item1 {
flex: 1 1 авто;
} .item2 {
flex: 2 1 авто;
}
Это менее распространенный вариант использования, поскольку причина использования гибкой базы
из auto
заключается в том, чтобы позволить браузеру определить распределение пространства.Если вы хотите, чтобы элемент увеличивался немного больше, чем решает алгоритм, это может быть полезно.
Переупорядочивание гибких элементов #
Элементы в гибком контейнере можно переупорядочить с помощью свойства order
. Это свойство позволяет упорядочивать элементы в порядковых группах . Элементы раскладываются в направлении, указанном flex-direction
, сначала самые низкие значения. Если несколько элементов имеют одинаковое значение, оно будет отображаться вместе с другими элементами с этим значением.
Пример ниже демонстрирует такой порядок.
Предупреждение
Использование порядка
имеет те же проблемы, что и значения row-reverse
и column-reverse
для flex-direction
. Было бы очень легко создать отключенный опыт для некоторых пользователей. Не используйте заказ
, потому что вы исправляете неупорядоченные вещи в документе. Если логически элементы должны быть в другом порядке, измените свой HTML!
Проверьте свои знания о flexbox
По умолчанию flex-direction
— это
строка
столбец
По умолчанию flexbox помещает элементы в строку, выстраивая их в начале.Когда обертывание включено, он продолжит создавать строки для дочерних элементов.
Установка гибкого направления для столбца — отличный способ укладывать элементы в стек, но это не значение по умолчанию.
По умолчанию гибкий контейнер оборачивает дочерние элементы.
true false
Обертывание должно быть включено.
Используйте flex-wrap: wrap
с display: flex
для обертывания дочерних элементов
Гибкий дочерний элемент выглядит сжатым, какое свойство гибкости помогает смягчить это?
flex-grow
flex-shrink
flex-base
Это свойство описывает, могут ли элементы вырасти за пределы базового размера, а не то, как они должны вести себя под базисом.
Да, это свойство описывает, как обрабатывать размер, если ширина идет ниже основы.
Это обеспечивает отправную точку определения размера, но не то, как обрабатывать сценарии изменения размера, в которых ширина опускается ниже базовой, как в сценарии с сжатием.
Обзор выравнивания Flexbox #
Flexbox принес с собой набор свойств для выравнивания элементов и распределения пространства между элементами. Эти свойства были настолько полезны, что с тех пор они были перенесены в отдельную спецификацию, вы также встретите их в Grid Layout.Здесь вы можете узнать, как они работают при использовании flexbox.
Набор свойств можно разделить на две группы. Свойства распределения пространства и свойства выравнивания. Свойства, которые распределяют пространство:
-
justify-content
: распределение пространства по главной оси. -
align-content
: распределение пространства по поперечной оси. -
place-content
: сокращение для установки обоих вышеуказанных свойств.
Свойства, используемые для выравнивания в flexbox:
-
align-self
: выравнивает отдельный элемент по поперечной оси -
align-items
: выравнивает все элементы как группу по поперечной оси
Если вы работаете с главной осью, то свойства начинаются с justify-
. На поперечной оси они начинаются с align-
.
Распределение пространства по главной оси #
В HTML, который использовался ранее, гибкие элементы размещены в виде строки, на главной оси остается пространство.Предметы недостаточно велики, чтобы полностью заполнить гибкий контейнер. Элементы выстраиваются в начале гибкого контейнера, потому что начальное значение justify-content
равно flex-start
. Элементы выстраиваются в начале, а любое лишнее пространство — в конце.
Добавьте свойство justify-content
к гибкому контейнеру, присвойте ему значение flex-end
, и элементы выстраиваются в линию в конце контейнера, а свободное пространство помещается в начало.
.контейнер {
дисплей: гибкий;
justify-content: гибкий конец;
}
Вы также можете распределить пространство между элементами с помощью justify-content: space-between
.
Попробуйте некоторые значения в демонстрации и посмотрите MDN для получения полного набора возможных значений.
Для свойства justify-content
, чтобы делать все, у вас должно быть свободное место в вашем контейнере на главной оси. Если ваши элементы заполняют ось, значит, нет места для разделения, поэтому свойство ничего не сделает.
С
flex-direction: column
#
Если вы изменили flex-direction
на column
, тогда justify-content
будет работать для столбца. Чтобы иметь свободное место в вашем контейнере при работе в качестве колонны, вам нужно дать вашему контейнеру высоту
или размера блока
. В противном случае у вас не будет свободного места для распространения.
Попробуйте разные значения, на этот раз с макетом столбцов flexbox.
Распределение пространства между линиями гибкости #
С обернутым гибким контейнером у вас может быть пространство для распределения по поперечной оси.В этом случае вы можете использовать свойство align-content
с теми же значениями, что и justify-content
. В отличие от justify-content
, который по умолчанию выравнивает элементы по flex-start
, начальное значение align-content
равно stretch
. Добавьте свойство align-content
к гибкому контейнеру, чтобы изменить это поведение по умолчанию.
.container {
align-content: center;
}
Попробуйте это в демонстрации.В примере есть обернутые строки гибких элементов, а контейнер имеет размер блока
, чтобы у нас было немного свободного места.
Сокращение
place-content
#
Чтобы установить justify-content
и align-content
, вы можете использовать place-content
с одним или двумя значениями. Одно значение будет использоваться для обеих осей, если вы укажете, что первое используется для align-content
, а второе — для justify-content
.
.container {
place-content: space-between;
/ * устанавливает для обоих значений пробел * /
} .container {
place-content: center flex-end;
/ * обернутые линии на поперечной оси центрированы,
на главной оси элементы выровнены по концу гибкого контейнера * /
}
Выравнивание элементов по поперечной оси #
На поперечной оси вы Вы также можете выровнять элементы внутри гибкой линии с помощью align-items
и align-self
.Пространство, доступное для этого выравнивания, будет зависеть от высоты гибкого контейнера или гибкой линии в случае обернутого набора элементов.
Начальное значение align-self
— stretch
, поэтому гибкие элементы в строке по умолчанию растягиваются до высоты самого высокого элемента. Чтобы изменить это, добавьте свойство align-self
к любому гибкому элементу.
. Контейнер {
дисплей: гибкий;
} .item1 {
align-self: flex-start;
}
Используйте любое из следующих значений для выравнивания элемента:
-
гибкий старт
-
гибкий конец
-
центр
-
растяжение
22 базовая линия Смотрите полный список значений на MDN.
В следующей демонстрации есть одна линия гибких элементов с flex-direction: строка
. Последний элемент определяет высоту гибкого контейнера. Первый элемент имеет свойство align-self
со значением flex-start
. Попробуйте изменить значение этого свойства, чтобы увидеть, как оно перемещается в пределах своего пространства по поперечной оси.
Свойство align-self
применяется к отдельным элементам. Свойство align-items
можно применить к гибкому контейнеру, чтобы задать все отдельные свойства align-self
как группу.
. Контейнер {
дисплей: гибкий;
align-items: гибкий старт;
}
В этой следующей демонстрации попробуйте изменить значение align-items
, чтобы выровнять все элементы на поперечной оси как группу.
Почему в flexbox нет justify-self? #
Гибкие элементы действуют как группа на главной оси. Таким образом, нет концепции отделения отдельного элемента от этой группы.
В макете сетки свойства justify-self
и justify-items
работают на встроенной оси, чтобы выполнить выравнивание элементов по этой оси в пределах их области сетки.Из-за того, что гибкие макеты обрабатывают элементы как группу, эти свойства не реализуются в гибком контексте.
Стоит знать, что flexbox прекрасно работает с автоматическими полями. Если вы столкнулись с необходимостью выделить один элемент из группы или разделить группу на две группы, вы можете применить для этого маржу. В приведенном ниже примере у последнего элемента левое поле auto
. Автоматическое поле поглощает все пространство в том направлении, в котором оно применяется. Это означает, что он сдвигает элемент вправо, тем самым разделяя группы.
Как центрировать элемент по вертикали и горизонтали #
Свойства выравнивания можно использовать для центрирования элемента внутри другого блока. Свойство justify-content
выравнивает элемент по главной оси, которая является строкой. Свойство align-items
на поперечной оси.
. Контейнер {
ширина: 400 пикселей;
высота: 300 пикселей;
дисплей: гибкий;
justify-content: center;
align-items: center;
}
В будущем мы, возможно, сможем выполнять это выравнивание без необходимости делать родительский контейнер гибким.Свойства выравнивания указываются для блочного и встроенного макета. В настоящее время ни один браузер не поддерживает их. Однако переключение в контекст гибкого форматирования дает вам доступ к свойствам. Если вам нужно что-то выровнять, это отличный способ сделать это.
Проверьте свои знания о flexbox
.container {
display: flex;
направление: ltr;
}
Чтобы выровнять по вертикали с помощью flexbox, используйте
align ключевые слова оправдать ключевые слова
.container {
display: flex;
направление: ltr;
}
Для горизонтального выравнивания с flexbox используйте
align ключевые слова оправдать ключевые слова
.контейнер {
дисплей: гибкий;
направление: ltr;
}
По умолчанию гибкие элементы выровнены по stretch
. Если вы хотите использовать размер содержимого для дочерних элементов, какой из следующих стилей вы бы использовали?
justify-content: flex-start
align-content: start
height: auto
align-items: flex-start
Свойство justify предназначено для выравнивания по горизонтали, а не по вертикали.
содержимое
выравнивает гибкие линии, а не выравнивание дочернего элемента.
Это не повлияет.
Да, мы хотим выровнять их по вертикали по «верху» или началу, что удаляет значение растяжения по умолчанию и вместо этого использует высоту содержимого.
Ресурсы #
Сетка
Подкаст CSS — 011: Сетка
Аудиоверсия этого модуля
Действительно распространенный макет в веб-дизайне — это макет верхнего, бокового, основного и нижнего колонтитулов.
За прошедшие годы появилось много методов решения этой разметки, но с помощью CSS-сетки это не только относительно просто, но и у вас есть множество вариантов.Сетка исключительно полезна при сочетании контроля, который обеспечивает внешний размер, с гибкостью внутреннего изменения размера, что делает его идеальным для такого рода макетов. Это связано с тем, что сетка — это метод компоновки, предназначенный для двумерного содержимого. То есть раскладывать объекты по строкам и столбцам одновременно.
При создании макета сетки вы определяете сетку со строками и столбцами. Затем вы помещаете элементы в эту сетку или позволяете браузеру автоматически размещать их в созданных вами ячейках.В сетке много всего, но с обзором того, что доступно, вы сможете создавать макеты сетки в кратчайшие сроки.
Обзор #
Итак, что можно делать с сеткой? Макеты сетки имеют следующие особенности. Вы узнаете обо всех из них в этом руководстве.
- Сетка может быть определена с помощью строк и столбцов. Вы можете выбрать размер этих дорожек строк и столбцов или они могут реагировать на размер содержимого.
- Прямые дочерние элементы контейнера сетки будут автоматически помещены в эту сетку.
- Или вы можете разместить элементы в нужном месте.
- Линиям и областям на сетке можно дать имя, чтобы упростить размещение.
- Свободное место в сетке контейнера можно распределить между дорожками.
- Элементы сетки можно выравнивать в пределах их области.
Терминология Grid #
Grid содержит множество новой терминологии, поскольку впервые в CSS появилась реальная система компоновки.
Линии сетки #
Сетка состоит из линий, которые проходят горизонтально и вертикально.Если в вашей сетке четыре столбца, в ней будет пять строк столбцов, включая строку после последнего столбца.
Строки нумеруются, начиная с 1, с нумерацией, соответствующей режиму записи и направлению сценария компонента. Это означает, что строка столбца 1 будет слева на языке с письмом слева направо, например на английском, и справа на языке с письмом справа налево, например на арабском.
Дорожки сетки #
Дорожки — это промежутки между двумя линиями сетки. Дорожка строк находится между двумя строками, а дорожка столбцов — между двумя строками столбцов.Когда мы создаем нашу сетку, мы создаем эти дорожки, присваивая им размер.
Ячейка сетки #
Ячейка сетки — это наименьшее пространство в сетке, определяемое пересечением дорожек строк и столбцов. Это похоже на ячейку таблицы или ячейку в электронной таблице. Если вы определяете сетку и не размещаете какие-либо элементы, они автоматически размещаются по одному элементу в каждой определенной ячейке сетки.
Область сетки #
Несколько ячеек сетки вместе. Области сетки создаются путем размещения элемента на нескольких дорожках.
Промежутки #
Желоб или переулок между путями. Для определения размера они действуют как обычная дорожка. Вы не можете разместить контент в промежутке, но можете растянуть элементы сетки по нему.
Контейнер сетки #
Элемент HTML, к которому применено display: grid
, и поэтому создает новый контекст форматирования сетки для непосредственных дочерних элементов.
. Контейнер {
дисплей: сетка;
}
Элемент сетки #
Элемент сетки — это элемент, который является прямым потомком контейнера сетки.
Строки и столбцы #
Чтобы создать базовую сетку, вы можете определить сетку с тремя дорожками столбцов, двумя дорожками строк и зазором в 10 пикселей между дорожками следующим образом.
. Контейнер {
дисплей: сетка;
столбцов шаблона сетки: 5em 100px 30%;
сетка-шаблон-строк: 200 пикселей автоматически;
пробел: 10 пикселей;
}
Эта сетка демонстрирует многие вещи, описанные в разделе терминологии.Он имеет три колонны. Каждая дорожка использует разные единицы длины. Он имеет две рядные гусеницы, в одной из которых используются единицы измерения длины, а в другой — автоматический. При использовании в качестве размера дорожки автоматический размер может считаться таким же большим, как и контент. Размер дорожек по умолчанию устанавливается автоматически.
Если элемент с классом .container
имеет дочерние элементы, они будут немедленно размещены в этой сетке. Вы можете увидеть это в действии в демонстрации ниже.
Инструменты разработчика Chrome Grid могут помочь вам понять различные части сетки.
Откройте демонстрацию в Chrome. Осмотрите элемент с серым фоном, который имеет идентификатор контейнера
. Выделите сетку, выбрав значок сетки в DOM рядом с элементом .container
. На вкладке «Макет» выберите Отображать номера строк в раскрывающемся списке, чтобы увидеть номера строк в вашей сетке.
Сетка, выделенная в Chrome DevTools, с номерами строк, ячейками и дорожками.
Ключевые слова внутреннего размера #
В дополнение к размерам длины и процентов, как описано в разделе о единицах измерения, дорожки сетки могут использовать внутренние ключевые слова определения размера.Эти ключевые слова определены в спецификации размеров блока и добавляют дополнительные методы изменения размеров блоков в CSS, а не только дорожки сетки.
-
min-content
-
max-content
-
fit-content ()
Ключевое слово min-content
сделает дорожку настолько маленькой, насколько это возможно без переполнения содержимого дорожки. Изменение макета сетки в качестве примера на три столбца дорожек с размером мин-контент
будет означать, что они станут такими же узкими, как самое длинное слово на дорожке.
Ключевое слово max-content
имеет противоположный эффект. Дорожка станет достаточно широкой, чтобы весь контент отображался в одной длинной непрерывной строке. Это может вызвать переполнение, так как строка не будет переноситься.
Функция fit-content ()
сначала действует как max-content
. Однако, как только дорожка достигает размера, который вы передаете функции, содержимое начинает переноситься. Таким образом, fit-content (10em)
создаст дорожку размером менее 10em, если размер max-content
меньше 10em, но никогда не больше 10em.
В следующей демонстрации попробуйте различные ключевые слова внутреннего размера, изменив размер дорожек сетки.
В этой демонстрации вы могли заметить, что при использовании auto столбцы сетки растягиваются, чтобы заполнить контейнер. Дорожки с автоматическим размером по умолчанию растягиваются, если в контейнере сетки есть дополнительное пространство.
The
fr
unit #
У нас есть существующие размеры длины, проценты, а также эти новые ключевые слова. Существует также специальный метод определения размеров, который работает только в сетке.Это блок fr
, гибкая длина, которая описывает долю доступного пространства в контейнере сетки.
Блок fr
работает аналогично использованию flex: auto
в flexbox. Он распределяет пространство после того, как предметы были выложены. Таким образом, необходимо иметь три столбца, которые получают одинаковую долю доступного пространства:
.container {
display: grid;
сетка-шаблон-столбцы: 1fr 1fr 1fr;
}
Поскольку блок fr распределяет доступное пространство, его можно комбинировать с зазором фиксированного размера или гусеницами фиксированного размера.Чтобы иметь компонент с элементом фиксированного размера и второй дорожкой, занимающей все оставшееся пространство, вы можете использовать в качестве списка дорожек grid-template-columns: 200px 1fr
.
Использование разных значений для единицы fr пропорционально разделит пространство. Большие значения получают больше свободного места. В демо ниже измените значение третьего трека.
Функция
minmax ()
#
Эта функция означает, что вы можете установить минимальный и максимальный размер дорожки.Это может быть весьма полезно. Если мы возьмем приведенный выше пример блока fr
, который распределяет оставшееся пространство, его можно записать с использованием minmax ()
как minmax (auto, 1fr)
. Сетка проверяет внутренний размер содержимого, а затем распределяет доступное пространство после того, как предоставит содержимому достаточно места. Это означает, что вы можете не получить дорожки, каждая из которых имеет равную долю всего пространства, доступного в контейнере сетки.
Чтобы дорожка занимала равную долю пространства в контейнере сетки за вычетом зазоров, используйте minmax.Замените 1fr
как размер дорожки на minmax (0, 1fr)
. Это делает минимальный размер дорожки равным 0, а не минимальный размер содержимого. Затем Grid возьмет весь доступный размер в контейнере, вычтет размер, необходимый для любых зазоров, и разделит остальное в соответствии с вашими единицами fr.
repeat ()
notation #
Если вы хотите создать сетку дорожек из 12 столбцов с равными столбцами, вы можете использовать следующий CSS.
. Контейнер {
дисплей: сетка;
grid-template-columns:
minmax (0,1fr),
minmax (0,1fr),
minmax (0,1fr),
minmax (0,1fr),
minmax (0,1fr),
minmax ( 0,1fr),
minmax (0,1fr),
minmax (0,1fr),
minmax (0,1fr),
minmax (0,1fr),
minmax (0,1fr),
minmax (0, 1fr);
}
Или вы можете записать это с помощью repeat ()
:
.контейнер {
дисплей: сетка;
сетка-шаблон-столбцы: повтор (12, minmax (0,1fr));
}
Функцию repeat ()
можно использовать для повтора любого раздела вашего трек-листа. Например, вы можете повторить последовательность треков. Вы также можете иметь несколько обычных треков и повторяющийся раздел.
. Контейнер {
дисплей: сетка;
grid-template-columns: повторение 200 пикселей (2, 1fr 2fr) 200px; / * создает 6 дорожек * /
}
auto-fill
и auto-fit
#
Вы можете объединить все, что вы узнали о размере дорожек, minmax ()
, и повторить, чтобы создать полезный узор с сеткой.Возможно, вы не хотите указывать количество дорожек столбцов, а вместо этого хотите создать столько, сколько поместится в вашем контейнере.
Этого можно добиться с помощью repeat ()
и auto-fill
или auto-fit
ключевых слов. В демонстрации ниже сетка создаст столько треков по 200 пикселей, сколько поместится в контейнере. Откройте демонстрацию в новом окне и посмотрите, как меняется сетка при изменении размера области просмотра.
В демо мы получаем столько треков, сколько поместится.Однако гусеницы не гибкие. У вас будет зазор на конце, пока не будет достаточно места для еще одной дорожки в 200 пикселей. Если вы добавите функцию minmax ()
, вы можете запросить столько треков, сколько поместится с минимальным размером 200 пикселей и максимальным размером 1fr. Затем сетка размещает дорожки из 200 пикселей, и оставшееся пространство равномерно распределяется между ними.
Это создает двухмерный адаптивный макет без каких-либо медиа-запросов.
Есть небольшая разница между auto-fill
и auto-fit
.В следующей демонстрации поиграйте с макетом сетки, используя синтаксис, описанный выше, но только с двумя элементами сетки в контейнере сетки. Используя ключевое слово auto-fill
, вы можете увидеть, что были созданы пустые дорожки. Измените ключевое слово на автоматически
, и дорожки уменьшатся до нулевого размера. Это означает, что гибкие дорожки теперь разрастаются, чтобы занять пространство.
Ключевые слова auto-fill
и auto-fit
в остальном действуют точно так же. После заполнения первой дорожки между ними нет никакой разницы.
Автоматическое размещение #
Вы уже видели работу автоматического размещения сетки в демонстрациях. Элементы помещаются в сетку по одному на ячейку в том порядке, в котором они появляются в источнике. Для многих макетов это может быть все, что вам нужно. Если вам нужен больший контроль, вы можете сделать несколько вещей. Первый — настроить макет автоматического размещения.
Размещение элементов в столбцах #
По умолчанию макет сетки размещает элементы вдоль строк. Вместо этого вы можете заставить элементы помещаться в столбцы, используя grid-auto-flow: column
.Вам необходимо определить дорожки строк, иначе элементы будут создавать собственные дорожки столбцов и размещать все в одной длинной строке.
Эти значения относятся к режиму записи документа. Строка всегда идет в направлении предложения в режиме письма документа или компонента. В следующей демонстрации вы можете изменить для режима значение grid-auto-flow
и свойство writing-mode
.
Объединение дорожек #
Вы можете заставить некоторые или все элементы в автоматически размещенном макете занимать более одной дорожки.Используйте ключевое слово span
плюс количество строк для охвата как значение для grid-column-end
или grid-row-end
.
.item {
решетка-конец колонны: пролет 2; / * будет охватывать две строки, поэтому покрывает две дорожки * /
}
Поскольку вы не указали grid-column-start
, здесь используется начальное значение auto
и размещается в соответствии с автоматическим размещением правила. Вы также можете указать то же самое, используя сокращенное обозначение grid-column
:
.элемент {
сетка-столбец: авто / промежуток 2;
}
Заполнение пробелов #
Автоматически размещенный макет с некоторыми элементами, занимающими несколько дорожек, может привести к появлению сетки с некоторыми незаполненными ячейками. По умолчанию макет сетки с полностью автоматически размещенным макетом всегда продвигается вперед. Элементы будут размещены в соответствии с порядком их расположения в источнике или любой модификацией со свойством order
. Если для размещения элемента недостаточно места, сетка оставит пробел и перейдет к следующей дорожке.
Следующая демонстрация демонстрирует это поведение. Флажок применит режим плотной упаковки. Это обеспечивается за счет присвоения grid-auto-flow
значения , плотного
. С этим значением сетка будет принимать элементы позже в макете и использовать их для заполнения пробелов. Это может означать, что отображение перестает соответствовать логическому порядку.
Размещение элементов #
У вас уже есть много функций CSS Grid. Давайте теперь посмотрим, как мы позиционируем элементы в созданной нами сетке.
Первое, что нужно помнить, это то, что CSS Grid Layout основан на сетке из пронумерованных линий. Самый простой способ разместить объекты на сетке — это переместить их от одной линии к другой. В этом руководстве вы обнаружите другие способы размещения элементов, но у вас всегда есть доступ к этим пронумерованным строкам.
Свойства, которые вы можете использовать для размещения элементов по номеру строки:
У них есть сокращения, которые позволяют вам одновременно устанавливать как начальную, так и конечную строки:
Чтобы разместить элемент, установите начальную и конечную линии области сетки что это должно быть помещено в.
. Контейнер {
дисплей: сетка;
сетка-шаблон-столбцы: повторить (4, 1fr);
сетка-шаблон-строк: повтор (2, 200 пикселей 100 пикселей);
} .item {
начало столбца сетки: 1; / * начало строки столбца 1 * /
grid-column-end: 4; / * конец в строке столбца 4 * /
grid-row-start: 2; / * начало со строки строки 2 * /
grid-row-end: 4; / * конец в строке 4 * /
}
Chrome DevTools может предоставить вам визуальное руководство по строкам, чтобы проверить, где находится ваш элемент.
Нумерация строк соответствует режиму записи и направлению компонента. В следующей демонстрации измените режим или направление письма, чтобы увидеть, как размещение элементов остается согласованным с движением текста.
Укладка элементов в стопку #
Используя линейное позиционирование, вы можете размещать элементы в одной и той же ячейке сетки. Это означает, что вы можете складывать элементы друг в друга или заставлять один элемент частично перекрывать другой. Элементы, которые поступают позже в источнике, будут отображаться поверх элементов, которые поступают раньше.Вы можете изменить этот порядок наложения с помощью z-index
, как и для позиционированных элементов.
Отрицательные номера строк #
Когда вы создаете сетку, используя grid-template-rows
и grid-template-columns
, вы создаете так называемую явную сетку . Это сетка, которую вы определили и дали размер дорожкам.
Иногда у вас будут элементы, которые отображаются за пределами этой явной сетки. Например, вы можете определить дорожки столбцов, а затем добавить несколько строк элементов сетки, даже не определяя дорожки строк.Размер дорожек будет автоматически изменен по умолчанию. Вы также можете разместить элемент, используя grid-column-end
, который находится за пределами явно определенной сетки. В обоих случаях сетка создаст дорожки, чтобы макет работал, и эти дорожки называются неявной сеткой .
В большинстве случаев не имеет значения, работаете ли вы с явной или неявной сеткой. Однако при линейном размещении вы можете столкнуться с основным различием между ними.
Используя отрицательные номера строк, вы можете размещать элементы с конечной строки явной сетки.Это может быть полезно, если вы хотите, чтобы элемент занимал от первой до последней строки столбца. В этом случае вы можете использовать столбец сетки : 1 / -1
. Элемент будет растягиваться прямо через явную сетку.
Однако это работает только для явной сетки. Возьмите макет из трех рядов автоматически размещенных элементов, где вы хотите, чтобы самый первый элемент охватывал конечную линию сетки.
Вы можете подумать, что можете дать этому элементу grid-row: 1 / -1
. В демонстрации ниже вы можете увидеть, что это не работает.Дорожки создаются в неявной сетке, нет возможности достичь конца сетки, используя -1
.
Размер неявных дорожек #
Размер дорожек, созданных в неявной сетке, будет автоматически изменяться по умолчанию. Однако, если вы хотите контролировать размер строк, используйте свойство grid-auto-rows
, а для столбцов grid-auto-columns
.
Для создания всех неявных строк с минимальным размером 10em
и максимальным размером auto
:
.контейнер {
дисплей: сетка;
grid-auto-rows: minmax (10em, auto);
}
Для создания неявных столбцов с узором дорожек шириной 100 пикселей и 200 пикселей. В этом случае первый неявный столбец будет иметь размер 100 пикселей, второй — 200 пикселей, третий — 100 пикселей и так далее.
. Контейнер {
дисплей: сетка;
grid-auto-columns: 100 пикселей 200 пикселей;
}
Именованные линии сетки #
Это может упростить размещение элементов в макете, если у линий есть имя, а не номер.Вы можете назвать любую линию в своей сетке, добавив имя по вашему выбору в квадратных скобках. Можно добавить несколько имен, разделенных пробелом в одних и тех же скобках. После того, как вы назвали строки, их можно использовать вместо чисел.
. Контейнер {
дисплей: сетка;
grid-template-columns:
[начало-в-стороне-начало] 1fr
[начало-в-стороне-контента] 2fr
[начало-конец-контента]; / * макет из двух столбцов * /
} .sidebar {
grid-column: aside-start / aside-end;
/ * помещается между строками 1 и 2 * /
}
Нижний колонтитул {
grid-column: main-start / main-end;
/ * прямо через макет от строки 1 до строки 3 * /
}
Области шаблона сетки #
Вы также можете давать имена областям сетки и размещать элементы в этих именованных областях.Это прекрасный метод, поскольку он позволяет вам увидеть, как выглядит ваш компонент прямо в CSS.
Для начала дайте прямым потомкам вашего контейнера сетки имя, используя свойство grid-area
:
header {
grid-area: header;
} .sidebar {
grid-area: sidebar; боковая панель;
}
.content {
grid-area: content;
}
нижний колонтитул {
grid-area: footer;
}
Имя может быть любым, кроме ключевых слов auto
и span
.После того, как все ваши элементы названы, используйте свойство grid-template-area
, чтобы определить, какие ячейки сетки будут охватывать каждый элемент. Каждая строка определяется в кавычках.
. Контейнер {
дисплей: сетка;
сетка-шаблон-столбцы: повторить (4,1fr);
grid-template-sizes:
"header header header header"
"контент содержимого боковой панели"
"нижний колонтитул нижнего колонтитула боковой панели";
}
Есть несколько правил при использовании grid-template-area
.
- Значение должно представлять собой полную сетку без пустых ячеек.
- Для объединения треков повторите название.
- Области, созданные повторением имени, должны быть прямоугольными и не могут быть отсоединены.
Если вы нарушите любое из вышеперечисленных правил, значение будет считаться недопустимым и отброшено.
Чтобы оставить пустое место в сетке, используйте .
или кратные без пробелов между ними. Например, чтобы оставить самую первую ячейку в сетке пустой, я мог бы добавить серию .
знаков:
.container {
display: grid;
сетка-шаблон-столбцы: повторить (4,1fr);
grid-template-sizes:
"....... header header header"
"sidebar content content content"
"sidebar footer footer footer";
}
Поскольку весь макет определяется в одном месте, это упрощает переопределение макета с помощью медиа-запросов. В следующем примере я создал макет из двух столбцов, который переместился в три столбца, переопределив значение grid-template-columns
и grid-template-area
.Откройте пример в новом окне, чтобы поиграть с размером области просмотра и увидеть изменение макета.
Вы также можете увидеть, как свойство grid-template-area
соотносится с режимом письма
и направлением, как и с другими методами сетки.
Сокращенные свойства #
Есть два сокращенных свойства, которые позволяют вам установить многие свойства сетки за один раз. Они могут выглядеть немного запутанными, пока вы не разберетесь, как именно они сочетаются. Хотите ли вы их использовать или предпочитаете использовать длинные руки, зависит от вас.
grid-template
#
Свойство grid-template
является сокращением для grid-template-rows
, grid-template-columns
и grid-template-областей
. Сначала определяются строки вместе со значением grid-template-area
. Размер столбца добавлен после /
.
. Контейнер {
дисплей: сетка;
grid-template:
"head head head" minmax (150px, auto)
"sidebar content content" auto
"sidebar footer footer" auto / 1fr 1fr 1fr;
}
grid
property #
Сокращение grid
можно использовать точно так же, как стенографию grid-template
.При таком использовании он сбрасывает другие свойства сетки, которые он принимает, к их начальным значениям. Полный набор:
-
строк-шаблонов сетки
-
столбцов-шаблонов сетки
-
областей-шаблонов сетки
-
автоматических строк сетки
-
автоматических столбцов сетки
-
grid-auto-flow
Вы также можете использовать это сокращение, чтобы определить, как ведет себя неявная сетка, например:
.контейнер {
дисплей: сетка; Сетка
: повтор (2, 80px) / auto-flow 120px;
}
Alignment #
Макет сетки использует те же свойства выравнивания, о которых вы узнали в руководстве по flexbox. В сетке свойства, которые начинаются с justify-
, всегда используются на встроенной оси — направлении, в котором предложения бегут в вашем режиме письма.
Свойства, которые начинаются с align-
, используются на оси блока, направлении, в котором блоки размещаются в вашем режиме записи.
Распределение дополнительного пространства #
В этой демонстрации сетка больше, чем пространство, необходимое для размещения дорожек фиксированной ширины. Это означает, что у нас есть пространство как во встроенных, так и в блочных измерениях сетки. Попробуйте разные значения align-content
и justify-content
, чтобы увидеть, как ведут себя дорожки.
Обратите внимание, как зазоры становятся больше при использовании таких значений, как пробел между
, и любой элемент сетки, охватывающий две дорожки, также увеличивается, чтобы поглотить дополнительное пространство, добавленное к зазору.
Как и в случае с flexbox, эти свойства будут работать, только если есть дополнительное пространство для распределения. Если ваши сеточные дорожки аккуратно заполняют контейнер, тогда не будет места, которое можно было бы разделить.
Перемещение содержимого вокруг #
Элементы с цветом фона кажутся полностью заполняющими область сетки, в которой они размещены, поскольку начальное значение для justify-self
и align-self
равно stretch
.
Если ваш элемент является изображением или чем-то другим с внутренним соотношением сторон, начальное значение будет start
, а не stretch
, чтобы не растягивать объекты не по форме.
В демонстрации измените значения justify-items
и align-items
, чтобы увидеть, как это меняет макет. Область сетки не меняет размер, вместо этого элементы перемещаются внутри определенной области.
Проверьте свои знания о сетке
Что из следующего является терминами CSS-сетки?
линий, кружков, ячеек, участков, поездов, промежутков, путей,
, сетка, разделенная этими горизонтальными и вертикальными разделителями.
Извините, в сетке CSS нет понятия кругов.
Одно пересечение строки и столбца создает ячейку сетки.
Извините, в CSS-сетке нет концептов поездов.
Отдельная строка или столбец — это дорожка в сетке.
Какое направление макета сетки используется по умолчанию?
Строки Столбцы
Без определения каких-либо столбцов дочерние элементы сетки располагаются в направлении блоков, как обычно.
Если присутствует grid-auto-flow: column
, то сетка будет размещена в виде столбцов.
В чем разница между auto-fit
и auto-fill
?
auto-fit
растянет ячейки по размеру контейнера, а auto-fill
— нет. auto-fit
растянет контейнер, чтобы он соответствовал дочерним элементам, а auto-fill
подгоняет дочерние элементы к контейнеру.
автозаполнение
помещает в шаблон как можно больше элементов без растяжения. Fit делает подходящими.
Эти свойства ведут себя иначе.
Что такое min-content
?
То же, что и 0% Наименьшая буква Самое длинное слово или изображение.
0% — относительное значение родительского блока, а min-content
— относительно слов и изображений в блоке.
Хотя есть самая маленькая буква, буквы — это не то, на что ссылается min-content
.
Во фразе «CSS — это круто» словом «потрясающе» будет min-content
.
Что такое max-content
?
Самое длинное предложение или самое большое изображение. Самое длинное письмо. Самое длинное слово.
Это максимальный размер, который запрашивается или указывается содержимым коробки. Это предложение в самом широком смысле или изображение в самом широком смысле.
Хотя есть самая длинная буква, буквы — это не то, на что ссылается max-content
.
Самое длинное слово — min-content
.
Что такое автоматическое размещение?
Когда сетка берет дочерние элементы и размещает их в наилучшем порядке на основе эвристики браузера. Когда дочерним элементам сетки присвоена область сетки
и они помещаются в эту ячейку. Когда неназначенные элементы сетки помещаются рядом в шаблоне макета.
Ни один браузер не изменит порядок вашего содержимого, это будут делать только ваши собственные стили.
Это явное размещение, а не автоматическое размещение.
Элементы сетки без явной области будут помещены в следующую доступную ячейку сетки.
Ресурсы #
В этом руководстве представлен обзор различных частей спецификации макета сетки.Чтобы узнать больше, взгляните на следующие ресурсы.
Изучите кодирование CSS в Интернете | Дом на дереве
Обладая навыками CSS, вы сможете управлять тем, как HTML отображается на веб-страницах. Вы научитесь использовать таблицы стилей, чтобы изменять эти элементы различными способами. CSS позволяет изменять цвета, размеры шрифтов, фон, макет и многое другое. Помимо изменения экранных элементов, CSS также позволяет адаптировать контент к экрану любого устройства. CSS может помочь вам запрограммировать ваши веб-страницы так, чтобы они соответствовали размеру экрана и разрешению, независимо от устройства.Если вы были на веб-странице в Интернете, скорее всего, вы взаимодействовали с CSS. Короче говоря, это важный язык, и работодателям всегда нравится рассматривать его как навык в приложении.
С Treehouse вы получите все необходимое для развития своих способностей и продвижения по карьерной лестнице в программировании на CSS. Имея в своем наборе навыков программирование на CSS, вы откроете для себя массу возможностей в области разработки. И Treehouse может помочь вам в этом.
С курсами Treehouse вы получите высокоэффективный и интуитивно понятный набор навыков.Вы изучаете навыки быстро, но вы также изучаете концепции на глубоком уровне. Независимо от того, на каком уровне вы разработчик, всегда найдется подход, который принесет вам пользу. Вы можете начать как новичок или сразу же пройти курсы повышения квалификации. Вы можете полностью настроить процесс обучения.
Помимо настройки того, как вы учитесь, вы также можете выбирать, когда вы учитесь. Когда у вас есть обязанности на полную ставку, вы знаете, как трудно найти время для обучения. С помощью Treehouse вы можете устранить эту проблему.Наши курсы были созданы для того, чтобы их можно было пройти с любой скоростью и в любом темпе. Вы можете посещать курсы, когда вам удобно и когда вы готовы учиться. Большинство наших студентов, работающих полный рабочий день, могут найти время для завершения курсов всего за три месяца.
Treehouse также помогает студентам добиться успеха благодаря нашему преподавательскому составу, который является экспертом в своей области. Их знания и опыт в отрасли позволяют им создавать учебные программы, которые действительно бросают вам вызов и помогут вам изучить концепции.Когда вы закончите курс Treehouse, вы действительно почувствуете, что выучили материалы и понимаете, как применять их в реальных жизненных ситуациях.
Сообщество Treehouse добавляет дополнительный уровень поддержки, который особенно полезен в среде самостоятельного обучения. Использование нашего канала Slack позволяет вам общаться с другими людьми, которые проходят курсы, а также с учителями и другими сотрудниками. Создание этого сообщества поможет вашим коллегам обсудить идеи и вопросы, но также предоставит вам постоянную отраслевую сеть, с которой можно связываться за пределами Treehouse.
Treehouse также идеально подходит для тех, кому нужно обновить свой набор навыков. Поскольку языки программирования всегда обновляются и меняются, Treehouse — надежный ресурс, к которому вы можете обратиться, когда вам нужно будет узнать, что нового.
Learn CSS Tutorial Online — Soft CodeOn
Начните изучать CSS прямо сейчас. Learn CSS Tutorial online or CSS3 дает основы передового представления о технологии CSS. Наше руководство по CSS предназначено как для новичков, так и для профессионалов.CSS был разработан Хоконом Виум Ли в 1994 году. Каскадные таблицы стилей Страстно познакомил с CSS. Считается, что это простой в разработке язык, упрощающий процесс создания презентабельных веб-страниц. CSS позволяет применять стиль к элементам HTML на веб-страницах. Кроме того, CSS позволяет вам делать это без HTML, составляющего каждую веб-страницу.
Важный момент языка CSS, приведенный ниже.
- CSS — это каскадная таблица стилей.
- CSS используется для стилизации элементов HTML.dsds
- Это обычно используемый язык на веб-страницах.
- CSS, HTML и JavaScript обычно используются для веб-разработки. Он позволяет веб-дизайнерам применять стиль к элементам HTML.
Например, давайте взглянем на CSS Example в Live Editor.
<стиль>
h2 {
цвет белый;
цвет фона: зеленый;
отступ: 5 пикселей;
}
п{
цвет синий;
}
Это заголовок "SoftCodeON"
Это абзац.
В заключение , Вам необходимо изучить руководство по CSS для стилизации ваших веб-страниц, чтобы получить наилучший внешний вид вашей веб-страницы. Если вы хотите изучить CSS, не забудьте подписаться на нашу новостную рассылку для получения дополнительных информативных руководств по программированию.
Удачи. Learn CSS Tutorial онлайн.
25+ Лучшая коллекция обучающих сайтов по CSS »Автор CSS
CSS (каскадные таблицы стилей) — это основа проектирования и разработки веб-сайтов.Даже если вы дизайнер пользовательского интерфейса, важно иметь базовые знания CSS.
CSS не сложно выучить, вы должны изучить синтаксис CSS задолго до того, как углубитесь в Digg. CSS — это набор правил для стилизации веб-сайта в формате HTML, а CSS — для управления внешним видом сайта. В CSS есть множество свойств и значений, вам необходимо хорошо изучить каждое из них.
Сегодня в этом посте мы собрали отличный список веб-сайтов, которые помогут вам изучить и освоить CSS .Эти веб-сайты содержат максимально подробную информацию о каждом аспекте CSS. Чтобы изучить все эти элементы, потребуется немало времени, но вы не будете разочарованы, когда вы это узнаете.
См. Также: 100+ лучших CSS-фреймворков для адаптивного дизайна
Марочный лист
Источник
CSS Учебник | W3Школы
Источник
Начало работы с CSS — руководство веб-разработчика | MDN
Источник
Научитесь кодировать HTML и CSS
Источник
CSS3 Учебное пособие | Учебник Republic
Источник
Изучите макет CSS
Источник
Видеокурсы и учебные пособия по CSS | Линда
Источник
Руководства по CSS | Учебники по повышению уровня
Источник
Учебное пособие по основам CSS | SiteGround
Источник
Учебное пособие по CSS для начинающих | HTML Собака
Источник
CSS Учебник | javatpoint
Источник
Учебник CSS
Источник
CSS Учебник | УчебникиPoint
Источник
CSS Tutorial — Содержание
Источник
Полное руководство по CSS | Эхо-эхо
Источник
CSS Tutorial — Введение | Учебники Tizag
Источник
Краткое руководство по CSS | Группа веб-дизайна
Источник
Основы CSS
Источник
Полное руководство CSS
Источник
CSS Учебник | учебные пособия.