Цсс это: Что такое CSS и зачем нужен этот язык

Содержание

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

Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

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

В прошлых уроках мы познакомились с разметкой элементов с помощью 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>

Классы и идентификаторы

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

<h3>Как стать программистом</h3>
<!-- Тут много текста -->
<h3>Какими навыками обладает программист</h3>
<!-- Тут много текста -->

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

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

Различие класса и идентификатора в количестве использований:

  • class — значение атрибута может устанавливаться сколько угодно раз в рамках одной страницы
  • id — значение атрибута устанавливается у одного элемента на странице. Не может быть двух одинаковых идентификаторов на странице

Если значений у атрибута несколько, то они указываются через пробел, например:

<h3>Как стать программистом</h3>
<!-- Тут много текста -->
<h3>Какими навыками обладает программист</h3>
<!-- Тут много текста -->
<div>Второго элемента с идентификатором help быть не должно</div>
<div>Второго элемента с идентификатором another-help быть не должно</div>

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

Селекторы

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

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

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

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

  1. Селектор по тегу. Такой селектор мы применяли на протяжении всего урока. Цель простая — просто указать тег, для которого будут применяться стили.
  2. Селектор по классу. Если нужно выбрать только конкретные элементы в HTML, то можно дать тегу произвольный класс и, используя конструкцию .название-класса, добавить стили.
  3. Селектор по идентификатору. Еще один случай выборки по дополнительному атрибуту тега. Главная разница заключается в самом 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-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;
}

Этот селектор комбинирует два уже известных типа:

  1. Селектор по классу .news
  2. Селекторы по тегу article и h3

Разделив их пробелом, мы сказали браузеру: «Возьми все заголовки <h3> из <article>, который лежит внутри элемента с классом news. В примере это элемент <section>.

Читать селекторы стоит именно таким образом — справа налево. Такой подход называется вложенностью селекторов. Можно комбинировать что угодно и с какой угодно глубиной.


Важно: для удобной работы не стоит использовать очень большую вложенность. Старайтесь использовать комбинацию не более 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. Подключите файл стилей. Создайте разметку любого текста и используя свойства, которые мы изучили в этом уроке, оформите текст.
  • Попробуйте скопировать примеры из этого урока.

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

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

position | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
6.0+8.0+1.0+4.0+1.0+1.0+1.0+1.0+

Краткая информация

Значение по умолчаниюstatic
НаследуетсяНет
ПрименяетсяКо всем элементам
Ссылка на спецификациюhttp://www.w3.org/TR/CSS21/visuren. html#propdef-position

Версии CSS

CSS 1CSS 2CSS 2.1CSS 3

Описание

Устанавливает способ позиционирования элемента относительно окна браузера или других объектов на веб-странице.

Синтаксис

position: absolute | fixed | relative | static | inherit

Значения

absolute
Указывает, что элемент абсолютно позиционирован, при этом другие элементы отображаются на веб-странице словно абсолютно позиционированного элемента и нет. Положение элемента задается свойствами left, top, right и bottom, также на положение влияет значение свойства position родительского элемента. Так, если у родителя значение position установлено как static или родителя нет, то отсчет координат ведется от края окна браузера. Если у родителя значение position задано как fixed, relative или absolute, то отсчет координат ведется от края родительского элемента.
fixed
По своему действию это значение близко к absolute, но в отличие от него привязывается к указанной свойствами left, top, right и bottom точке на экране и не меняет своего положения при прокрутке веб-страницы. Браузер Firefox вообще не отображает полосы прокрутки, если положение элемента задано фиксированным, и оно не помещается целиком в окно браузера. В браузере Opera хотя и показываются полосы прокрутки, но они никак не влияют на позицию элемента.
relative
Положение элемента устанавливается относительно его исходного места. Добавление свойств left, top, right и bottom изменяет позицию элемента и сдвигает его в ту или иную сторону от первоначального расположения.
static
Элементы отображаются как обычно. Использование свойств left, top, right и bottom не приводит к каким-либо результатам.
inherit
Наследует значение родителя.

Пример

HTML5CSS2. 1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>position</title>
  <style>
   .layer1 {
    position: relative; /* Относительное позиционирование */
    background: #f0f0f0; /* Цвет фона */
    height: 200px; /* Высота блока */
   }
   .layer2 {
    position: absolute; /* Абсолютное позиционирование */
    bottom: 15px; /* Положение от нижнего края */
    right: 15px; /* Положение от правого края */
    line-height: 1px;
   }
  </style>
 </head>
 <body>
  <div>
   <div>
     <img src="images/girl.jpg" alt="Девочка" />
   </div>
  </div>
 </body>
</html>

Результат данного примера показан на рис. 1.

Рис. 1. Применение свойства position

Объектная модель

[window.]document.getElementById(«elementID»).style.position

Браузеры

Браузер Internet Explorer 6 значение fixed не поддерживает. Internet Explorer до версии 8. 0 не поддерживает значение inherit.

Позиционирование

CSS по теме

  • position

Статьи по теме

  • 4 метода создания колонок одинаковой высоты
  • Выравнивание слоя по центру
  • Две колонки, навигация справа
  • Обзор HasLayout
  • Подвал страницы
  • Позиционирование элементов
  • Понятие потока
  • Поток документа
  • Разрезание и склейка изображений
  • Резиновый дизайн. Двухколонный макет
  • Резиновый трёхколоночный макет
  • Фиксированный дизайн. Наложение слоев
  • Фиксированный дизайн. Позиционирование
  • Фиксированный дизайн. Размещение трех колонок
  • Фиксированный трёхколоночный макет
  • Шапка страницы

Рецепты CSS

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

Корпорация CSS | Мировые лидеры в области ИТ-услуг и решений технической поддержки

CSS Corp | Мировые лидеры в области ИТ-услуг и решений для технической поддержки

Решение критических задач предприятия

Организация интеллектуальных решений для достижения совершенства

#wearecsscorp

Здесь, чтобы вместе создавать яркие впечатления

Центр статистики

Мнения лидеров отрасли

NelsonHall CX Operations Transformation 2022 NEAT report

Исследовательский отчет NelsonHall с информацией о мировом рынке CX Operations Transformation и ключевых поставщиках услуг

Получить отчет

5 основных тенденций в CX и


контакт-центры

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

Подробнее

Тенденции в области управления корпоративными услугами на 2021 год и далее

Электронная книга, посвященная тенденциям в области корпоративных ИТ по результатам мероприятий CSS Corp.

Подробнее

Как CXaaS может обеспечить значимые результаты CX

Статья, посвященная CXaaS — следующему рубежу в развитии CX

Подробнее

HFS Top 10:


Digital Associate Services Последние новости и разработки в диалоге цифровых партнеров.

Подробнее

Платформы корпорации CSS

Флагманские платформы CSS Corp для взаимодействия с клиентами следующего поколения

Платформа трансформации CX для
B2B и B2C

Подробнее

Гармонизация, автоматизация, усиление и модернизация гибридных ИТ-операций

Подробнее

Актуальные

Отдел новостей | Награды | Признание аналитика

Истории трансформации

Работаем вместе, чтобы изменить ситуацию

Управление цифровыми операциями

  • Вторая по величине компания CPG в мире

Создание возможностей для получения дохода

  • 3-я по величине в мире компания по производству беспроводных домашних сетей

Чат-боты, возрождающие вспомогательные операции

  • Global Telecom и VoIP Major

Улучшение цифрового CX

  • 8-я по величине в мире компания по уходу за кожей и косметика

CSS Corp теперь называется Movate

Нажмите здесь, чтобы узнать больше

X

Отправить запрос

ОТПРАВИТЬ ЗАПРОС

CSS Corp Глобальное присутствие | ИТ-услуги и решения для технической поддержки

Мы готовы обсудить потребности вашего бизнеса

Свяжитесь с нами

 

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

ПО ВСЕМУ МИРУ

  • Северная Америка
  • Азиатско-Тихоокеанский регион
  • Центральная Америка
  • Южная Америка
  • Африка
  • Европа

Техас – штаб-квартира

Мовейт Инк.
Корпоративный адрес — 5600 Теннисон
Parkway Suite 255,
Плано TX — 75024