CSS - Единицы измерения: Путеводитель для начинающих

Здравствуйте, будущие маги CSS! ? Добро пожаловать в нашу магическую旅程 в мир единиц измерения CSS. Как ваш доброжелательный соседский компьютерный учитель, я рад помочь вам освоить этот важный аспект веб-дизайна. Не волнуйтесь, если вы никогда не писали ни строчки кода раньше - мы начнем с нуля и будем вместе строить наши знания!

CSS - Units

Единицы длины: Основы единиц измерения CSS

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

Вот таблица最常见的 единиц длины в CSS:

Единица Описание Пример
px Пиксели 16px
em Относительно размера шрифта элемента 1.5em
rem Относительно размера шрифта корневого элемента 2rem
% Процент 50%
vw Ширина viewport 100vw
vh Высота viewport 50vh

Теперь давайте подробнее рассмотрим каждую из этих единиц и посмотрим, как они работают в действии!

Единицы измерения CSS - единица em

Единица 'em' похожа на хамелеона - она адаптируется к своим условиям. Один 'em' равен размеру шрифта текущего элемента. Это делает ее super полезной для создания масштабируемых дизайнов.

.parent {
font-size: 16px;
}

.child {
font-size: 1.5em; /* Это будет 24px */
margin-bottom: 1em; /* Это также будет 24px */
}

В этом примере размер шрифта элемента .child будет 24px (1.5 * 16px), и его нижний отступ также будет 24px. Это как будто .child говорит: "Я хочу быть в 1.5 раза больше, чем мой родитель!"

Единицы измерения CSS - единица ch

Единица 'ch' немного resembles typography nerd. Она основана на ширине символа '0' (ноль) в текущем шрифте. Это может быть super полезно для создания последовательных макетов, особенно с моноширинными шрифтами.

.code-snippet {
font-family: 'Courier New', monospace;
width: 40ch; /* Ширина 40 символов '0' */
}

Это создаст ящик, который будет exact 40 символов в ширину - perfect для отображения фрагментов кода!

Единицы измерения CSS - единица rem

Единица 'rem' похожа на мудрого старца семьи CSS. Она всегда ссылается на размер шрифта корневого элемента (обычно тег <html>), игнорируя размер шрифта родительских элементов.

html {
font-size: 16px;
}

.container {
font-size: 20px;
}

.container p {
font-size: 1.5rem; /* Это будет 24px, основываясь на размере шрифта html */
}

В этом случае, даже несмотря на то, что у .container есть другой размер шрифта, абзац внутри нее все равно будет 24px (1.5 * 16px от корня).

Единицы измерения CSS - единицы lh и rlh

Единица 'lh' основана на размере вертикной линии элемента, а 'rlh' - на размере вертикной линии корневого элемента. Это новые единицы и они великолепны для создания вертикного ритма в ваших дизайнах.

.paragraph {
font-size: 16px;
line-height: 1.5;
margin-bottom: 1lh; /* Это будет равняться вертикной линии */
}

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

Единицы измерения CSS - единицы vh и vw

Теперь мы переходим к единицам viewport - это мои любимые! 'vh' означает высоту viewport, а 'vw' - ширину viewport. Они represent percentages of the total viewport size.

.hero-section {
height: 100vh; /* Полная высота viewport */
width: 100vw; /* Полная ширина viewport */
}

.half-width {
width: 50vw; /* Полshalve ширины viewport */
}

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

Единицы измерения CSS - единицы vmin и vmax

'vmin' и 'vmax' являются динамической парой единиц viewport. 'vmin' использует меньшую величину viewport, а 'vmax' - большую.

.square {
width: 50vmin;
height: 50vmin;
}

Это создает perfect square, который всегда составляет 50% меньшей величины viewport - это great для поддержания пропорций!

Единицы измерения CSS - единица vb

Единица 'vb' основана на размере viewport в block direction (обычно высота в горизонтальных режимах письма). Она похожа на 'vh', но адаптируется к различным режимам письма.

.vertical-text {
writing-mode: vertical-rl;
height: 100vb; /* Полная высота в вертикном режиме письма */
}

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

Единицы измерения CSS - единица vi

Единица 'vi' является вертикной версией 'vb'. Она основана на размере viewport в inline direction (обычно ширина в горизонтальных режимах письма).

.horizontal-scroll {
width: 200vi; /* В два раза больше ширины viewport */
overflow-x: scroll;
}

Это создает вертикальный элемент прокрутки, который всегда в два раза шире viewport.

Пример - Проценты

Проценты в CSS всегда relative к чему-то. Для ширин они usually relative к ширине родительского элемента.

.parent {
width: 300px;
}

.child {
width: 50%; /* Это будет 150px */
}

Здесь элемент .child всегда будет составлять половину ширины своего родителя. Это как будто说你 своему элементу: "Ты можешь взять половину того, что имеет твой родитель!"

Пример - Числа

Иногда вы видите CSS свойства без единиц - просто числа. Эти значения usually используются для безразмерных свойств, таких как line-height или opacity.

p {
line-height: 1.5; /* 1.5 раза размер шрифта */
opacity: 0.8; /* 80% непрозрачный */
}

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

И вот мы и добрались до конца,朋友们! Мы прошли через страну единиц измерения CSS. Помните, ключ к maîtrisage этих единиц - это практика. Попробуйте использовать эти единицы в своих проектах, и вы вскоре разовьете интуицию для их использования.

Счастливого кодирования, и пусть ваши макеты всегда будут pixel-perfect! ?✨

Credits: Image by storyset