что это такое, основы языка разметки стилей и как верстать

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

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

Для чего нужен CSS

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

Первая часть текста набрана обычным шрифтом. А вот эта часть будет выделена жирным.

<!DOCTYPE html>
<html>
<head>
<title>Жирный текст с помощью тега b</title>
</head>
<body>
<p>Первая часть текста набрана обычным шрифтом. <b>А вот эта часть будет выделена жирным.</b></p>
</body>
</html>

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

Как устроены таблицы стилей

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

  • Селекторы — это метки, которые помогают браузеру понять, к какой части HTML-кода нужно применить заданные параметры.
  • CSS-свойства — это определенные параметры оформления, например цвет элемента или текста (color) или цвет фона (background).
  • Значение — это просто значение, оно выражается текстом или числом, например черный (black).

селектор {
свойство: значение;
}

p {
color: black
}


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

В примере селектором является <p>, и он выбирает все теги с именем <p>, color — это CSS-свойство а black — значение CSS-свойства. Связка «свойство: значение» называется блоком объявления стилей. Внутри него свойство отделяется от значения двоеточием, а один блок от другого отделяет точка с запятой.

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

p {

color: black
background: #eeeeee
color: red
}

Подключение стилей CSS

Чтобы использовать CSS совместно с HTML, можно выбрать один из способов:

1. Весь код, написанный на CSS, прописывается в отдельном внешнем файле с расширением .css. Его подключают к HTML-странице при помощи тега <link href> — это служебный тег, который на странице не будет видно:

<head>
<link href=”style.css” rel=”stylesheet”>
</head>

Атрибут rel со значением stylesheet указывает, что в документе применяются именно стили текста. Это важно, так как, кроме применения стилей, тег <link> используется еще во множестве разных значений.

2. Прописать стили CSS внутри конкретного тега с помощью атрибута style:

<p style=»color: black; background: #eeeeee»> Добавление стиля с помощью атрибута style</p>

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

Структура сайта

Свойства CSS float

Float — это свойство, которое определяет, по какой стороне будет выравниваться элемент: по правой или по левой. Например, чтобы выровнять элемент по левому краю, подписываем CSS-свойство:

float: left;

Этот способ удобно использовать, например, для обтекания картинок текстом, но некоторое время назад с помощью float верстали практически все. Например, это был распространенный метод верстки меню. Чтобы пункты меню образовывали линию, каждому элементу присваивался float: left или float: right, чтобы они выстраивались друг за другом:

Выстраивание элементов в линию с помощью float: left

flexbox

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

justify-content: center;

Расположение элементов по центру с помощью CSS flexbox

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

flex-grow: 1;

Растягивание элементов на ширину страницы с помощью CSS flexbox

Посмотреть все возможности flexbox можно в интерактивной шпаргалке, с помощью которой можно выбрать необходимое значение и скопировать фрагмент кода.

grid

Grid появился в … году, он помогал решать многие задачи, с которыми сталкивались разработчики на протяжении долгого времени. Задачи решались методами, которые изначально для этого не предназначались. Главным нововведением стало расположение элементов относительно нескольких осей — по вертикали и по горизонтали. Растянуть элементы не несколько строк или несколько столбцов можно, присвоив каждому значения a, b, c, d и так далее. Затем прописываем в CSS-коде:

grid-template-areas: “a b c d d”
“f f g d d”

В разметке значение «a» — это элемент 1, «b» — элемент 2, «c» — это элемент 3, а «d» повторяется дважды, так как занимает две колонки.

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

CSS3

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

Например, для скругления элемента header используется свойство border-radius:

header {
background-color:#7695FE;
border: thin #336699 solid;
padding: 10px;
margin: 10px;
text-align: center;
border-radius: 25px;
}

Проблема заключается в том, что не все браузеры одновременно начинают поддерживать нововведения CSS3, поэтому в браузере, который поддерживает свойство border-radius, кнопка будет выглядеть так:

А другой может проигнорировать это свойство:

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

Методология CSS

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

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

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

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

  • padding — внутренние отступы со всех сторон элемента;
  • margin — внешние отступы со всех сторон элемента.

Одинаковые значения { padding: 5px; } и { margin: 5px; } можно унифицировать в $space-1: 5px, а значения { padding: 10px; } и { margin: 10px; } преобразовать в универсальное значение $space-2: 10px:

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

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

import color from ‘color’
const red = Color (‘red’)

const styles = {
color: red.lighten(10).toHex()
}

Еще одно преимущество CSS-in-JS — это сокращение объема кода и числа файлов. Например, в этой методологии точно не придется создавать отдельный CSS-файл для одного маленького компонента, в котором прописано 2–3 правила. А в других методологиях таких файлов бывает много.

Методология CSS-in-JS в первую очередь создана для удобства разработчиков и повышения качества DX (Developer Experience), который, в свою очередь, повлияет и на удобство пользователей — UX (User Experience). А эти явления действительно связаны напрямую, так как чем комфортнее работать разработчику — без багов и костылей, — тем более качественным получается функционал интерфейса.

Плохие теги

  1. Главная
  2. Самоучители
  3. Учебник HTML для начинающих

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

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

Одни «плохие теги» попросту отвечают за внешнее представление элемента (как тег <small>), и их можно заменить на нечто более значимое, либо использовать вместо них CSS. Другие же могут не только определять визуальное представление, но и быть к тому же излишне громоздки (как тег <font>) или ужасно пагубны для удобства использования веб-страницы (как тег <blink>).

Теги

Ниже приводится большинство общих тегов, у которых есть лучшая альтернатива:

  • <b> отображает текст жирным шрифтом. Вместо него можно использовать тег <strong>, который добавляет элементу дополнительное значение (усиленное выделение), либо, если необходимо просто отобразить текст жирным шрифтом, соответствующее свойство CSS выполняет ту же работу.
  • <i> отображает текст курсивом. Использование тега <em> также добавляет дополнительную информацию (выделение), а для обычной визуализации подойдет соответствующее свойство CSS.
  • <big> увеличивает размер отображаемого текста. Если текст используется в качестве заголовка, то лучше использовать теги заголовков (<h2>, <h3> и т.д.), которые именно для этого и предназначены, а для простого визуального выделения следует использовать свойство CSS font-size, которое предоставляет больший контроль над страницей.
  • <small> уменьшает размер отображаемого текста. Опять же для этого лучше использовать свойство CSS font-size.
  • <hr> создает горизонтальную линию. Тем не менее, в веб-странице, основывающейся на CSS, использование этого тега несколько необычно. Для этого вполне подойдет свойство CSS border-top или border-bottom, либо, в крайнем случае, старый добрый тег изображения сделает это лучше.

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

  • <u> в свое время использовался для подчеркивания текста. Так получилось, что подчеркнутый текст прочно ассоциируется со ссылками. Именно поэтому этот тег давно умер, и именно поэтому крайне не желательно иметь в тексте подчеркнутые участки, не являющиеся ссылками.
  • <center> использовался для центрирования одного элемента относительно другого. Свойство CSS text-align имеет не только значение center, но и left, right и justify.
  • <layer> аналогичен тегу <div>, однако работает он только в старых версиях браузера Netscape и потому совершенно бесполезен.
  • <blink> или <marquee>. Наше твердое «Нет!». Они должны были делать мигающий текст, однако из-за ограниченной поддержки вскоре превратились в дурную шутку.
  • <font> использовался для определения имени, размера и цвета шрифта элементов. Этот тег снискал репутацию злого гения мира тегов. Старые сайты (и даже некоторые новые) подобно оспинами буквально испещрены тегами <font>. Большинство из них обязаны своему появлению различным программам автоматизации создания сайтов, вставляющие тег <font> вокруг всякого элемента, размер или цвет которого изменяет автор. Так как этот тег приходится вставлять вокруг каждого появления элемента (скажем, каждый раз, как используется элемент <p>), то при помощи свойств CSS это можно сделать при помощи одной маленькой строки кода и применить ее ко всему сайту. Такой способ не только делает код веб-страницы меньше, но и позволяет при модифицировании стиля изменить всего одну строку, а не отыскивать все теги <font> в коде всех веб-страниц. Тег <font> и неуместное использование таблиц – две наиболее частые причины распухания кода веб-страниц.

Атрибуты

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

  • text и bgcolor используются для определения цветов базового текста и фона страницы в открывающем теге <body>. Но то же самое могут сделать свойства CSS color и background-color, если применить их в селекторе body.
  • background используется с тегом <body> для определения фонового изображения страницы. Свойство CSS background-image позволяет манипулировать фоновыми изображениями гораздо лучше.
  • link, alink, vlink используются в теге <body> для определения цвета ссылок (непосещенные, активные и посещенные). CSS псевдоклассы:link, :active, :visited умеют это делать гораздо лучше.
  • align используется для выравнивания содержимого элемента (например, <div align=»center»>Текст</div>), однако, как и в случае с тегом <center>, здесь есть новый господин – свойство CSS text-align.
  • target используется для определения различных состояний открытия ссылки, обычно чтобы она открывалась в новом окне (например, <a href=»//msiter.ru/wherever.html» target=»_blank»>Помощь</a>). Звучит мило, но этим вы можете только навредить своему сайту. Пользователи вовсе не ожидают возникновения чего-то (вроде нового окна браузера) из ниоткуда, и кроме этого большинство из них пользуются таким инструментом навигации браузера как кнопка «Назад», которая не работает, если ссылка открывается в новом окне. Таким образом этот атрибут следует использовать крайне осторожно.

Некоторые атрибуты представления, такие как width и height для изображений и cellpadding и cellspacing для таблиц, продолжают играть важную роль, так как очень часто приходится присваивать разные значения разным элементам. Они не идеальны, но если у вас на странице большое количество изображений или таблиц, то у вас попросту нет иного разумного выбора, как использовать эти атрибуты.

Самые непостижимые атрибуты представления принадлежать тегу <textarea>, где есть не только атрибуты cols и rows, признаваемые последними стандартами HTML обязательными.

Плохое использование хороших тегов

Набор HTML тегов («хороших» тегов) был разработан для выполнения конкретных задач, и хотите верьте, хотите нет (лучше поверить), использование их для выполнения именно этих задач даст наилучшие результаты.

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

Иногда разработчики используют некоторые из упомянутых здесь тегов и атрибутов (и в том числе таблицы в качестве разметки страницы) для достижения традиционного дизайна, чтобы веб-страница была совместима со старыми браузерами (в частности с Netscape 4). Таблицы действительно дают больший контроль над визуальным представлением, чем CSS, не доступный в Netscape 4, но таких пользователей не много и их число постоянно уменьшается, в то время как тех, для кого табличная верстка является огромным неудобством, — пользователей, получающих доступ в Интернет с мобильных устройств – постоянно растет. Преимущества бестабличной разметки, уже упоминавшиеся выше, намного перевешивают недостатки и отчетливо проявляются на страницах, которые сохраняют полную функциональность во всех браузерах.

Фреймы

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

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

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

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

  1. Если тег или атрибут хотя бы намекает на визуальное представление, не используйте его. Это работа CSS. И делает он ее гораздо лучше.
  2. Используйте теги только для того, для чего они предназначены. Таблицы для табличных данных. Заголовки для заголовков. И так далее, и так далее.
  3. Когда у вас появляется специфичный контент, используйте соответствующие теги.

Как сделать текст жирным в HTML?

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

В этом посте я покажу вам все возможные способы выделения текста жирным шрифтом в HTML.

  1. 1 Полужирный текст HTML – все возможные варианты
    1. 1.1 Использование тега
    2. 1.2 Использование тега
    3. 1.3 Жирный текст с использованием свойства CSS font-weight
      1. 1.3.1 Типы веса шрифта в CSS
  2. 2 Заключение

Жирный текст HTML – все возможные способы

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

 

Amet consectetur adipisicing elit possimus rerum Differentio incidunt necessitatibus numquam dolor sitamet consectetur unde reiciendis ducimus.

>

См. вывод ниже.

Жирный текст в абзаце с использованием тега

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

 

Amet consectetur adipisicing elit possimus rerum Differentio incidunt necessitatibus numquam dolor sitamet consectetur unde reiciendis ducimus.

См. его вывод ниже. tag

Как видите, этот вывод аналогичен предыдущему.

Выделение текста жирным шрифтом с использованием свойства CSS font-weight

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

 р {
  вес шрифта: полужирный;
  /* ИЛИ */
  вес шрифта: жирнее;
} 

Полужирное значение похоже на 700, а более жирный шрифт тяжелее, чем его родитель.

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

Дополнительные пояснения см. в следующем HTML и CSS.

 

Amet consectetur adipisicing elit possimus rerum Differentio incidunt necessitatibus numquam dolor sitamet consectetur unde reiciendis ducimus.

Amet consectetur adipisicing elit possimus rerum Differentio Incidunt necessitatibus numquam dolor sitamet consectetur unde reiciendis ducimus.

Amet consectetur adipisicing elit possimus rerum Differentio Incidunt necessitatibus numquam dolor sitamet consectetur unde reiciendis ducimus.

 диапазон {
  вес шрифта: полужирный;
}
/* ИЛИ */
.жирный текст {
  вес шрифта: полужирный;
}
/* ИЛИ */
#жирный шрифт {
  вес шрифта: полужирный;
} 

Для приведенных выше HTML и CSS вывод выглядит так, как показано на снимке экрана ниже.

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

Типы толщины шрифта в CSS

Существует множество значений толщины шрифта, которые вы можете выбрать, например, 100, 300, 900, светлее, жирнее, жирнее и т. д.

Но все эти значения веса шрифта делятся на две основные категории: относительные и абсолютные.

Относительный вес шрифта: жирнее, светлее и т.д.

Абсолютный вес шрифта: 400, 700, 900 и все числовые значения являются примерами в этой категории.

Если вы не знаете, «Google Fonts» — отличный и простой в использовании ресурс. И это также бесплатно. Вы можете зайти на их веб-сайт и выбрать один или несколько шрифтов вместе с предпочитаемым весом.

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

Заключение

Теперь вы знаете, как сделать текст полужирным в HTML и с помощью CSS. Это возможность выделить определенные части вашего текста.

Шихаб Ул Хак

Вы можете звать меня Шихаб. Я веб-разработчик и много работаю с PHP и WordPress.
У меня есть степень магистра, и я оставил свою обычную работу, чтобы полностью посвятить себя области, в которой я люблю работать. Я живу в Бангладеш и помогаю владельцам бизнеса создавать потрясающее присутствие в Интернете.

Профиль автора »

[Предложение] Отображение полужирного текста постоянной ширины — CSS

Ferdy_Christant

1

Я знаю, что это не самая важная проблема Интернета, но все же она меня сильно раздражает, поэтому выкладываю эту идею здесь.

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

Текущие решения
В настоящее время разработчики используют несколько решений/хаков для решения этой проблемы:

  • Предоставление элементам фиксированной ширины (единственный способ, не требующий взлома, но с точки зрения дизайна не лучший и часто невозможный из-за CMS или переводов)

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

  • Использование тени текста в 1 пиксель (выглядит ужасно, это не то же самое, что настоящий полужирный рендеринг)

  • Резервирование места для жирного шрифта с использованием псевдоэлемента (сильно зависит от макета и невозможно, если псевдоэлемент уже используется для другой цели)

Ни одно из этих решений не является удовлетворительным, но это довольно распространенная проблема.

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

 а:наведите {
   вес шрифта: полужирный! стабильный
} 

лиамкин

2

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

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

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

Или установите размер на основе полужирного шрифта (например, во временном элементе, не вставлен в DOM, чтобы текстовые читатели не нашли его) так что вы знаете есть место.

Ферди_Кристан

3

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

Автор записи

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

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