Содержание

Начало работы с CSS — Изучение веб-разработки

В этой статье мы возьмём простой HTML-документ и применим к нему CSS, изучая некоторые практические вещи о языке.

Нашей отправной точкой является HTML-документ. Вы можете скопировать код снизу, если вы хотите работать на своём компьютере. Сохраните приведённый ниже код как index.html в папке на вашем компьютере.

<!doctype html>
<html lang="ru">
<head>
    <meta charset="utf-8">
    <title>Начало работы с CSS</title>
</head>

<body>

    <h2>Я заголовок первого уровня</h2>

    <p>Это абзац. В нём есть <span>элемент span</span>,
а также <a href="http://example.com">ссылка</a>.</p>

    <p>Это второй абзац. Он содержит <em>акцентирующий</em> текст.</p>

    <ul>
        <li>Элемент один</li>
        <li>Элемент два</li>
        <li>Элемент <em>три</em></li>
    </ul>

</body>

</html>

Примечание: Если вы читаете это на устройстве или в среде, где вы не можете легко создавать файлы, не беспокойтесь — ниже представлены редакторы кода, чтобы вы могли написать код прямо здесь, на странице.

Самое первое, что нам нужно сделать, — это сообщить HTML-документу, что у нас есть некоторые правила CSS, которые мы хотим использовать. Существует три различных способа применения CSS к документу HTML, с которым вы обычно сталкиваетесь, однако сейчас мы рассмотрим наиболее обычный и полезный способ сделать это — связать CSS с заголовком вашего документа.

Создайте файл в той же папке, что и документ HTML, и сохраните его как styles.css

. Расширение .css показывает, что это файл CSS.

Чтобы связать styles.css с index.html, добавьте следующую строку где-то внутри<head> HTML документа:

<link rel="stylesheet" href="styles.css">

Элемент <link> сообщает браузеру, что у нас есть таблица стилей, используя атрибут rel, и местоположение этой таблицы стилей в качестве значения атрибута href. вы можете проверить, работает ли CSS, добавив правило в styles.css. Используя ваш редактор кода, добавьте следующее в ваш файл CSS:

Сохраните файлы HTML и CSS и перезагрузите страницу в веб-браузере. Заголовок первого уровня в верхней части документа теперь должен быть красным. Если это произойдёт, поздравляю — вы успешно применили CSS к документу HTML. Если этого не произойдёт, внимательно проверьте, правильно ли вы ввели всё.

Вы можете продолжить работу в styles.css локально, или вы можете использовать наш интерактивный редактор ниже, чтобы продолжить этот урок. Интерактивный редактор действует так, как если бы CSS на первой панели был связан с документом HTML, как это было в нашем документе выше.

Делая наш заголовок красным, мы уже продемонстрировали, что можем нацеливать и стилизовать элемент HTML. Мы делаем это путём нацеливания на элемент selector — это селектор, который напрямую соответствует имени элемента HTML. Чтобы нацелиться на все абзацы в документе, вы должны использовать селектор 

p. Чтобы сделать все абзацы зелёными, вы должны использовать:

Вы можете выбрать несколько селекторов одновременно, разделив их запятыми. Если я хочу, чтобы все параграфы и все элементы списка были зелёными, моё правило выглядит так:

Попробуйте это в интерактивном редакторе ниже (отредактируйте поля кода) или в своём локальном документе CSS.

 

Когда мы смотрим на хорошо размеченный HTML-документ, даже такой простой, как наш пример, мы можем увидеть, как браузер делает HTML читаемым, добавив некоторые стили по умолчанию. Заголовки большие и жирные, в нашем списке есть маркеры. Это происходит потому, что в браузерах есть внутренние таблицы стилей, содержащие стили по умолчанию, которые по умолчанию применяются ко всем страницам; без них весь текст работал бы вместе, и мы должны были бы стилизовать всё с нуля. Все современные браузеры по умолчанию отображают HTML-контент практически одинаково.

Однако вам часто захочется что-то другое, кроме выбора, сделанного браузером. Это можно сделать, просто выбрав элемент HTML, который вы хотите изменить, и используя правило CSS, чтобы изменить его внешний вид. Хорошим примером является наш <ul> — неупорядоченный список. Он добавляет маркеры, и если я решу, что я не хочу эти маркеры, я могу удалить их вот так:

li {
  list-style-type: none;
}

Попробуйте добавить это в свой CSS сейчас.

Свойство list-style-type — это хорошее свойство, информацию о котором можно найти на MDN, чтобы увидеть, какие значения поддерживаются. Взгляните на страницу для list-style-type и вы найдёте интерактивный пример в верхней части страницы, чтобы опробовать некоторые другие значения, затем все допустимые значения будут подробно описаны ниже.

Глядя на эту страницу, вы обнаружите, что помимо удаления маркеров списка вы можете изменить их — попробуйте изменить их на квадратные маркеры, используя значение square.

Пока у нас есть стилизованные элементы, основанные на их именах HTML-элементов. Это работает до тех пор, пока вы хотите, чтобы все элементы этого типа в вашем документе выглядели одинаково. В большинстве случаев это не так, и вам нужно будет найти способ выбрать подмножество элементов, не меняя остальные. Самый распространённый способ сделать это — добавить класс к вашему HTML-элементу и нацелиться на этот класс.

В своём HTML-документе добавьте Атрибут class ко второму пункту списка. Ваш список теперь будет выглядеть так:

<ul>
  <li>Элемент один</li>
  <li>Элемент два</li>
  <li>Элемент <em>три</em></li>
</ul>

В вашем CSS вы можете выбрать класс special

 к любому элементу на странице, чтобы он выглядел так же, как и этот элемент списка. Добавьте следующее в ваш файл CSS:

.special {
  color: orange;
  font-weight: bold;
}

Сохраните и обновите, чтобы увидеть результат.

Вы можете захотеть, чтобы <span> в абзаце также был оранжевым и жирным. Попробуйте добавить класс «special", затем перезагрузите страницу и посмотрите, что получится.

Иногда вы увидите правила с селектором, который перечисляет селектор HTML-элемента вместе с классом:

li.special {
  color: orange;
  font-weight: bold;
}

Этот синтаксис означает «предназначаться для любого элемента li, который имеет класс special». Если бы вы сделали это, вы бы больше не смогли применить класс к

<span> или другому элементу, просто добавив к нему класс; вы должны добавить этот элемент в список селекторов:

li.special,
span.special {
  color: orange;
  font-weight: bold;
}

Как вы можете себе представить, некоторые классы могут быть применены ко многим элементам, и вам не нужно постоянно редактировать свой CSS каждый раз, когда что-то новое должно принять этот стиль. Поэтому иногда лучше обойти элемент и просто обратиться к классу, если только вы не знаете, что хотите создать некоторые специальные правила для одного элемента и, возможно, хотите убедиться, что они не применяются к другим элементам.

Есть моменты, когда вы хотите, чтобы что-то выглядело иначе, в зависимости от того, где оно находится в документе. Здесь есть несколько селекторов, которые могут вам помочь, но сейчас мы рассмотрим только пару. В нашем документе два элемента <em> — один внутри абзаца, а другой внутри элемента списка. Чтобы выбрать только <em> который вложен в элемент <li>, я могу использовать селектор под названием descendant combinator (комбинатор-потомок), который просто принимает форму пробела между двумя другими селекторами.

Добавьте следующее правило в таблицу стилей.

li em {
  color: rebeccapurple;
}

Этот селектор выберет любой элемент <em>, который находится внутри (потомка) <li>. Итак, в вашем примере документа вы должны найти, что <em> в третьем элементе списка теперь фиолетовый, но тот, который находится внутри абзаца, не изменился.

Ещё можно попробовать стилизовать абзац, когда он идёт сразу после заголовка на том же уровне иерархии в HTML. Для этого поместите +  (соседний братский комбинатор) между селекторами.

Попробуйте также добавить это правило в таблицу стилей:

h2 + p {
  font-size: 200%;
}

Пример ниже включает в себя два правила выше. Попробуйте добавить правило, чтобы сделать элемент span красный, если он внутри абзаца. Вы узнаете, правильно ли вы это сделали, так как промежуток в первом абзаце будет красным, но цвет в первом элементе списка не изменит цвет.

Примечание: Как вы можете видеть, CSS даёт нам несколько способов нацеливания на элементы, и мы пока только слегка изучили его! Мы будем внимательно смотреть на все эти селекторы и многое другое в нашей статье Селекторы позже в нашем курсе.

Последний тип стилей, который мы рассмотрим в этом уроке, — это возможность стилизовать элементы в зависимости от их состояния. Прямым примером этого является стиль ссылок. Когда мы создаём ссылку, мы должны нацелить элемент

<a> (якорь). Он имеет различные состояния в зависимости от того, посещается ли он, посещается, находится над ним, фокусируется с помощью клавиатуры или в процессе нажатия (активации). Вы можете использовать CSS для нацеливания на эти разные состояния — CSS-код ниже отображает невидимые ссылки розового цвета и посещённые ссылки зелёного цвета.

a:link {
  color: pink;
}

a:visited {
  color: green;
}

Вы можете изменить внешний вид ссылки, когда пользователь наводит на неё курсор, например, удалив подчёркивание, что достигается с помощью следующего правила:

a:hover {
  text-decoration: none;
}

В приведённом ниже примере вы можете поиграть с разными значениями для разных состояний ссылки. Я добавил к нему правила, приведённые выше, и теперь понимаю, что розовый цвет довольно лёгкий и трудно читаемый — почему бы не изменить его на лучший цвет? Можете ли вы сделать ссылки жирным шрифтом?

 

Мы удалили подчёркивание на нашей ссылке при наведении курсора. Вы можете удалить подчёркивание из всех состояний ссылки. Однако стоит помнить, что на реальном сайте вы хотите, чтобы посетители знали, что ссылка является ссылкой. Оставив подчёркивание на месте, люди могут понять, что на какой-то текст внутри абзаца можно нажимать — к такому поведению они привыкли. Как и всё в CSS, существует возможность сделать документ менее доступным с вашими изменениями — мы постараемся выделить потенциальные подводные камни в соответствующих местах.

Примечание:  вы часто будете видеть упоминание о доступности в этих уроках и по всей MDN. Когда мы говорим о доступности, мы имеем в виду требование, чтобы наши веб-страницы были понятными и доступными для всех.

Ваш посетитель вполне может быть на компьютере с мышью или сенсорной панелью или на телефоне с сенсорным экраном. Либо они могут использовать программу чтения с экрана, которая считывает содержимое документа, либо им может потребоваться использовать текст значительно большего размера, либо перемещаться по сайту только с помощью клавиатуры.

Простой HTML-документ, как правило, доступен каждому — когда вы начинаете оформлять этот документ, важно, чтобы вы не сделали его менее доступным.

Стоит отметить, что вы можете комбинировать несколько селекторов и комбинаторов вместе. Вот пример:


article p span { ... }


h2 + ul + p { ... }

Вы также можете комбинировать несколько типов вместе. Попробуйте добавить следующее в ваш код:

body h2 + p .special {
  color: yellow;
  background-color: black;
  padding: 5px;
}

Это будет стиль любого элемента с классом special, который находится внутри <p>, который приходит сразу после <h2>, который находится внутри <body>. Уф!

В оригинальном HTML, который мы предоставили, единственный элемент в стиле <span>.

Не беспокойтесь, если это покажется сложным — вы скоро начнёте понимать это, когда будете писать больше на CSS.

В этом уроке мы рассмотрели несколько способов стилизации документа с использованием CSS. Мы будем развивать эти знания по мере прохождения остальных уроков. Однако вы уже знаете достаточно, чтобы стилизовать текст, применять CSS на основе различных способов нацеливания на элементы в документе и искать свойства и значения в документации MDN.

На следующем уроке мы рассмотрим структуру CSS.

Учебник CSS — Урок 1 — подключаем CSS-стили

Я не буду объяснять зачем нужен CSS. Если вы открыли этот учебник значит вы желаете его выучить. От себя лишь скажу, что возможности CSS очень широки и позволяют верстать макеты любой сложности. В свою очередь использование css означает, что вам придется отказаться от использования различных атрибутов тегов size, color, bgcolor, align и других, которые будут «мешать» CSS.

Существует по крайней мере три способа подключения CSS к вашему HTML файлу. Давайте рассмотрим самый простой, потом второй и правильный способ.

CSS внутри тега

CSS можно подключить c помощью атрибута style:

<div>
  Блок
</div>

Так мы задаем блок размером 200 на 100 пикселей. Давайте рассмотрим как пишется CSS. Сначала мы пишем атрибут. И потом уже в ковычках пишем css-стили.

style="параметр:значение;параметр:значение;параметр:значение"

Пишем стили мы так сначала идет параметр (widht, height и другие), потом идет двоеточие и значение параметра. Разделяем каждый параметр точкой с запятой.

Теперь ко второму способу написания CSS.

CSS в начале HTML-документа

Для этого мы используем тег <style></style> в котором мы пишем CSS-код.

<html>
 <head>
  <title>Учебник CSS</title>
  <style type="text/css">
  здесь мы будем писать css-код
  </style>
 </head>
 <body>
  <p>Учите CSS вместе с drupalbook.org</p>
 </body>
</html>

Тег style мы пишем в теге <head></head> после тега <title>. Давайте напишем какой-нибудь CSS-код:

<html>
 <head>
  <title>Учебник CSS</title>
  <style type="text/css">
   body{
     background: #eeeeee; /* фон страницы */     font-size: 14px;            /* размер шрифта */
   }
   p{
     color: #ff0000; /* цвет текста */
   }
  </style>
 </head>
 <body>
  <p>Учите CSS вместе с drupalbook.org</p>
  <p>2 строка учите CSS вместе с drupalbook.org</p>
 </body>
</html>

Давайте посмотрим как пишется css для тегов. Если мы пишем название тега в css, то для всех этих тегов будут применены параметры CSS. Так например если мы пишем p то значит для всех параграфов будет выбраны следующие параметры.

Когда мы пишем CSS-код, то сначала мы указываем тег для которого применяем css-стили, дальше мы в фигурных скобках пишем css-стили. CSS-стили пишутся также как и в атрибуте:

параметр:значение;параметр:значение;параметр:значение

Параметр, двоеточие, значение, точка с запятой и снова параметр, двоеточие, значение, точка с запятой и снова… После последнего стиля можно не ставить точку с запятой, но лучше всего поставить.

Мы вставили двумя способами css-стили, а теперь давайте используем третий способ, самый оптимальный.

CSS в отдельном файле

Это самый лучший способ, который позволяет отделить полностью CSS от HTML-кода. Конечно иногда хочется вставить CSS прямо в HTML-код, но надо бить себя по рукам в этом случае и выносить CSS в отдельный файл. Зачем?

Это основная идея CSS размежевать текст и оформление текста. HMTL нам нужен чтобы разметить текст, а вот CSS нужен для того чтобы этот текст гармонично выглядел. С помощью HTML выводиться только текст, а с помощью CSS размеры, цвета, формы, границы, отступы.

Это было во-первых, теперь во-вторых когда код HTML и CSS в одном файле, то это становится нечитабельно и грамоздко. А теперь в-третьих, css сохраняются в браузере, поэтому если вынести весь CSS отдельно, то страница будет загружаться быстрее, потому что загружать css нужно только один раз. Я думаю вам уже стало понятным к чему я клоню?

CSS нужно стараться выносить в отдельный файл! Вот к этому я и клоню. А теперь давайте создавать отдельный css файл. Для этого есть тег <link>:

 

<html>
 <head>
  <title>Учебник CSS</title>
  <link type="text/css" rel="stylesheet" media="all" href="styles.css" />
 </head>
 <body>
  <p>Учите CSS вместе с drupalbook.org</p>
  <p>2 строка учите CSS вместе с drupalbook.org</p>
 </body>
</html>

У тега <link> есть следующие атрибуты:

type=»text/css» — так мы указываем то что это css,

rel=»stylesheet» — это указывает на то что этот файл является css-файлом,

media=»all» — этот css файл будет отображаться для всех устройств, через которые просматривают сайт,

href=»styles.css» — путь к css файлу, в нашем случае путь относительный.

Кажется разобрались с тем как подключать css файл, теперь создавайте этот файл styles.css в той же папке где и html-файл.

Теперь открывайте файл styles.css и вставьте него css-стили:

body{
  background: #eeeeee; /* фон страницы */
  font-size: 14px;            /* размер шрифта */
}
p{
  color: #ff0000; /* цвет текста */
}

Сохраните этот файл и откройте через браузер ваш html-файл. Теперь css подключен к вашему файлу как полагается, через отдельный файл. В следующем уроке мы подробно начнем разбирать, как писать стили в отдельном файле.

Пишем CSS лучше и красивее. Не будем ходить вокруг да около, скажем… | by Nikita | WebbDEV

Не будем ходить вокруг да около, скажем прямо: процесс написания хорошего CSS-кода может быть очень и очень тяжёлым. Многие разработчики не хотят связываться со стилями. Они готовы заниматься всем, чем угодно, но только не CSS. От этого никуда не деться. В наши дни огромное внимание уделяется дизайну, и тому, что называют «UX», а без CSS тут никак не обойтись. Цель этого материала — помочь всем желающим улучшить свои навыки в разработке и применении стилей веб-страниц.

В самом начале нового проекта стили обычно выглядят просто и понятно. Скажем, имеется совсем мало CSS-селекторов, вроде .title, input, #app, работа с которыми никому не покажется трудной.

Но, по мере роста приложения, стили превращаются в кошмар. Разработчик начинает путаться в CSS-селекторах. Он обнаруживает, что пишет нечто вроде div#app .list li.item a. Однако работу останавливать нельзя, поэтому программист продолжает использовать подобные конструкции, CSS-код запихивают куда-нибудь в конец файла. И правда — кого интересуют стили? Да и сам по себе CSS — это такая ерунда… В результате получается 500 строк совершенно неподдерживаемого, ужасного CSS.

Мне хочется, чтобы дочитав эту статью, вы взглянули бы на свои предыдущие проекты и подумали: «Ну ничего ж себе, как же я мог такое написать?».

Возможно, вы думаете сейчас, что «писать CSS» — это значит пользоваться CSS-фреймворками. Ведь предназначены они именно для того, чтобы облегчить работу со стилями, и именно с их использованием пишут хороший CSS-код. Всё это так, но у CSS-фреймворков есть определённые недостатки:

  • Часто их использование ведёт к появлению скучного, однообразного, банального дизайна.
  • Стили фреймворков трудно настраивать, сложности может вызывать и необходимость сделать что-то такое, что выходит за рамки фреймворка.
  • Фреймворки, перед их использованием, необходимо изучать.

И, в конце концов, вы ведь читаете это не для того, чтобы ознакомиться с неким фреймворком? Поэтому займёмся CSS. Сразу хотелось бы отметить, что материал это не о том, как создавать красивые дизайны для приложений. Он — о том, как писать качественный CSS-код, который легко поддерживать, и о том, как правильно его организовывать.

В своих примерах я буду использовать SCSS. Это — CSS-препроцессор. Фактически, SCSS является надмножеством CSS. В нём имеются некоторые весьма интересные возможности, такие, как переменные, вложенные конструкции, импорт файлов, миксины. Обсудим возможности SCSS, которыми мы будем пользоваться.

Переменные

В SCSS можно пользоваться переменными. Основной плюс применения переменных — возможность их повторного использования. Представим, что у нас имеется набор цветов для приложения. Основной цвет — голубой. В результате этот цвет применяется буквально повсюду. Он используется в свойстве background-color кнопок, в свойстве color заголовка страницы, и во многих других местах.

И вот вы, вдруг, решаете поменять голубой на зелёный. Если выполнять такую замену без использования переменных — придётся отредактировать весь код, все строки, где используется старый цвет. Если же воспользоваться переменной, то поменять придётся лишь её значение. Вот как выглядит использование переменных:

Вложенные конструкции

SCSS поддерживает вложенные конструкции. Вот обычный CSS:

Его, благодаря поддержке вложенных конструкций, можно преобразовать так:

Такой вариант читать гораздо легче, правда? Кроме того, благодаря использованию вложенных конструкций, сокращается время создания сложных селекторов.

Фрагментирование и импорт

Когда заходит речь о поддержке стилей и их читабельности, становится понятно, что держать весь код в одном файле невозможно. Один файл стилей может использоваться в экспериментальных целях, или при разработке маленького приложения, но если выйти на профессиональный уровень… лучше даже не пытаться. К счастью для нас, в SCSS существуют механизмы, позволяющие удобно организовывать код стилей.

Файлы, содержащие фрагменты описаний стилей, можно создавать, добавляя в начале их имён знак подчёркивания: _animations.scss, _base.scss, _variables.scss, и так далее.

Для импорта этих файлов используется директива @import. Вот как пользоваться этим механизмом:

Возможно, вам покажется, что в этом коде имеется ошибка. Действительно, ведь файл, который мы хотим импортировать, называется _animations.scss, а мы, в файле header.scss, используем команду @import "animations". Однако ошибки здесь нет. SCSS — система достаточно интеллектуальная для того, чтобы понять, что в подобной ситуации разработчик имеет в виду соответствующий файл.

Это — всё, что нам надо знать о переменных, о вложенных конструкциях, о фрагментировании стилей, и об импорте. В SCSS есть и другие возможности, вроде миксинов, наследования, и других директив (среди них — @for, @if и ещё некоторые), но мы тут о них говорить не будем.

Если вы хотите познакомиться с SCSS поближе — взгляните на соответствующую документацию.

Я уже и не помню, сколько раз я использовал универсальные термины для именования CSS-классов. В результате у меня получались такие имена, думаю, знакомые всем: .button, .page-1, .page-2, .custom-input.

Часто мы попросту не знаем, как именовать некие сущности. Но это очень важно. Что если вы занимались разработкой приложения, а потом, по какой-то причине, отложили работу на несколько месяцев? Или, а это уже куда хуже, что, если кто-то другой взялся за этот проект? Если в CSS-коде используются неподходящие имена, его сложно будет понять без анализа других частей приложения.

Методология БЭМ (Блок, Элемент, Модификатор) — это компонентный подход к веб-разработке. В частности, речь идёт о соглашении по именованию сущностей. Эта методология позволяет структурировать код, способствует разбиению его на модули и помогает в его повторном использовании. Поговорим о блоках, элементах и модификаторах.

Блоки

Блоки можно рассматривать как компоненты. Наверняка, вы играли в детстве в Lego. Поэтому включим машину времени.

Как вы строили, скажем, обычный домик? Тут понадобится окно, крыша, дверь, стены, и, в общем-то, этого достаточно. Всё это — наши блоки. Они значимы сами по себе.

Именование: имя блока — .block

Примеры: .card, .form, .post, .user-navigation

Элементы

Как сделать из Lego окно? Вероятно, некоторые кубики выглядят как рамки, поэтому, если соединить четыре таких кубика, получится красивое окно. Это — элементы. Они являются частями блоков, они нам нужны для того, чтобы создавать блоки. Однако, элементы, вне блоков, бесполезны.

Именование: имя блока + __ + имя элемента.block__element

Примеры: .post__author, .post__date, .post__text

Модификаторы

После того, как у вас получилось окно, вам может захотеться его изменить. Например — покрасить в другой цвет. Такие вот изменения базовых блоков или элементов выполняются с помощью модификаторов. Это — флаги блоков или элементов, и они используются для изменения их поведения, внешнего вида, и так далее.

Именование: имя блока ИЛИ имя элемента + -- + имя модификатора.block__element--modifier, .block--modifier
Примеры: .post--important, .post__btn--disabled

Примечания

  • При использовании БЭМ имена дают исключительно классам. Никаких ID или тегов — только классы.
  • Блоки или элементы могут быть вложены в другие блоки или элементы, но они должны быть полностью независимыми. Это очень важно. Поэтому, например, не надо назначать кнопке поля из-за того, что вы хотите поместить её под заголовком, в противном случае кнопка окажется связанной с заголовком. Используйте вместо этого вспомогательные классы.
  • При применении методологии БЭМ HTML-файлы будут перегружены именами, но это — небольшая плата за те возможности, которые даёт нам БЭМ.

Упражнение

Вот вам упражнение. Посмотрите внимательно на сайты, которые вам нравятся, или на те, которыми вы чаще всего пользуетесь, и подумайте о том, что на них может быть блоком, что — элементом, а что — модификатором.

Например, вот что у меня получилось в результате анализа Google Store.

Анализ сайта

Теперь — ваша очередь. Посмотрите на сайт, подумайте о том, как его можно улучшить. Для того, чтобы развиться в какой-то области, человеку надо самостоятельно искать информацию, экспериментировать и создавать что-то новое.

Примеры

Вот пример, подготовленный средствами Codepen, демонстрирующий возможности БЭМ. Тут мы по-разному оформляем нечто вроде публикаций в некоем блоге. Вот HTML-код этого примера.

Вот SCSS-стили:

А вот то, что в итоге получилось.

Оформление «публикаций» с использованием БЭМ

Рассмотрим ещё один пример. Тут, пользуясь БЭМ, мы оформляем кнопки. Вот HTML-код этого примера.

Вот SCSS-стили.

А вот — результат.

Оформление кнопок с использованием методологии БЭМ

Давайте поговорим об организации CSS-файлов. То, что вы узнаете из этой части нашего разговора, позволит вам работать продуктивнее, и поможет, в соответствующих ситуациях, мгновенно находить CSS-код, который надо изменить. Для того чтобы всего этого добиться, нам понадобится изучить шаблон «7–1».

Возможно, сейчас вам покажется, что как-то уж слишком странно называется этот шаблон. Однако ничего странного тут нет, и пользоваться им очень просто. Для этого достаточно соблюсти два простых правила:

  1. Все файлы с SCSS-фрагментами надо разместить в 7 разных папках.
  2. Все эти файлы нужно импортировать в один файл, main.scss, расположенный в корневой директории, в которой лежат все эти папки.

Название шаблона, в результате, можно расшифровать, как «7 папок — 1 файл». Как видите, всё не так уж и сложно. Поговорим об этом шаблоне подробнее.

7 папок

Вот папки, о которых идёт речь:

  1. base: в этой папке надо разместить весь, так сказать, «шаблонный» код. Под «шаблонным» кодом здесь понимается весь тот CSS-код, который приходится писать при создании нового проекта. Например: типографские правила, анимации, утилиты (то есть — классы вроде margin-right-large, text-center), и так далее.
  2. components: название этой папки явно указывает на то, что в ней будет храниться. Речь идёт о стилях компонентов, используемых для сборки страниц. Это — кнопки, формы, всяческие слайдеры, всплывающие окна, и так далее.
  3. layout: эта папка применяется для хранения стилей элементов макетов страниц. Это — шапка и подвал страницы, навигационная область, различные разделы страницы, сетка, и так далее.
  4. pages: иногда в проекте нужны страницы, обладающие собственным специфическим стилем, который отличается от стиля остальных страниц. Описания стилей для таких вот особенных страниц и попадают в эту папку.
  5. themes: если веб-проект предусматривает использование различных тем оформления (скажем, нечто вроде «dark mode», или «admin»), стили для них надо положить сюда.
  6. abstracts: в эту папку попадают всяческие вспомогательные вещи — функции, переменные, миксины.
  7. vendors: редкий сайт обходится без внешних зависимостей. В этой папке хранятся стили, которые созданы не тем, кто разрабатывает конкретный сайт. Сюда, например, можно сохранить файлы проекта Font Awesome, стили Bootstrap и прочее подобное.

Файл main.scss

Именно в этот файл импортируются все те фрагменты стилей, которые разложены по вышеописанным семи папкам. Выглядеть некоторая часть этого файла может так:

Не могу не согласиться с тем, что выглядит вся эта конструкция из семи папок довольно масштабной. Однако тут надо отметить, что эта архитектура рассчитана на большие проекты. Для маленьких проектов можно использовать адаптированную версию шаблона «7–1». Особенности этой версии заключаются в том, что в ней можно обойтись без некоторых папок. Так, тут можно отказаться от папки vendors, поместив ссылки на внешние по отношению к проекту файлы стилей в тег link. Далее, можно обойтись без папки themes, так как, вероятно, в небольшом веб-приложении темы оформления использоваться не будут. И, наконец, можно избавиться от папки pages, так как в этом проекте, скорее всего, не будет страниц, стиль которых сильно отличается от общего стиля. В результате из семи папок остаётся всего четыре.

Далее, занимаясь маленьким проектом, можно пойти одним из двух путей:

  • Если вы предпочитаете воспользоваться тем, что осталось от шаблона «7–1», то у вас сохраняются папки abstracts, components, layout и base.
  • Если вы решаете обойтись одной большой папкой, то все файлы с фрагментами стилей, вместе с файлом main.scss, попадают в эту папку. Выглядеть это может примерно так:

Что именно выбрать — зависит от ваших предпочтений.

Тут, если вы прониклись идеей применения SCSS, у вас может возникнуть вопрос о том, как пользоваться такими стилями, так как браузеры их не поддерживают. На самом деле — это хороший вопрос, который ведёт нас к финальному этапу нашего разговора, к компиляции SCSS в CSS.

Для того чтобы преобразовать SCSS-код в CSS, вам понадобится платформа Node.js и менеджер пакетов NPM (или Yarn).

Мы будем использовать пакет node-sass, который позволяет компилировать .scss-файлы в .css-файлы. Это — инструмент командной строки, пользоваться им несложно. А именно вызов node-sassвыглядит так:

Здесь доступно множество опций. Мы остановимся на двух:

  • Опция -w позволяет организовать наблюдение за папкой или файлом. То есть, node-sass будет следить за изменениями в коде, и, когда они происходят, автоматически компилировать файлы в CSS. Эта возможность весьма полезна в процессе разработки.
  • Опция --output-style определяет стиль выходного CSS-файла. Тут доступно несколько вариантов: nested, expanded, compact, compressed. Эту опцию мы будем использовать для сборки готового CSS-файла.

Если вы — человек любопытный (надеюсь — так оно и есть, ведь разработчику любопытство только на пользу), то вам, скорее всего, интересно будет взглянуть на документацию к пакету node-sass.

Итак, с инструментами мы определились, теперь осталось самое простое. Для того чтобы преобразовать SCSS в CSS, надо выполнить следующие шаги:

Создайте папку проекта и перейдите в неё: mkdir my-app && cd my-app

Инициализируйте проект: npm init

Добавьте в проект пакет node-sass: npm install node-sass — save-dev

Создайте файл index.html, папки со стилями, файл main.scss:

Добавьте в файл package.json следующее:

Добавьте ссылку, ведущую к скомпилированному CSS-файлу, в тег head файла index.html:

Вот и всё. Теперь, когда вы занимаетесь работой над проектом, выполните команду npm run watch и откройте в браузере файл index.html. Для того, чтобы минифицировать CSS, выполните команду npm run build.

Интерактивная перезагрузка страницы

Возможно вам, для повышения производительности труда, захочется организовать интерактивную перезагрузку страницы. Это удобнее ручной перезагрузки index.html. Вот как это сделать:

Установите пакет live-server (обратите внимание на то, что его устанавливают глобально):

npm install -g live-server

Добавьте в зависимости проекта пакет npm-run-all, который позволит одновременно запускать несколько скриптов:

npm install npm-run-all — save-dev

Добавьте следующее в package.json:

Теперь, выполнив команду npm run start, вы, в процессе работы над проектом, мгновенно будете видеть изменения, вносимые в него, не перезагружая страницу вручную.

Пакет autoprefixer

На данном этапе у вас имеется настроенная среда разработки, что очень хорошо. Теперь поговорим об инструментах для сборки проекта, и, в частности, о пакете autoprefixer. Это — инструмент (речь идёт о postcss-плагине), который парсит CSS-код и добавляет префиксы производителей браузеров к CSS-правилам, используя данные с Can I Use.

В ходе создания сайта программист может использовать некие новые возможности, которые не поддерживаются полностью всеми браузерами. Префиксы браузеров направлены на решение целого ряда задач, среди которых — разработка кросс-браузерных веб-приложений.

Код с префиксами браузеров выглядит примерно так:

Несложно заметить, что писать такой код весьма утомительно. Для того чтобы облегчить задачу обеспечения совместимости нашего CSS-кода с различными браузерами, не переусложняя проект, мы и воспользуемся пакетом autoprefixer. Тут понадобится выполнить следующие действия:

  • Скомпилируем все SCSS-файлы в один основной CSS-файл.
  • Добавим в этот файл префиксы браузеров с помощью autoprefixer.
  • Сожмём этот CSS-файл.

Это, в общем-то, завершающий этап работы над проектом. Итак, вот что надо сделать для использования autoprefixer:

Добавьте в проект две зависимости — postcss-cli и autoprefixer:

npm install autoprefixer postcss-cli — save-dev

Добавьте в package.json следующий код и модифицируйте скрипт build:

Теперь осталось лишь выполнить команду npm run build, и вы получите сжатый CSS-файл, в который будут добавлены префиксы браузеров. Вот репозиторий, в котором вы найдёте шаблонный проект, построенный с использованием рассмотренных здесь технологий. А вот — ещё один репозиторий с моими учебными проектами, при разработке которых я пользовался описанными здесь приёмами, и страница с рабочими примерами.

Вполне возможно, что анализ этих материалов поможет вам лучше разобраться в том, о чём мы сегодня говорили.

Перевод статьи How to get better at writing CSS.

Подключение CSS Стилей — 3 Варианта

Существует 3 способа, как осуществить подключение CSS стилей для вашего сайта: вы можете использовать глобальные стили CSS, добавив CSS правила в контейнер <head> HTML документа, вы можете добавить ссылку на внешний .css файл, содержащий все необходимые правила или использовать внутренний CSS для применения правил к определенному элементу. В этом руководстве мы рассмотрим все три варианта подключения CSS, узнаем их достоинства и недостатки.

Нужен недорогой, но надёжный хостинг для вашего нового проекта? Обратите внимание, что в Hostinger действуют скидки на все тарифы хостинга. Воспользуйтесь предложением и разместите сайт до 90% дешевле!

К предложению

Вариант 1 — Глобальный CSS

Глобальный CSS помещается в контейнер <head> конкретной страницы. При таком варианте подключения классы и идентификаторы (ID) могут быть использованы для обращения к CSS коду, однако, они будут активны только на этой конкретной странице. CSS стили подключенные таким путем загружаются при каждой повторной загрузке страницы, поэтому они могут повлиять на скорость ее загрузки. Тем не менее, существует несколько ситуаций в которых использование глобальных CSS может быть полезно. К примеру, если вам необходимо отправить кому-нибудь шаблон страницы — вам гораздо проще будет предоставить предварительный результат, если все будет на одной странице. Глобальные CSS помещаются между тегами <style></style>. Вот пример глобальной таблицы стилей:

<head>
  <style type="text/css">
    p {color:white; font-size: 10px;}
    .center {display: block; margin: 0 auto;}
    #button-go, #button-back {border: solid 1px black;}
  </style>
</head>

Преимущества глобальных CSS:

  • Таблица стилей влияет только на одну страницу.
  • В глобальной CSS могут быть использованы классы и идентификаторы (ID).
  • Нет необходимости загружать несколько файлов. HTML и CSS могут быть в одном и том же файле.

Недостатки глобальных CSS:

  • Увеличенное время загрузки страницы.
  • Подключается только к одной странице — неэффективно, если вы хотите использовать одну и ту же CSS для нескольких страниц.

Как произвести подключение CSS к HTML странице
  1. Откройте вашу HTML страницу в любом текстовом редакторе. Если страница уже загружена на вашу учетную запись хостинга, вы можете использовать текстовый редактор предоставленный вашим хостингом. Если данный документ HTML находится на вашем компьютере, вы можете использовать любой текстовый редактор для его редактирования, и после этого повторно загрузить его на вашу учетную запись хостинга используя FTP-клиент.
  2. Найдите открывающий тег <head> и добавьте после него следующий код:
<style type="text/css">
  1. Далее перейдите к следующей строке и добавьте нужные CSS правила, к примеру:
body {
     background-color: blue;
 }
 h2 {
     color: red;
     padding: 60px;
 }
  1. Как только вы закончите добавление CSS правил, добавьте закрывающий тег:
</style>

После всех действий, документ HTML с глобальной CSS должен выглядеть примерно так:

<!DOCTYPE html>
<html>
<head>
<style>
body {
    background-color: blue;
}
h2 {
    color: red;
    padding: 60px;
} 
</style>
</head>
<body>

<h2>Руководство Hostinger</h2>
<p>Это наш текст.</p>

</body>
</html>

Вариант 2 — Внешний CSS

Возможно самый удобный вариант для подключения CSS к вашему сайту, это его привязка к внешнему .css файлу. В этом случае все изменения сделанные во внешнем CSS файле, будут в целом отражаться на вашем сайте. Ссылка на внешний CSS файл помещается в контейнер <head> страницы:

<head>
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>

Тогда как, сами таблицы стилей располагаются в файле style.css. К примеру:

.xleftcol {
   float: left;
   width: 33%;
   background:#809900;
}
.xmiddlecol {
   float: left;
   width: 34%;
   background:#eff2df;
}

Преимущества внешних CSS:

  • Меньший размер страницы HTML и более чистая структура файла.
  • Быстрая скорость загрузки.
  • Для разных страниц может быть использован один и тот же .css файл.

Недостатки внешних CSS:

  • Страница может некорректно отображаться до полной загрузки внешнего CSS.

Вариант 3 — Внутренний CSS

Внутренний CSS используется для конкретного тега HTML. Атрибут <style> используется для настройки этого тега. Этот вариант подключения CSS не является рекомендованным, так как в этом случае необходимо настраивать каждый тег HTML по отдельности. К тому же управление вашим сайтом может стать довольно трудным, если вы будете использовать только внутренний CSS. Однако в некоторых случаях этот способ может быть весьма полезным. К примеру, в случае если у вас нет доступа к CSS файлам, или вам необходимо применить правила только для одного элемента. Пример HTML страницы с внутренним CSS должен выглядеть так:

<!DOCTYPE html>
<html>
<body style="background-color:black;">

<h2 style="color:white;padding:30px;">Руководство Hostinger</h2>
<p style="color:white;">Здесь что-нибудь полезное.</p>

</body>
</html>

Преимущества внутреннего CSS:

  • Полезен для проверки и предпросмотра изменений.
  • Полезен для быстрых исправлений.
  • Меньше HTTP запросов.

Недостатки внутреннего CSS:

  • Внутренние CSS должны быть применены для каждого элемента в отдельности.

Заключение

Теперь вы узнали, как произвести подключение CSS к вашему сайту тремя разными способами, и узнали их основные отличия.

сделай это красивым · HonKit

Наш блог всё ещё выглядит довольно скверно, не так ли? Пора сделать его красивым! Для этого будем использовать CSS.

Что такое CSS?

Каскадные таблицы стилей (англ. Cascading Style Sheets, или сокращённо CSS) — специальный язык, используемый для описания внешнего вида и форматирования сайта, написанного на языке разметки (как HTML). Воспринимай это как своего рода макияж для нашей веб-страницы 😉

Но мы же не хотим начинать всё с нуля, правда? Мы просто снова возьмём что-то, что уже было создано программистами и опубликовано в Интернете для свободного пользования. Ты же знаешь, заново изобретать велосипед совсем не весело.

Давай использовать Bootstrap!

Bootstrap — один из наиболее популярных HTML и CSS фреймворков для разработки красивых сайтов: https://getbootstrap.com/

Он был написан программистами, которые работали в Twitter, а сейчас совершенствуется волонтёрами со всего мира.

Установка Bootstrap

Для установки Bootstrap тебе нужно добавить следующие строки в <head> твоего .html файла (blog/templates/blog/post_list.html):

blog/templates/blog/post_list.html

<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">

Это не добавит ни одного файла к твоему проекту. Эти строки просто указывают на файлы, опубликованные в Интернете. Просто продолжай, открой свой веб-сайт и обнови страницу. Вот и результат!

Выглядит уже лучше!

Статические файлы в Django

Теперь мы ближе познакомимся с теми таинственными статическими файлами. Статическими файлами называются все файлы CSS и изображения, т.е. файлы, которые не изменяются динамически, их содержание не зависит от контекста запроса и будет одинаково для всех пользователей.

Куда поместить статические файлы в Django

Django уже знает, где искать статические файлы для встроенного приложения «admin». Теперь нам нужно добавить статические файлы для своего приложения blog.

Мы сделаем это, создав папку static внутри каталога с нашим приложением:

djangogirls
├── blog
│   ├── migrations
│   ├── static
│   └── templates
└── mysite

Django будет автоматически находить папки static внутри всех каталогов твоих приложений и сможет использовать их содержимое в качестве статических файлов.

Твой первый CSS файл!

Давай создадим CSS файл, чтобы добавить свой собственный стиль для твоей веб-страницы. Создай новую папку под названием css внутри твоей папки static. Затем создай новый файл под названием blog.css внутри папки css. Готово?

djangogirls
└─── blog
     └─── static
          └─── css
               └─── blog.css

Пришло время написать несколько строк CSS! Открой файл blog/static/css/blog.css в своем редакторе кода.

Мы не будем здесь погружаться слишком глубоко в процесс настройки и изучения CSS, поскольку это так просто, что ты сможешь изучить этот материал самостоятельно после этого руководства. В конце этой главы мы порекомендуем тебе бесплатный курс для дальнейшего изучения.

Но давай сделаем хотя бы немного. Возможно, мы могли бы изменить цвет заголовка? Чтобы понимать цвета, компьютеры используют специальные коды. Они начинаются с # и далее следуют 6 букв (A-F) и цифр (0-9). Ты можешь найти коды цветов, например, здесь: http://www.colorpicker.com/. Также можешь пользоваться предопределенными цветами, такими как red и green.

В файле blog/static/css/blog.css тебе нужно добавить следующий код:

blog/static/css/blog.css

h2 a {
    color: #FCA205;
}

h2 a — это CSS-селектор. Это означает, что мы применяем наши стили к каждому элементу a внутри элемента h2 (например, когда у нас в коде что-то вроде: <h2><a href="">link</a></h2>). В этом случае мы говорим о том, что нужно изменить цвет элемента на #FCA205, то есть на оранжевый. Конечно, ты можешь указать свой собственный цвет!

В CSS файле мы определяем стили для элементов файла HTML. Элементы идентифицируются именами (то есть a, h2, body), атрибутом class или атрибутом id. Class и id – это имена, которые ты сама присваиваешь элементам. Классы (сlass) определяют группы элементов, а идентификаторы (id) указывают на конкретные элементы. Например, следующий тег может быть идентифицирован CSS с использованием имени тега a, класса external_link или идентификатора link_to_wiki_page:

<a href="https://en.wikipedia.org/wiki/Django">

Почитай про CSS селекторы в CSS Selectors на w3schools.

Затем нам также нужно сообщить нашему HTML-шаблону о том, что мы добавили CSS. Открой файл blog/templates/blog/post_list.html и добавь эту строку в самое начало:

blog/templates/blog/post_list.html

{% load static %}

Мы просто загружаем здесь статические файлы 🙂 Далее между <head> и </head>, после ссылок на файлы Bootstrap CSS, добавь такую строку:

blog/templates/blog/post_list.html

<link rel="stylesheet" href="{% static 'css/blog.css' %}">

Браузер читает файлы в порядке их следования, поэтому нам необходимо удостовериться, что файл расположен в необходимом месте. Иначе код нашего файла может переопределить код в файлах Bootstrap. Мы только что сказали нашему шаблону, где находится наш CSS файл.

Твой файл должен теперь выглядеть следующим образом:

blog/templates/blog/post_list.html

{% load static %}
<html>
    <head>
        <title>Django Girls blog</title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <link rel="stylesheet" href="{% static 'css/blog.css' %}">
    </head>
    <body>
        <div>
            <h2><a href="/">Django Girls Blog</a></h2>
        </div>

        {% for post in posts %}
            <div>
                <p>published: {{ post.published_date }}</p>
                <h2><a href="">{{ post.title }}</a></h2>
                <p>{{ post.text|linebreaksbr }}</p>
            </div>
        {% endfor %}
    </body>
</html>

Ок, сохрани файл и обнови страницу!

Отличная работа! Может быть, мы также хотели бы добавить нашему веб-сайту немного пространства и увеличить отступ слева? Давай попробуем!

blog/static/css/blog.css

body {
    padding-left: 15px;
}

Добавь это к твоему CSS, сохрани файл и посмотри, как это работает!

Возможно, мы можем настроить шрифт нашего заголовка? Вставь это внутрь тега <head> в файле blog/templates/blog/post_list.html:

blog/templates/blog/post_list.html

<link href="https://fonts.googleapis.com/css?family=Lobster&subset=latin,cyrillic" rel="stylesheet" type="text/css">

Как и ранее, проверь порядок и вставь эту строку перед ссылкой на blog/static/css/blog.css. Эта строка импортирует шрифт под названием Lobster из шрифтов Google (https://www.google.com/fonts).

Теперь добавь строку font-family: 'Lobster'; в CSS файле blog/static/css/blog.css внутри блока определения стиля h2 a (код помещается между скобками { и }) и обнови страницу:

blog/static/css/blog.css

h2 a {
    color: #FCA205;
    font-family: 'Lobster';
}

Отлично!

Как было указано выше, в CSS используется концепция классов, которая позволяет назвать часть HTML кода и применять стили только для этой части без всякого эффекта для других. Это очень полезно, если у тебя есть, скажем, два блока div, но они выполняют совершенно разные функции (как ваш заголовок и пост), следовательно, ты не хочешь, чтобы они выглядели одинаково.

Дадим имена определённым частям HTML кода. Добавь класс под названием page-header в блок div, содержащий наш заголовок, как это сделано здесь:

blog/templates/blog/post_list.html

<div>
    <h2><a href="/">Django Girls Blog</a></h2>
</div>

А теперь добавь класс post в твой div, содержащий сообщение в блоге:

blog/templates/blog/post_list.html

<div>
    <p>published: {{ post.published_date }}</p>
    <h2><a href="">{{ post.title }}</a></h2>
    <p>{{ post.text|linebreaksbr }}</p>
</div>

Теперь добавим определения блоков для различных селекторов. Селекторы, которые начинают с символа ., относятся к классам. В Интернете много хороших справочников по CSS, которые могут помочь тебе понять следующий код. А сейчас просто скопируй и вставь код в файл djangogirls/static/css/blog.css:

blog/static/css/blog.css

.page-header {
    background-color: #ff9400;
    margin-top: 0;
    padding: 20px 20px 20px 40px;
}

.page-header h2, .page-header h2 a, .page-header h2 a:visited, .page-header h2 a:active {
    color: #ffffff;
    font-size: 36pt;
    text-decoration: none;
}

.content {
    margin-left: 40px;
}

h2, h3, h4, h5 {
    font-family: 'Lobster', cursive;
}

.date {
    color: #828282;
}

.save {
    float: right;
}

.post-form textarea, .post-form input {
    width: 100%;
}

.top-menu, .top-menu:hover, .top-menu:visited {
    color: #ffffff;
    float: right;
    font-size: 26pt;
    margin-right: 20px;
}

.post {
    margin-bottom: 70px;
}

.post h2 a, .post h2 a:visited {
    color: #000000;
}

Далее переделаем код HTML, отображающий посты, используя классы. Замени:

blog/templates/blog/post_list.html

{% for post in posts %}
    <div>
        <p>published: {{ post.published_date }}</p>
        <h2><a href="">{{ post.title }}</a></h2>
        <p>{{ post.text|linebreaksbr }}</p>
    </div>
{% endfor %}

в blog/templates/blog/post_list.html этим кодом:

blog/templates/blog/post_list.html

<div>
    <div>
        <div>
            {% for post in posts %}
                <div>
                    <div>
                        <p>Опубликовано: {{ post.published_date }}</p>
                    </div>
                    <h2><a href="">{{ post.title }}</a></h2>
                    <p>{{ post.text|linebreaksbr }}</p>
                </div>
            {% endfor %}
        </div>
    </div>
</div>

Сохрани эти файлы и обнови свой веб-сайт.

Юхууу! Выглядит прекрасно, не так ли? Код, который мы только что вставили, на самом деле не сложный для понимания, и ты, просто прочитав его, сможешь понять большую часть.

Не бойся немного повозиться с этим CSS-файлом и попробуй поменять некоторые вещи. Если что-то сломается, не волнуйся, ты всегда можешь отменить предыдущее действие!

В любом случае, мы настоятельно рекомендуем пройти бесплатный онлайн курс Codeacademy HTML & CSS course в виде домашней работы после воркшопа, чтобы изучить всё, что нужно знать об оформлении веб-сайтов с помощью CSS.

Готова к следующей главе?! 🙂

Основы CSS | Основы современной вёрстки

В прошлых уроках мы познакомились с разметкой элементов с помощью HTML. Многие из этих элементов уже имеют какое-то своё визуальное оформление: параграфы имеют отступы, ссылки выделяются подчёркиванием и цветом, заголовкам устанавливаются другие значения размера шрифта. Обычно этого недостаточно для создания полноценных современных сайтов. Какие-то стили нам просто не подходят, а какие-то элементы мы хотим стилизовать отдельно.

Для визуального оформления WEB-страницы создан язык CSS. CSS переводится как каскадные таблицы стилей (Cascading Style Sheets). Именно этот язык отвечает за то, как наши HTML-элементы будут выведены пользователю в браузере.

В этом уроке мы разберём ту часть аббревиатуры, которая относится к таблицам стилей. Что такое каскадность и как это работает вы сможете прочитать в следующем уроке.

Стили CSS

Любые стили CSS, будь то цвет текста или целая анимация, записываются по одной и той же формуле: название стиля: значение;.

Чтобы добавить стиль к элементу, необходимо использовать селектор. Он указывает, к какому именно элементу или элементам нужно добавить наши стили. Для примера возьмём следующую HTML-разметку:

<p>Хекслет — практические курсы по программированию. Мы помогаем новичкам стать профессиональными программистами, а опытным разработчикам получать новые знания и расти профессионально.</p>

Изменим размер и цвет шрифта в этом предложении. Это можно сделать следующей CSS-записью:

p {
  color: red;
  font-size: 20px;
}

Что означает эта таинственная запись выше? Её можно условно разбить на три основные составляющие:

  1. p — это селектор. Здесь мы говорим, чтобы браузер выбрал все параграфы на странице. О том, какие бывают селекторы, мы поговорим чуть позже.
  2. Фигурные скобки { }. Они отделяют селектор от правил. Все правила записываются уже внутри этих фигурных скобок.
  3. Свойства. Они записываются по схеме, которая представлена ниже. Чем больше у вас будет практики, тем больше различных свойств и их значений вы будете знать. Не пытайтесь выучить их все сразу. Всегда используйте документацию. Даже опытные разработчики прибегают к ней, чтобы вспомнить правильные значения того или иного свойства.

Разберём некоторые свойства, которые помогут вам оформлять текст:

  • font-size. Это свойство позволяет задать размер шрифта. Со временем вы узнаете множество различных единиц, в которых можно записать значение. На начальном этапе используйте значения в пикселях. Это достаточно простая и понятная единица измерения, которая не зависит от того, какие ещё стили указаны у текста.
  • color. Это свойство поможет вам установить новое значение цвета для выбранного текста. Цвет может записываться разными способами. Помимо этого есть большой набор цветов, которые можно записать словами. Это отличный способ познакомиться со свойством color. Посмотреть на все такие записи можно здесь.
  • text-align. Свойство, устанавливающее положение текста. Может принимать одно из следующих значений: left, right, center, justify.

Подключение CSS

Использовать CSS на странице можно с помощью нескольких способов:

  • использование специального файла;
  • использование тега <style> внутри HTML-разметки;
  • записывая стили непосредственно у нужного тега. Этот способ называется инлайн (inline) записью.

Разберёмся с каждым способом отдельно.

Использование отдельного CSS-файла.

Данный способ один из самых удобных в реальной разработке. Так как стилей в проекте обычно много, то держать их в HTML-файле не очень удобно. Связано это с тем, что HTML-файл становится очень большим и ориентироваться в нём становится невозможно. Чтобы этого избежать, можно создать отдельный CSS-файл. Этот файл будет иметь расширение .css, имя же может быть произвольным.

Представим, что на компьютере создана отдельная директория с проектом. Она может выглядеть следующим образом:

site/
├── css/
│   ├── main.css
├── html/
│   ├── index.html

Добавим основную информацию в файл index.html:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Основной файл index.html</title>
</head>
<body>

</body>
</html>

Теперь необходимо подключить файл main.css в наш файл index.html. Для этого используется специальный тег link. У данного тега необходимо указать атрибут href, значением которого будет путь до файла main.css. Тег link указывается в секции head.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Основной файл index.html</title>
    <link rel="stylesheet" href="../css/main.css">
</head>
<body>

</body>
</html>

Дополнительно разберём эту запись: ../css/main.css. Её можно условно разбить на три составляющие:

  1. ../ — переход в директорию выше. Изначально файл index.html находится в директории html, поэтому мы «выходим» из неё в директорию site.
  2. css/ — переход в директорию css.
  3. main.css — указание имени и расширения файла, который мы хотим подключить.

Если бы наши файлы index.html и main.css находились в одной директории, то подключение выглядело бы следующим образом: href="main.css".

После подключения файла мы можем записывать все нужные стили именно в файле main.css. Они автоматически подключатся на наш сайт.

Использование тега style

Вторым способом использования CSS является использование стилей в специальном теге style. Для этого нет необходимости создавать отдельный файл и подключать его к HTML. В этом случае тег style обычно указывается внутри секции head. Хоть это и не обязательное правило, но желательно придерживаться именно такой структуры.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Основной файл index.html</title>

    <style>
        p {
          color: red;
          font-size: 20px;
        }
    </style>
</head>
<body>
    <p>Параграф с размером шрифта 20 пикселей. Текст написан красным цветом.</p>
</body>
</html>

Данный способ не является основным, хотя и рекомендуется для некоторых стилей. Это позволит отобразить некоторые стили ещё до того, как загрузится CSS-файл. Какие стили рекомендовано так выносить, вы сможете узнать в процессе становления вас как профессионала.

Inline-стили

Последним вариантом использования CSS являются инлайн-стили. Они подключаются с помощью атрибута style у любого тега в разметке. Это наименее предпочтительный способ. Его тяжело читать, особенно если у тега десяток стилей. К тому же вы не сможете записать стили для всех одинаковых тегов. Придётся для каждого указывать отдельно. Это приведёт к постоянному копированию стилей.

Возьмём прошлый пример и добавим inline стили:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Основной файл index.html</title>
</head>
<body>
    <p>Параграф с размером шрифта 20 пикселей. Текст написан красным цветом.</p>
</body>
</html>

Селекторы

Селекторы — краеугольный камень всего CSS.

«Не так важны стили, как то, к чему они применяются» © Народная мудрость

Селекторы позволяют выбирать элементы, к которым будут применяться стили. Это очень мощный и многогранный инструмент, который позволяет выбирать не только по тегу, но и по классу, идентификатору, наведению мыши, разным атрибутам, выбирать только чётные или нечётные элементы и так далее.

Разбор каждого селектора — это тема для целого курса. Сейчас нас интересуют три основных селектора, которые можно назвать базовыми:

  1. Селектор по тегу. Такой селектор мы применяли на протяжении всего урока. Цель простая — просто указать тег, для которого будут применяться стили.
  2. Селектор по классу. Если нужно выбрать только конкретные элементы в HTML, то можно дать тегу произвольный класс и, используя конструкцию .название-класса, добавить стили.
  3. Селектор по идентификатору. Ещё один случай выборки по дополнительному атрибуту тега. Главная разница заключается в самом HTML — идентификатор не может повторяться в рамках одной страницы. Одно имя может использоваться только один раз. В связи с этим нет возможности задать стили для идентификатора и использовать его на других элементах. Для выбора идентификатора используется конструкция #имя-идентификатора.

Рассмотрим все три селектора на реальном примере:

Файл index.html

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Основной файл index.html</title>
    <link rel="stylesheet" href="../css/main.css">
</head>
<body>
    <main>
        <h2>Заголовок с идентификатором</h2>
        <p>Просто параграф без класса или идентификатора</p>
    </main>
</body>
</html>

Файл main.css

#main-title {
  color: white;
  font-size: 20px;
  text-align: center;
}

.content {
  background-color: black;
}

p {
  color: white;
}

После применения этих стилей получится следующая картина:

  • Чёрный фон секции main. Для этого использовали класс content и селектор .content;
  • Заголовок первого уровня имеет белый цвет, размер шрифта 20 пикселей и расположение по центру. У заголовка есть идентификатор main-title, поэтому для добавления стилей мы смогли использовать селектор по идентификатору #main-title;
  • Все параграфы будут иметь белый цвет текста. Для этого использовался селектор по тегу.

Вложенность селекторов

В реальной разработке не всегда удаётся пользоваться только этими тремя видами селекторов в том виде, в которых вы их только что изучили. Зачастую нам необходимо ограничить область, для которой будут применяться стили. Разберём на примере.

<section>
    <h3>Новости</h3>

    <article>
        <h3>Новость 1</h3>
        <p>Текст новости</p>
    </article>

    <article>
        <h3>Новость 2</h3>
        <p>Текст новости</p>
    </article>
</section>

<section>
    <h3>Интересные истории</h3>

    <article>
        <h3>История 1</h3>
        <p>Текст истории</p>
    </article>

    <article>
        <h3>История 2</h3>
        <p>Текст истории</p>
    </article>
</section>

Как добиться того, чтобы заголовки новостей были больше? Можно для каждого заголовка в новости добавить свой класс. Это хорошее решение, если новостей немного или нет необходимости для каждой такой секции вводить новые стили для заголовков.

Более простым решением станет использование вложенности селекторов. Вначале посмотрим, как решить нашу задачу:

.news article h3 {
  font-size: 32px;
}

Разберём, что за селектор был указан. Здесь мы указали комбинацию трёх селекторов: .news, article и h3. Каждый из них по отдельности вы уже знаете. Разделив их пробелом мы сказали браузеру: «Возьми все заголовки h3 из article, который лежит внутри элемента с классом news и примени к нему стили». Читать селекторы стоит именно таким образом — справа налево. Такой подход называется вложенностью селекторов. Можно комбинировать что угодно и с какой угодно глубиной.

Важно: для удобной работы не стоит использовать очень большую вложенность. Старайтесь использовать комбинацию не более 2 или 3 селекторов.

Важно понимать, что такая запись .news article h3 выберет все заголовки второго уровня во всех article, которые лежат внутри блока с классом .news. Давайте немного видоизменим вёрстку, чтобы это проверить.

<section>
    <h3>Новости</h3>

    <article>
        <h3>Новость 1</h3>
        <p>Текст новости</p>
    </article>

    <article>
        <h3>Новость 2</h3>
        <p>Текст новости</p>
        <section>
            <h3>Похожие новости</h3>

            <article>
                <h3>Похожая новость 1</h3>
                <p>Текст новости</p>
            </article>
        </section>
    </article>

</section>

Ко второй новости мы добавили блок «Похожие новости». Самое интересное, что наше правило font-size: 32px; применится и к заголовку «Похожие новости», и к заголовку «Похожая новость 1». Так как оба заголовка так или иначе лежат внутри article, которые находятся в блоке с классом .news.

Такой тип селекторов называется контекстным или селектор потомков. С его помощью мы выбираем всех потомков, которые встречаются внутри самого левого селектора.

Как же нам выбрать только те заголовки, которые относятся непосредственно к новостям, а не к похожим новостям или заголовкам других секций? Здесь нам на помощь придёт дочерний селектор. Его суть в выборе только тех элементов, которые непосредственно лежат внутри нужного нам блока. Без учёта всех остальных вложенностей. Чтобы указать такой селектор, используется символ >. Укажем, что нам нужны только те article, которые лежат внутри .news. И нам нужны заголовки, которые находятся внутри этих article. Это делается следующим образом:

.news > article > h3 {
  font-size: 24px;
}

Теперь размер шрифта для заголовков «Похожие новости» и «Похожая новость 1» не будет увеличен, так как мы указали более конкретный, или как его ещё называют, более специфичный селектор.


Самостоятельная работа
  • Создайте у себя на компьютере файлы index.html и style.css. Подключите файл стилей. Создайте разметку любого текста и используя свойства, которые мы изучили в этом уроке, оформите текст.
  • Попробуйте скопировать примеры из этого урока.

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

CSS: с чего начать? | AllForJoomla apps

Если вы хотите создавать дизайн для сайтов самостоятельно, не пользуясь шаблонами и услугами специалистов, вам стоит изучить CSS. На данный момент это один из самых лучших языков, позволяющих сверстать полноценный сайт

Если вы создали HTML-сайт и активно его развиваете, у вас, возможно, возникла одна проблема: проблема дизайна.

Создать новую страницу на HTML несложно: достаточно скопировать код и вставить на место старого новый текст. Совсем другое дело, если вы решите отредактировать весь сайт, к примеру, изменив цвет фона, расположение элементов или размер текста. В этом случае вам придется редактировать каждую страницу.

Естественно, чистый HTML-сайт крайне неудобный и громоздкий для веб-мастера. Но решение было найдено. Достаточно простое. Был разработан специальный язык, позволяющий придавать странице определенный вид без лишнего html-кода. Такой «код дизайна» можно было разместить в отдельном файле, на который будет ссылаться каждая страница сайта. Как итог, для изменения дизайна владельцу достаточно было отредактировать лишь один файл.

Таким языком стал CSS («каскадные таблицы стилей»).

Удивительно, но среди людей, знакомых с основами HTML, не найдется и 10% тех, кто знает, что такое CSS, и умеет им пользоваться.

С чего начать изучение CSS?

Для начала — самый простой самоучитель или сайт для новичков. Если вы нашли пошаговую инструкцию, это будет идеальным вариантом.

Для создания файла .css вам не потребуется ничего особенного. Достаточно хорошо знать HTML и иметь на компьютере Блокнот. Полученные файлы .txt достаточно будет просто переименовать.

CSS не отвечает за размещение блоков на странице. Созданный вами файл задает их свойства. В CSS нет тегов и атрибутов. «Таблица стилей» состоит из «правил», которые, в свою очередь, разделены на «селекторы» и «блоки объявления стилей».

Типичное «правило» выглядит так:

h2

{color:#232D38;

font-size:10px;}.

Как видите, «селектор» h2 похож на html-тег h2 (заголовок первого уровня). Это оправдано: «селекторами» являются теги, взятые без скобок. В нашем случае «блок объявления стилей» задает свойства тегам h2.

color и font-size, в свою очередь, являются «свойством», а то, что идет после двоеточия, «описанием свойства».

Таким образом, из нашего примера получаем, что каждый заголовок первого уровня должен иметь размер 10 пикселей и цвет #232D38.

В одном файле можно прописать бесчисленное количество «правил», в одном «правиле» — бесчисленное количество свойств.

После того, как файл готов, его нужно «прикрутить» к html-странице. Файл вставляется перед тегом /head следующим кодом: link rel=»stylesheet» type=»text/css» hrеf=»style.css».

Как видите, ничего сложного в языке CSS нет. Все те названия тегов и атрибутов, которые вы использовали в html, вы можете использовать и здесь. Главное — правильно скомпоновать селекторы, свойства и описания и разместить ссылку на файл на странице.

Как добавить CSS


Когда браузер читает таблицу стилей, он форматирует HTML-документ в соответствии с информация в таблице стилей.


Три способа вставки CSS

Есть три способа вставить таблицу стилей:

  • Внешний CSS
  • Внутренний CSS
  • Встроенный CSS

Внешний CSS

С внешняя таблица стилей, вы можете изменить внешний вид всего веб-сайта, изменив всего один файл!

Каждая HTML-страница должна содержать ссылку на файл внешней таблицы стилей внутри элемент внутри раздела заголовка.

Пример

Внешние стили определяются в элементе в разделе страницы HTML:





Это заголовок


Это абзац.


Попробуй сам »

Внешняя таблица стилей может быть написана в любом текстовом редакторе и должна быть сохранена с расширением .css.

Внешний файл .css не должен содержать никаких HTML-тегов.

Вот как выглядит файл mystyle.css:

«mystyle.css»

корпус {
фоновый цвет: светло-голубой;
}

h2 {
цвет: темно-синий;
поле слева: 20 пикселей;
}

Примечание. Не добавляйте пробел между значением свойства и единицей измерения (например, margin-left: 20 пикселей; ). Правильный способ: margin-left: 20px;



Внутренний CSS

Внутренняя таблица стилей может использоваться, если одна-единственная страница HTML имеет уникальный стиль.

Внутренний стиль определяется внутри элемента

Это заголовок


Это абзац.


Попробуй сам "

Встроенный CSS

Встроенный стиль может использоваться для применения уникального стиля для отдельного элемента.

Чтобы использовать встроенные стили, добавьте атрибут стиля к соответствующему элементу. В Атрибут style может содержать любое свойство CSS.

Пример

Встроенные стили определяются в атрибуте style соответствующего элемент:


Это это заголовок


Это абзац.


Попробуй сам "

Совет: Встроенный стиль теряет многие преимущества таблицы стилей (смешивая содержание с презентацией). Используйте этот метод умеренно.


Несколько таблиц стилей

Если некоторые свойства были определены для одного и того же селектора (элемента) в разных таблицах стилей, будет использоваться значение из последней прочитанной таблицы стилей.

Предположим, что внешняя таблица стилей имеет следующий стиль для элемента

:

h2 {
цвет: темно-синий;
}

Затем предположим, что внутренняя таблица стилей также имеет следующий стиль для элемента

:

h2 {
цвет: оранжевый;
}

Пример

Если внутренний стиль определен после ссылки на внешнюю таблицу стилей, элементы

будут «апельсин»:




Попробуй сам "

Пример

Однако, если внутренний стиль определен с до ссылки на внешнюю таблицу стилей, элементы

будут «флот»:




Попробуй сам "

Каскадный порядок

Какой стиль будет использоваться, если для элемента HTML указано более одного стиля?

Все стили на странице будут «каскадом» переходить в новый «виртуальный» стиль. лист по следующим правилам, где номер один имеет наивысший приоритет:

  1. Встроенный стиль (внутри элемента HTML)
  2. Внешние и внутренние таблицы стилей (в головной части)
  3. Браузер по умолчанию

Таким образом, встроенный стиль имеет наивысший приоритет и имеет приоритет над внешним и внутренние стили и настройки браузера по умолчанию.

Попробуйте сами »


Проверьте себя упражнениями!



CSS Введение


CSS - это язык, который мы используем для стилизации веб-страницы.


Что такое CSS?

  • CSS - это каскадные таблицы стилей
  • .
  • CSS описывает, как элементы HTML должны отображаться на экране, бумага или другие носители
  • CSS экономит много работы. Он может контролировать макет сразу несколько веб-страниц
  • Внешние таблицы стилей хранятся в файлах CSS

Демонстрация CSS - одна HTML-страница - несколько стилей!

Здесь мы покажем одну HTML-страницу с четырьмя разными таблицами стилей.Щелкните «Таблица стилей 1», «Таблица стилей 2», «Таблица стилей 3», «Таблица стилей 4». ссылки ниже, чтобы увидеть различные стили:



Зачем нужен CSS?

CSS используется для определения стилей для ваших веб-страниц, включая дизайн, макет и варианты отображения для разных устройств и размеров экрана.

Пример CSS

тело {
фон-цвет: голубой;
}

h2 {
цвет: белый;
выравнивание текста: по центру;
}

п. {
семейство шрифтов: вердана;
размер шрифта: 20 пикселей;
}

Попробуй сам "

CSS решил большую проблему

HTML НИКОГДА не предназначался для содержания тегов для форматирования веб-страницы!

HTML был создан для описания содержимого веб-страницы, например:

Это заголовок

Это абзац.

Когда в HTML 3.2 были добавлены такие теги, как и атрибуты цвета спецификации, это стало кошмаром для веб-разработчиков. Развитие больших веб-сайты, где шрифты и информация о цвете были добавлены к каждому страницы, стало долгим и дорогим процессом.

Чтобы решить эту проблему, Консорциум World Wide Web (W3C) создал CSS.

CSS удалил форматирование стиля с HTML-страницы!

Если вы не знаете, что такое HTML, мы предлагаем вам прочитать наше руководство по HTML.


CSS экономит много работы!

Определения стилей обычно сохраняются во внешних файлах .css.

С помощью внешнего файла таблицы стилей вы можете изменить внешний вид всего веб-сайта, изменив только один файл!



Как работает CSS - Изучите веб-разработку

Мы узнали основы CSS, для чего он нужен и как писать простые таблицы стилей. В этом уроке мы рассмотрим, как браузер использует CSS и HTML и превращает их в веб-страницу.

Когда браузер отображает документ, он должен объединить содержимое документа с информацией о его стиле. Он обрабатывает документ в несколько этапов, которые мы перечислили ниже. Имейте в виду, что это очень упрощенная версия того, что происходит, когда браузер загружает веб-страницу, и что разные браузеры будут обрабатывать этот процесс по-разному. Но примерно так и происходит.

  1. Браузер загружает HTML (например, получает его из сети).
  2. Преобразует HTML в DOM (объектная модель документа , ).Модель DOM представляет собой документ в памяти компьютера. Подробнее о модели DOM в следующем разделе.
  3. Затем браузер выбирает большинство ресурсов, на которые ссылается документ HTML, таких как встроенные изображения и видео ... и связанный CSS! JavaScript обрабатывается немного позже в этом процессе, и мы не будем говорить об этом здесь, чтобы упростить задачу.
  4. Браузер анализирует полученный CSS и сортирует различные правила по типам их селекторов в разные «корзины», например.грамм. элемент, класс, идентификатор и т. д. На основе найденных селекторов он определяет, какие правила следует применять к каким узлам DOM, и при необходимости прикрепляет к ним стиль (этот промежуточный шаг называется деревом визуализации).
  5. Дерево рендеринга размещается в той структуре, в которой оно должно появиться после применения к нему правил.
  6. Визуальное отображение страницы отображается на экране (этот этап называется рисованием).

Следующая диаграмма также предлагает простой вид процесса.

Модель DOM имеет древовидную структуру. Каждый элемент, атрибут и фрагмент текста на языке разметки становится узлом DOM в древовидной структуре. Узлы определяются их отношениями к другим узлам DOM. Некоторые элементы являются родителями дочерних узлов, а дочерние узлы имеют братьев и сестер.

Понимание DOM помогает вам разрабатывать, отлаживать и поддерживать ваш CSS, потому что DOM - это место, где встречаются ваш CSS и содержимое документа. Когда вы начнете работать с DevTools браузера, вы будете перемещаться по DOM, выбирая элементы, чтобы увидеть, какие правила применяются.

Вместо длинного скучного объяснения давайте рассмотрим пример, чтобы увидеть, как настоящий фрагмент HTML преобразуется в DOM.

Возьмите следующий HTML-код:

  

Воспользуемся: Каскадный Стиль Таблицы

В модели DOM узел, соответствующий нашему элементу

, является родительским. Его дочерние элементы - это текстовый узел и три узла, соответствующие нашим элементам .Узлы SPAN также являются родительскими, а их дочерними узлами являются текстовые узлы:

 P
├─ "Давайте использовать:"
├─ SPAN
| └─ «Каскадный»
├─ SPAN
| └─ «Стиль»
└─ SPAN
   └─ «Листы»
 

Вот как браузер интерпретирует предыдущий фрагмент HTML - он отображает указанное выше дерево DOM, а затем выводит его в браузере следующим образом:

Допустим, мы добавили в наш документ некоторый CSS, чтобы стилизовать его. Опять же, HTML выглядит следующим образом:

  

Воспользуемся: Каскадный Стиль Таблицы

Предположим, мы применили к нему следующий CSS:

  span {
  граница: сплошной черный 1px;
  цвет фона: салатовый;
}  

Браузер проанализирует HTML и создаст из него DOM, а затем проанализирует CSS.Поскольку единственное правило, доступное в CSS, имеет селектор span , браузер сможет очень быстро сортировать CSS! Он применит это правило к каждому из трех s, а затем нарисует окончательное визуальное представление на экране.

Обновленный вывод выглядит следующим образом:

В нашей статье «Отладка CSS» в следующем модуле мы будем использовать DevTools браузера для отладки проблем с CSS и узнаем больше о том, как браузер интерпретирует CSS.

В предыдущем уроке я упоминал, что не все браузеры реализуют новый CSS одновременно.Кроме того, многие люди не используют последнюю версию браузера. Учитывая, что CSS постоянно разрабатывается и, следовательно, опережает то, что браузеры могут распознать, вы можете задаться вопросом, что произойдет, если браузер обнаружит селектор CSS или объявление, которое он не распознает.

Ответ заключается в том, что он ничего не делает, а просто переходит к следующему биту CSS!

Если браузер анализирует ваши правила и обнаруживает свойство или значение, которое он не понимает, он игнорирует их и переходит к следующему объявлению.Он сделает это, если вы допустили ошибку и неправильно написали свойство или значение, или если свойство или значение слишком новое и браузер еще не поддерживает его.

Точно так же, если браузер встречает селектор, которого он не понимает, он просто проигнорирует все правило и перейдет к следующему.

В приведенном ниже примере я использовал написание цвета в британском английском, что делает это свойство недействительным, поскольку оно не распознается. Так что мой абзац не был окрашен в синий цвет.Однако все остальные CSS были применены; игнорируется только недопустимая строка.

  

Я хочу, чтобы этот текст был большим, жирным и синим.

  p {
  font-weight: жирный;
  цвет: синий;
  размер шрифта: 200%;
}  

Это очень полезное поведение. Это означает, что вы можете использовать новый CSS в качестве расширения, зная, что не произойдет никаких ошибок, если он не будет понят - браузер либо получит новую функцию, либо нет. Это позволяет использовать базовый резервный стиль.

Это особенно хорошо работает, когда вы хотите использовать новое значение, которое поддерживается не везде. Например, некоторые старые браузеры не поддерживают calc () в качестве значения. Я мог бы указать резервную ширину для поля в пикселях, а затем перейти к ширине со значением calc () , равным 100% - 50px . Старые браузеры будут использовать пиксельную версию, игнорируя строку о calc () , поскольку они ее не понимают. Новые браузеры интерпретируют строку с использованием пикселей, но затем заменяют ее строкой с помощью calc () , поскольку эта строка появляется позже в каскаде.

  .box {
  ширина: 500 пикселей;
  ширина: calc (100% - 50 пикселей);
}  

В последующих уроках мы рассмотрим еще много способов поддержки различных браузеров.

Вы почти закончили этот модуль; у нас есть только одно дело. В следующей статье вы будете использовать свои новые знания, чтобы изменить стиль примера, тестируя в процессе некоторый CSS.

CSS для начинающих: что такое CSS и как его использовать в веб-разработке? | Джем Эйги | Запуск

Существует много разных способов определения селектора CSS, ниже вы можете увидеть несколько примеров типов селектора:

  • Селектор класса: находит элементы HTML по их атрибуту класса
  • Селектор идентификаторов: находит элементы по их конкретному идентификатору
  • Element Selector: находит элементы по их имени тега

Вы можете проверить здесь для получения дополнительной информации о селекторах CSS.

Теперь вы узнали, зачем и как определять селектор и писать код CSS. Но этого мало. Нам также нужно добавить CSS внутри HTML, иначе он не распознает изменения.

Мы можем добавить CSS в файл HTML тремя разными способами:

1. Внешний файл CSS:

Лучше всего хранить код CSS в отдельном файле. В реальном мире программирования нам нужно хранить код HTML, CSS и JavaScript в отдельных файлах, а затем при необходимости импортировать их.

Мы можем создать отдельный файл CSS с расширением .css и включите его в HTML. Например, мы можем создать такой CSS-файл: index.css

Внутри index.css мы можем написать наш CSS-код:

  p  {
color: red;
}

Затем мы можем импортировать index.css в HTML с тегом , как показано ниже:

  

Я текст


Итак, теперь HTML-файл имеет код CSS, и изменения будут применены к элементам.

2. Внутренний CSS с тегом

Я текст

3. Встроенный стиль:

Третий способ - написать правила CSS непосредственно внутри элемента HTML, с атрибутом стиля .В этом методе мы определяем правила CSS непосредственно внутри тега, и нам не нужно создавать для него класс.

 

style = "color: blue; font-size: 22px;" > Я текст

Этот подход не является примером чистого кода, и его не рекомендуется использовать.

CSS - важная часть веб-разработки. В этой статье я попытался объяснить основы использования и синтаксиса CSS. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их ниже в разделе комментариев.

В мире CSS есть много других правил и функций, которые нужно изучить. Я расскажу о них в следующих статьях.

Если вы хотите узнать больше о веб-разработке, не стесняйтесь подписывайтесь на меня на Youtube !

Большое спасибо и до следующего раза!

Эта история опубликована в The Startup, крупнейшем предпринимательском издании Medium, за которым следят +446 678 человек.

Запугать CSS? Полное руководство, чтобы избавиться от страха »

Раскрытие: Ваша поддержка помогает поддерживать работу сайта! Мы зарабатываем реферальный сбор за некоторые услуги, которые мы рекомендуем на этой странице.Узнать больше

CSS - это язык, который определяет представление веб-страницы. Он используется для добавления цвета, фоновых изображений и текстур, а также для размещения элементов на странице. Однако CSS делает гораздо больше, чем просто рисует красивую картину. Он также используется для повышения удобства использования веб-сайта. На изображении ниже показана первая страница YouTube. Слева - обычная визуализация страницы, а справа вы можете увидеть, как она выглядит без CSS.

Изображение справа не только менее интересно, но и труднее использовать.

В этом кратком руководстве мы познакомим вас с CSS, продемонстрируем синтаксис CSS, объясним, как работает CSS, покажем вам, как добавить разметку CSS в документ HTML, и укажем вам на отличные ресурсы в Интернете, где вы можете узнать больше о CSS.

Что такое CSS?

CSS означает каскадные таблицы стилей, и это язык, используемый для стилизации визуального представления веб-страниц. CSS - это язык, который сообщает веб-браузерам, как отображать различные части веб-страницы.

Каждый элемент или элемент на веб-странице является частью документа, написанного на языке разметки.В большинстве случаев языком разметки является HTML, но существуют и другие языки, например XML. В этом руководстве мы будем использовать HTML для демонстрации CSS в действии, но имейте в виду, что те же принципы и методы применимы, если вы работаете с XML или другим языком разметки.

Чем CSS отличается от HTML?

Первое, что нужно понять, подходя к теме CSS, - это когда использовать язык стилей, такой как CSS, а когда использовать язык разметки, такой как HTML.

  • Все критическое содержимое веб-сайта должно быть добавлено на веб-сайт с использованием языка разметки, такого как HTML.
  • Представление содержимого веб-сайта должно определяться языком стилей, например CSS.

Сообщения блога, заголовки страниц, видео, аудио и изображения, которые не являются частью презентации веб-страницы, должны быть добавлены на веб-страницу с помощью HTML. Фоновые изображения и цвета, границы, размер шрифта, типографика и положение элементов на веб-странице должны определяться CSS.

Важно проводить это различие, потому что неспособность использовать правильный язык может затруднить внесение изменений на веб-сайт в будущем и создать проблемы с доступностью и удобством использования для посетителей веб-сайта, использующих только текстовый браузер или программу чтения с экрана.

Синтаксис CSS

Синтаксис CSS включает селекторы, свойства, значения, объявления, блоки объявлений, наборы правил, at-правила и операторы.

  • Селектор - это фрагмент кода, используемый для идентификации элемента или элементов веб-страницы, на которые должны воздействовать стили.
  • Свойство - это аспект элемента, на который необходимо повлиять. Например, наиболее часто используемые свойства CSS - это цвет, отступ, поля и фон.
  • Значение используется для определения свойства . Например, цвету свойства можно присвоить значение красного цвета следующим образом: color: red; .
  • Комбинация свойства и значения называется декларацией .
  • Во многих случаях несколько объявлений применяются к одному селектору . Блок объявлений - это термин, используемый для обозначения всех объявлений, применяемых к одному селектору .
  • Отдельный селектор и следующий за ним блок объявления в комбинации называются набором правил .
  • Ат-правила похожи на наборы правил , но начинаются со знака @ , а не с селектора . Наиболее распространенным at-правилом является правило @media , которое часто используется для создания блока правил CSS, которые применяются в зависимости от размера устройства, просматривающего веб-страницу.
  • Оба набора правил и at-rules являются операторами CSS .

Пример синтаксиса CSS

Давайте используем блок CSS, чтобы прояснить, что представляет собой каждый из этих элементов.

  h2 {
    красный цвет;
    размер шрифта: 3em;
    текст-оформление: подчеркивание;
    }
  

В этом примере h2 является селектором. За селектором следует блок объявлений, который включает три объявления. Каждое объявление отделяется от следующего точкой с запятой. Вкладки и разрывы строк не обязательны, но используются большинством разработчиков, чтобы сделать код CSS более понятным для человека.

Используя h2 в качестве селектора, мы говорим, что каждый заголовок уровня 1 на веб-странице должен следовать объявлениям, содержащимся в этом наборе правил.

Набор правил содержит три объявления:

  • цвет: красный;
  • размер шрифта: 3em;
  • оформление текста: подчеркивание;

цвет , font-size и text-decoration - все это свойства. Вы можете использовать буквально сотни свойств CSS, но обычно используются лишь несколько десятков.

Мы применили значения red , 3em и underline к используемым свойствам. Каждое свойство CSS определено для приема значений, отформатированных определенным образом.

Для свойства color мы можем использовать ключевое слово цвета или формулу цвета в формате Hex, RGB или HSL. В этом случае мы использовали ключевое слово цвета красный . В CSS3 доступно несколько десятков цветовых ключевых слов, но миллионы цветов доступны с другими цветовыми моделями.

Мы применили значение 3em к свойству font-size . Мы могли бы использовать широкий диапазон единиц размера, включая пиксели, проценты и т. Д.

Наконец, мы добавили значение underline к свойству text-decoration . Мы также могли бы использовать overline или line-through в качестве значений для text-decoration . Кроме того, CSS3 позволяет использовать стили линий: сплошные, двойные, пунктирные, пунктирные и волнистые - это хорошо было спецификацией цветов оформления текста.Мы могли бы применить все три значения сразу, используя такое объявление:

  text-decoration: blue double underline;
  

Это правило приведет к тому, что h2 в нашем первоначальном примере будет подчеркнуто двойной синей линией. Сам текст останется красным, как определено в нашем свойстве color .

Подготовка HTML-разметки для стилизации

CSS следует использовать для добавления содержимого на веб-страницу. Лучше всего с этой задачей справляются языки разметки, такие как HTML и XML.Вместо этого CSS используется для выбора элементов, которые уже существуют на веб-странице, и для определения того, как каждый элемент должен отображаться.

Чтобы упростить выбор элементов на веб-странице, к элементам на веб-странице следует добавлять идентификаторы. Эти идентификаторы, часто называемые крючками в контексте CSS, упрощают идентификацию элементов, на которые должны влиять правила CSS.

Классы и идентификаторы используются как перехватчики для стилей CSS. Хотя на способ рендеринга CSS не влияет использование классов и хуков, они дают разработчикам возможность точно определять элементы HTML, которые они хотят стилизовать.

Классы и идентификаторы не взаимозаменяемы. Важно знать, когда использовать каждый из них.

Когда использовать классы

Используйте классы, когда на одной веб-странице есть несколько элементов, которым необходимо стилизовать. Например, предположим, что вы хотите, чтобы ссылки в верхнем и нижнем колонтитулах имели единообразный стиль, но не так, как ссылки в теле страницы. Чтобы точно определить эти ссылки, вы можете добавить класс к каждой из этих ссылок или к контейнеру, содержащему ссылки.Затем вы можете указать стили, используя класс, и быть уверенным, что они будут применяться только к ссылкам с этим атрибутом класса.

Когда использовать идентификаторы

Используйте идентификаторы для элементов, которые появляются на веб-странице только один раз. Например, если вы используете неупорядоченный список HTML для навигации по сайту, вы можете использовать такой идентификатор, как nav , для создания уникальной ловушки для этого списка.

Вот пример кода HTML и CSS для простой панели навигации для базового сайта электронной коммерции.

  <стиль>
    #nav {
        фон: светло-серый;
        перелив: авто;
        }
    #nav li {
        плыть налево;
        отступ: 10 пикселей;
        }
    #nav li: hover {
        фон: серый;
        }



  

Этот код будет создавать горизонтальное меню навигации со светло-серым фоном, начиная с левой стороны страницы.Каждый элемент навигации будет иметь интервал 10 пикселей со всех сторон, а фон каждого элемента станет темнее, если вы позволите навести на него указатель мыши.

Этот код не повлияет на любые дополнительные списки на той же веб-странице.

# example-nav {
background: lightgray;
переполнение: авто;
}
# example-nav li {
float: left;
отступ: 10 пикселей;
}
# example-nav li: hover {
background: gray;
}

Когда не использовать хуки

Вам не нужно добавлять класс или идентификатор к элементу HTML, чтобы стилизовать его с помощью CSS.Если вы знаете, что хотите стилизовать каждый экземпляр определенного элемента на веб-странице, вы можете использовать сам тег элемента.

Например, вы хотите создать согласованные стили заголовков. Вместо добавления класса или идентификатора к каждому заголовку было бы намного проще просто стилизовать все элементы заголовка с помощью тега заголовка.

  <стиль>
    ul {
        тип-стиль-список: верхний римский;
        маржа слева: 50 пикселей;
        }
    п {
        цвет: темно-синий
        }


Здесь текст абзаца.Два коротких предложения.

  • Быстрый список
  • Всего два предмета.

Дополнительный текст абзаца здесь. На этот раз давайте перейдем к трем предложениям. Вот так.

Этот код будет выглядеть так.

.code_sample ul {
тип-стиль-список: верхний римский;
поле слева: 50 пикселей;
}
.code_sample p {
color: darkblue
}

Здесь текст абзаца. Два коротких предложения.

  • Быстрый список
  • Всего два элемента

Дополнительный текст абзаца здесь.На этот раз давайте перейдем к трем предложениям. Нравится.

  • Другой список
  • По-прежнему всего два элемента

В этом случае, хотя мы писали правила стиля для элементов ul и p только один раз каждый, несколько элементов были затронуты. Использование селекторов элементов - отличный способ создать привлекательный, читаемый и единообразный интерфейс веб-сайта, создав согласованный стиль заголовков, списков и текста абзацев на каждой странице веб-сайта.

Лучшие методы подготовки разметки для стилизации

Теперь, когда вы знаете, как классы, идентификаторы и теги элементов могут использоваться в качестве перехватчиков для наборов правил CSS, как лучше всего реализовать эти знания для написания разметки, упрощающей указание конкретных точек. элементы?

  • Обильно и последовательно применяйте классы.Используйте классы для элементов, которые должны быть выровнены в одном или другом направлении, а также для любых элементов, которые постоянно появляются на одной веб-странице.
  • Примените идентификаторы к элементам, которые появляются только один раз на веб-странице. Например, используйте идентификатор на div , который содержит контент вашей веб-страницы, на ul , который содержит меню навигации, и на div , который содержит заголовок вашей веб-страницы.

Способы связывания правил CSS с HTML-документом

Есть три способа добавления правил CSS на веб-страницу:

  • Встроенные стили
  • Внутренние таблицы стилей
  • Внешние таблицы стилей

В подавляющем большинстве случаев, следует использовать внешние таблицы стилей.Однако есть случаи, когда можно использовать встроенные стили или внутренние таблицы стилей.

Встроенные стили

Встроенные стили применяются к определенным элементам HTML. HTML-атрибут style используется для определения правил, которые применяются только к этому конкретному элементу. Вот синтаксис для написания встроенных стилей.

  

Пример заголовка

Этот код приведет к отображению только этого заголовка с красным подчеркнутым текстом и 10 пиксельными отступами со всех сторон.В очень редких случаях следует использовать встроенные стили. Практически во всех случаях их следует избегать, а стили добавлять в таблицу стилей.

Внутренние таблицы стилей

В предыдущих примерах в этом руководстве используются внутренние таблицы стилей. Внутренняя таблица стилей - это блок CSS, добавленный к элементу head HTML-документа. Элемент стиля используется между открывающим и закрывающим тегами head , а все объявления CSS добавляются между тегами стиля .

Мы можем дублировать встроенные стили из приведенного выше кода во внутренней таблице стилей, используя этот синтаксис.

  <заголовок>
    <стиль>
        h2 {
            красный цвет;
            отступ: 10 пикселей;
            текст-оформление: подчеркивание;
            }
    


     

Пример заголовка

Этот код даст те же результаты, что и встроенные стили. Однако преимущество использования внутренних таблиц стилей, а не встроенных стилей заключается в том, что стили будут затронуты всеми элементами h2 на странице.

Внешние таблицы стилей

Внешние таблицы стилей - это документы, не содержащие ничего, кроме операторов CSS. Правила, определенные в документе, связаны с одним или несколькими HTML-документами с помощью тега link в элементе head HTML-документа.

Чтобы использовать внешнюю таблицу стилей, сначала создайте документ CSS.

  / ******************************************** ***
Сохраните с именем, заканчивающимся на .css, например, styles.css.
************************************************ /
h2 {
    красный цвет;
    отступ: 10 пикселей;
    текст-оформление: подчеркивание;
    }
  

Теперь, когда у нас есть внешняя таблица стилей с некоторыми стилями, мы можем связать ее с HTML-документом, используя элемент link .

  <заголовок>



     

Пример заголовка

При загрузке этого HTML-документа тег link вызовет загрузку стилей в файле styles.css на веб-страницу. В результате все элементы заголовка уровня 1 будут отображаться с красным текстом, подчеркнутым и с отступом 10 пикселей, примененным к каждой стороне.

Когда использовать каждый метод

Практически во всех случаях внешние таблицы стилей являются правильным способом стилизации веб-страниц.Основное преимущество использования внешних таблиц стилей заключается в том, что их можно связать с любым количеством документов HTML. В результате можно использовать одну внешнюю таблицу стилей для определения представления всего веб-сайта.

Внутренние таблицы стилей можно использовать при разработке простого одностраничного веб-сайта. Если веб-сайт никогда не вырастет за пределы этой единственной начальной страницы, использование внутренней таблицы стилей допустимо.

Встроенные стили можно использовать в двух случаях:

  1. При написании правил CSS, которые будут применяться только к одному элементу на одной веб-странице.
  2. При применении редактором WYSIWYG, например редактором tinyMCE, интегрированным в систему управления контентом, такую ​​как WordPress.

Во всех остальных случаях следует избегать встроенных стилей в пользу внешних таблиц стилей.

Как работает CSS

При написании CSS часто записываются правила, которые конфликтуют друг с другом. Например, при стилизации заголовков все следующие правила могут применяться к элементу h2 .

  • Правило уровня элемента, обеспечивающее согласованный рендеринг h2 на всех страницах веб-сайта.
  • Правило уровня класса, определяющее рендеринг элементов h2 , находящихся в определенных местах, например заголовках сообщений в блогах.
  • Элемент уровня идентификатора, определяющий визуализацию элемента h2 , используемого только в одном месте на одной или нескольких веб-страницах - например, в названии веб-сайта.

Как разработчик может написать правила, достаточно общие, чтобы охватить все h2 , но достаточно конкретные, чтобы определять стили, которые должны появляться только в определенных экземплярах данного элемента?

Стили CSS подчиняются двум правилам, которые вам необходимо понять, чтобы написать эффективный CSS.Понимание этих правил поможет вам написать широкий CSS, когда он вам нужен, и в то же время очень конкретный, когда вам это нужно.

Два правила, которые определяют поведение CSS, - это наследование и специфичность.

Каскадное наследование

Почему стили CSS называются каскадными ? Когда написано несколько правил, которые противоречат друг другу, будет реализовано последнее написанное правило. Таким образом, стили переходят вниз, и применяется последнее написанное правило.

Давайте посмотрим на пример.Давайте напишем два правила CSS во внутренней таблице стилей, которые прямо противоречат друг другу.

  <заголовок>
    <стиль>
        p {цвет: красный;}
        p {цвет: синий;}
    


Какого цвета будет текст этого абзаца?

Браузер последовательно перебирает стили и применяет последний встреченный стиль, отменяя все предыдущие стили. В результате заголовок будет синим.

.code_sample_p {цвет: красный;}
.code_sample_p {color: blue;}

Какого цвета будет текст этого абзаца?

Тот же эффект каскадирования проявляется при использовании внешних таблиц стилей. Обычно используется несколько внешних таблиц стилей. Когда это происходит, таблицы стилей загружаются в том порядке, в котором они появляются в элементе head HTML-документа. В случае возникновения конфликтов между правилами таблиц стилей правила CSS, содержащиеся в каждой таблице стилей, имеют приоритет над правилами, содержащимися в ранее загруженных таблицах стилей.Возьмем, например, следующий код:

  



  

Правила в файле styles_2.css будут применяться, если есть конфликты между стилями, содержащимися в этих двух таблицах стилей.

Наследование стилей - еще один пример каскадного поведения стилей CSS.

Когда вы определяете стиль для родительского элемента, дочерние элементы получают тот же стиль.Например, если мы применим цветовой стиль к неупорядоченному списку, элементы дочернего списка будут отображать те же стили.

  <заголовок>
    <стиль>
        ul {цвет: красный;}
    


    
  • Пункт 1
  • Пункт 2

Вот как будет отображаться этот код.

.code-sample-ul {color: red;}

Не каждое свойство передается от родительского элемента к его дочерним элементам.Браузеры считают определенные свойства ненаследуемыми свойствами. Поля - это один из примеров свойства, которое не передается от родительского элемента дочернему элементу.

Специфичность

Второе правило, определяющее, какие правила применяются к каждому элементу HTML, - это правило специфичности.

Правила CSS с более конкретными селекторами будут отменять правила CSS с менее конкретными селекторами , независимо от того, что происходит первым. Как мы уже говорили, три наиболее распространенных селектора - это теги элементов, классы и идентификаторы.

  • Наименее конкретным типом селектора является селектор уровня элемента.
  • Когда класс используется в качестве селектора, он отменяет правила CSS, записанные с тегом элемента в качестве селектора.
  • Когда идентификатор используется в качестве селектора, он отменяет правила CSS, написанные с помощью селекторов элементов или классов.

Еще одним фактором, влияющим на специфику, является место, где написаны стили CSS. Стили, написанные встроенными с атрибутом style , имеют приоритет над стилями, записанными во внутренней или внешней таблице стилей.

Еще один способ повысить специфичность селектора - использовать ряд элементов, классов и идентификаторов для точного определения элемента, к которому вы хотите обратиться. Например, если вы хотите точно определить элементы неупорядоченного списка в списке с классом «example-list», содержащимся в div с идентификатором «example-div», вы можете использовать следующий селектор для создания селектора с высоким уровнем специфичности.

  div # example-div> ul.example-list> li {стили здесь}
  

Хотя это один из способов создания очень специфического селектора, рекомендуется ограничить использование такого рода селекторов, поскольку они действительно требуют больше времени для обработки, чем более простые селекторы.

Как только вы поймете, как работают наследование и специфичность, вы сможете определять элементы на веб-странице с высокой степенью точности.

Что умеет CSS?

Лучше спросить: «Что не умеет CSS?»

CSS можно использовать для превращения HTML-документа в профессиональный, безупречный дизайн. Вот несколько вещей, которые вы можете выполнить с помощью CSS:

  • Создайте гибкую сетку для разработки полностью адаптивных веб-сайтов, которые красиво отображаются на любом устройстве.
  • Стилизуйте все, от типографики до таблиц, форм и т. Д.
  • Расположите элементы на веб-странице относительно друг друга, используя такие свойства, как float , position , overflow , flex и box-sizing .
  • Добавить фоновые изображения к любому элементу.
  • Создавайте формы, взаимодействия и анимации.

Эти концепции и методы выходят за рамки данного вводного руководства, но следующие ресурсы помогут вам разобраться в этих более сложных темах.

Коробочная модель

Если вы планируете использовать CSS для создания макетов веб-страниц, одной из первых тем для освоения является блочная модель. Блочная модель - это способ визуализации и понимания того, как каждый элемент на веб-странице представляет собой комбинацию содержимого, отступов, границ и полей.

CSS Box Model от разработчиков Mozilla, CC-BY-SA 2.5.

Понимание того, как эти четыре части сочетаются друг с другом, является фундаментальной концепцией, которую необходимо освоить, прежде чем переходить к другим темам макета CSS.

Два замечательных места, где можно узнать о блочной модели:

Создание макетов

Существует ряд методов и стратегий, используемых для создания макетов с помощью CSS, и понимание блочной модели является необходимым условием для каждой стратегии.Освоив блочную модель, вы будете готовы научиться управлять полями с контентом на веб-странице.

Сеть разработчиков Mozilla предлагает хорошее введение в макеты CSS. Это краткое руководство охватывает основные концепции макетов CSS и быстро вводит такие свойства, как text-align , float и position .

На W3C доступно гораздо более подробное руководство по макетам CSS: Модель макета CSS. Этот документ является ресурсом для профессиональных разработчиков, поэтому, если вы новичок в CSS, не торопитесь, просматривая его.Это не быстрое чтение. Однако все, что вам нужно знать о создании макетов CSS, содержится в этом документе.

Макеты сетки были основной стратегией для разработки адаптивных макетов в течение нескольких лет. CSS-сетки создавались с нуля в течение многих лет, и на рынке существует множество различных веб-сайтов для создания сеток и фреймворков для разработки. Однако через несколько лет поддержка макетов сетки станет частью спецификации CSS3. Вы можете много узнать о сетках, прочитав эту тему на веб-сайте W3C.Чтобы получить более легкое и короткое представление о макетах сетки, прочтите эту статью от Mozilla.

Ожидается, что через несколько лет CSS3 Flexible Box или flexbox станет доминирующей моделью для разработки макетов веб-сайтов. Спецификация flexbox еще не полностью завершена и доработана, а поддержка flexbox не согласована между браузерами. Однако каждый начинающий разработчик CSS должен быть знаком с flexbox и быть готовым реализовать его в ближайшем будущем. Сеть разработчиков Mozilla - одно из лучших мест, где можно быстро освоить flexbox.

Веб-шрифты и типографика

Можно многое сделать, чтобы добавить индивидуальности и улучшить читаемость контента на веб-сайте. Узнайте больше о выборе шрифтов и типографики для Интернета в нашем руководстве по шрифтам и веб-типографике.

Создайте согласованный кроссбраузерный интерфейс

Каждый браузер интерпретирует спецификацию HTML по-своему. В результате, когда идентичный код отображается в двух разных браузерах, часто возникают незначительные различия в способе отображения кода.

Возьмем, к примеру, этот короткий фрагмент кода.

  

Заголовок 1

Короткий абзац текста. Всего четыре предложения. Большинство предложений довольно короткие. Особенно этот.

Заголовок 2

  • Краткий список.
  • Три пункта в этом списке
  • Мы сделаем это неупорядоченным списком.

Заголовок 3

Последний короткий абзац текста.Всего четыре предложения. Большинство предложений довольно короткие. Особенно этот.

Если мы отобразим этот код в двух разных браузерах, мы увидим тонкие различия. Вот как Mozilla Firebox и Microsoft Edge обрабатывают этот код.

Вы видите тонкие различия? Firefox, слева, добавляет немного больше поля вокруг каждого элемента заголовка. Кроме того, при рендеринге в Edge маркеры становятся немного меньше. Хотя эти различия не имеют значения, есть случаи, когда эти незначительные различия между браузерами могут создавать проблемы.

CSS можно использовать, чтобы сгладить эти проблемы кроссбраузерной совместимости. Один из популярных способов сделать это - реализовать шаблонный документ CSS под названием normalize.css . Этот свободно доступный файл CSS можно связать с любым документом HTML, чтобы минимизировать различия при кросс-браузерной визуализации.

Самый простой способ включить normalize.css в вашу проектную работу - это разместить ссылку на копию, размещенную в Google. Для этого просто поместите эту строку кода в элемент head HTML-документа.

  
  

Джон - писатель-фрилансер, любитель путешествий, муж и отец. Он пишет о веб-технологиях, таких как WordPress, HTML и CSS.

Что такое CSS и почему его следует использовать?

Даже если вы не программист, вы наверняка слышали об HTML. Это самый фундаментальный язык разметки, он существует с девяностых годов. Возможно, вы не так хорошо знакомы с CSS.Это не менее важный элемент программирования, и наряду с HTML и JavaScript CSS является одним из трех краеугольных камней технологий для Интернета. Но что такое CSS, как он работает и почему он так важен? Читайте и учитесь.


[cta vid = "0"]

Что такое CSS?

CSS означает каскадные таблицы стилей. Короче говоря, CSS - это язык дизайна, который делает веб-сайт более привлекательным, чем простой или скучный текст.В то время как HTML в значительной степени определяет текстовое содержимое, CSS определяет визуальную структуру, макет и эстетику. HTML - это язык разметки, а CSS - это язык таблиц стилей. Когда вы думаете о CSS, думайте о «внешнем виде».

Как CSS работает с HTML?

Если бы HTML был компонентом двигателя автомобиля, CSS был бы стилем кузова и окраской. Веб-сайт может работать без CSS, но это определенно некрасиво. CSS делает внешний вид веб-сайта сияющим и создает отличный пользовательский интерфейс.Без CSS веб-сайты были бы менее приятными для глаз и, вероятно, с ними было бы намного сложнее ориентироваться. Помимо макета и формата, CSS отвечает за цвет шрифта и многое другое.

Почему CSS так важен?

Чтобы проиллюстрировать важность CSS, вот пример страницы на сайте DevMountain с CSS и без него, тип визуального руководства по CSS, если хотите.

Вот раздел страницы DevMountain Courses с CSS:

А вот тот самый раздел без CSS:

Резкий контраст, правда? Вы заметите довольно много различий между ними, когда дело доходит до общей презентации.С помощью CSS вы видите изменение шрифта, размера шрифта и цвета шрифта. Вы также видите изменение формата кнопок и добавление синего фона позади них. Каждый из этих элементов возможен благодаря каскадным таблицам стилей. Что выглядит более привлекательно для пользователя? Довольно легко понять, почему CSS так важен.

Каковы преимущества CSS?

CSS дает ряд преимуществ, в том числе:

1) Более высокая скорость страницы

Чем больше кода, тем меньше скорость страницы.А CSS позволяет использовать меньше кода. CSS позволяет использовать одно правило CSS и применять его ко всем вхождениям определенного тега в документе HTML.

2) Лучшее взаимодействие с пользователем

CSS не только упрощает просмотр веб-страниц, но и обеспечивает удобное форматирование. Когда кнопки и текст расположены в логических местах и ​​хорошо организованы, пользовательский опыт улучшается.

3) Более быстрое время разработки

С помощью CSS вы можете применять определенные правила форматирования и стили к нескольким страницам с помощью одной строки кода.Одна каскадная таблица стилей может быть воспроизведена на нескольких страницах веб-сайта. Если, например, у вас есть страницы продуктов, которые должны иметь одинаковое форматирование, внешний вид и поведение, написания правил CSS для одной страницы будет достаточно для всех страниц одного и того же типа.

4) Простые изменения форматирования

Если вам нужно изменить формат определенного набора страниц, это легко сделать с помощью CSS. Нет необходимости исправлять каждую отдельную страницу. Просто отредактируйте соответствующую таблицу стилей CSS, и вы увидите изменения, примененные ко всем страницам, использующим эту таблицу стилей.

5) Совместимость между устройствами

Адаптивный веб-дизайн имеет значение. В наши дни веб-страницы должны быть полностью видимыми и удобными для навигации на всех устройствах. Будь то мобильный телефон или планшет, настольный компьютер или даже смарт-телевизор, CSS в сочетании с HTML делает возможным адаптивный дизайн.

Хотите изучить CSS?

Как видите, CSS критически важен, когда дело доходит до общего представления веб-страницы. И не только это, это значительно упрощает жизнь разработчикам, когда дело доходит до форматирования.Овладение CSS - важная часть того, чтобы стать ценным активом и хорошим программистом.

[cta vid = "0"]

HTML и CSS - W3C

HTML (гипертекст Язык разметки) и CSS (каскадные таблицы стилей) - это два основных технологий для построения сети страниц. HTML предоставляет структуру страницы, CSS - (визуальная и звуковая) макет, для разнообразие устройств. Наряду с графикой и скриптами, HTML и CSS являются основой для создания веб-страниц и Интернет Приложения.Узнайте больше ниже о:

Что такое HTML?

HTML - это язык для описания структуры сети страниц. HTML дает авторам возможность:

  • Публикуйте онлайн-документы с заголовками, текст, таблицы, списки, фотографии и т. д.
  • Получить онлайн-информацию через гипертекстовые ссылки, одним щелчком кнопка.
  • Дизайн бланков для проведения сделок с удаленными службами, для использования в поиск информации, изготовление бронирование, заказ продуктов и т. д.
  • Включите электронные таблицы, видеоклипы, аудиоклипы и другие приложения прямо в своих документах.

В HTML авторы описывают структуру страниц с использованием разметки . The элемента языковой метки части содержания, такие как «абзац», «Список», «таблица» и т. Д.

Что такое XHTML?

XHTML - это вариант HTML, в котором используется синтаксис XML, расширяемый язык разметки.XHTML имеет все одинаковые элементы (для абзацев, и т. д.) как вариант HTML, но синтаксис немного отличается. Поскольку XHTML - это XML-приложение, вы можете использовать другой XML инструменты с ним (такие как XSLT, язык для преобразования содержимого XML).

Что такое CSS?

CSS - это язык для описания представления Веб-страницы, включая цвета, макет и шрифты.Это позволяет адаптировать презентацию к различным типам устройств, таким как большие экраны, маленькие экраны или принтеры. CSS не зависит от HTML и может использоваться с любой разметкой на основе XML язык. Отделение HTML от CSS упрощает обслуживание сайтов, делиться таблицы стилей на всех страницах и адаптировать страницы в разные среды. Это упомянуто как разделение структуры (или: содержание) из презентации.

Что такое веб-шрифты?

WebFonts - это технология, которая позволяет людям использовать шрифты по запросу через Интернет, не требуя установки в операционной системе.W3C имеет опыт загрузки шрифтов через HTML, CSS2 и SVG. До недавнего времени загружаемые шрифты не были распространены в Интернете из-за отсутствия совместимый формат шрифта. Компания WebFonts планирует решить эту проблему путем создания поддерживаемого отраслью открытого формата шрифтов для Интернета (называемого «WOFF»).

Примеры

Следующий очень простой пример часть HTML-документа показывает, как для создания ссылки в абзаце.Когда отображается на экране (или в речи синтезатор), текст ссылки будет окончательным отчет"; когда кто-то активирует ссылку, браузер получит ресурс идентифицировано «Http://www.example.com/report»:

Для получения дополнительной информации см. окончательный отчет .

Атрибут class на начальный тег абзаца («

») может быть используется, среди прочего, для добавления стиля.Для например, выделить курсивом текст всех абзацы с классом moreinfo, один можно написать в CSS:

 p.moreinfo {font-style: italic} 

Поместив это правило в отдельный файл, стиль может быть общим для любого количества HTML-документы.

Дополнительная информация

Для получения дополнительной информации о HTML и CSS, см. руководства по HTML и CSS.

Для расширенных преобразований документов и макет за пределами CSS, см. XSLT & XSL-FO.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *