основы CSS — Основы CSS — HTML Academy
CSS-правила
CSS — это язык для оформления структурированных документов, например, HTML- документов. Синтаксис — это плоский список CSS-правил. CSS-правило состоит из селектора и перечня свойств и их значений:
селектор { свойство: значение; свойство: значение; }
Для комментариев в CSS используются символы /*
и */
.
Селекторы
Селектор находится в начале CSS-правила, до фигурных скобок, и определяет, к каким HTML-элементам применятся свойства и значения из правила.
.feature-kitten { padding-top: 60px; }
Простейшие (и самые популярные) селекторы — это селекторы по тегам и по классам. Селекторы по тегам содержат имя тега без символов <
и >
и применяются ко всем подходящим тегам. Селекторы по классам начинаются с точки, за которой идёт имя класса, и применяются ко всем тегам с подходящим атрибутом class
.
h2 { color: red; } .info { color: blue; }
На странице может быть несколько списков, и стили применятся ко всем спискам, даже к тем, которые вы менять не хотели. Чтобы избежать таких ситуаций, лучше не использовать селекторы по тегам или использовать их как можно реже.
Если у CSS-правил отличаются только селекторы, а свойства и значения одинаковые, то их можно сгруппировать через запятую.
Также можно комбинировать любые типы селекторов через пробел. Такие селекторы называются вложенными или контекстными и читаются справа налево. Например:
nav a {…} .menu ul {…} .post .title {…}
Свойства и значения
Список свойств и значений находится внутри фигурных скобок CSS-правила. Свойство определяет, какую характеристику внешнего вида мы хотим изменить, а значение — как именно.
.feature-kitten { padding-top: 60px; }
Каждый раз, когда мы добавляем новое свойство или изменяем его значение, мы меняем что-то на странице.
Наследование
Наследование в CSS — это механизм, с помощью которого значения свойств элемента-родителя передаются его элементам-потомкам. Стили, присвоенные одному элементу, наследуются всеми потомками (вложенными элементами), но только в том случае, если они где-то явно не переопределены.
Составные свойства
В CSS есть обычные свойства, управляющие одним параметром отображения, и есть составные свойства, управляющие одновременно несколькими параметрами. Например, свойство font
. Оно задаёт сразу шесть параметров: размер и название шрифта, высоту строки и некоторые другие.
font: 16px/26px "Arial", sans-serif;
Если значение обычного свойства не было задано в составном, то браузер при «расшифровке» использует исходное значение этого свойства.
Типы значений: абсолютные и относительные
Абсолютные единицы измерения привязаны к настоящим физическим размерам и связаны между собой жёсткими пропорциями. Пиксели, px
, используют чаще всего, остальные абсолютные единицы почти не применяют. Примеры абсолютных единиц измерения:
font-size: 1cm; font-size: 10mm; font-size: 38px;
Относительные единицы измерения описывают значения, которые зависят от других значений. Например, ширина элемента в процентах зависит от ширины родительского элемента, а ширина элемента в
em
зависит от размера шрифта самого элемента. К относительным единицам относятся em
, rem
, vh
, vw
и некоторые другие, ну и, конечно же, проценты.
Стили по умолчанию
Некоторым элементам можно не задавать никаких стилей, но у них всё равно будет какое-то оформление. Например, у списка <ul>
есть отступы и маркеры. Такие стили называются стилями по умолчанию и задаются внутри браузерных стилей изначально. Их можно переопределить или сбросить, задав другие значения свойств элементу.
Каскадирование
Когда браузер отрисовывает страницу, он должен определить итоговый вид каждого HTML-элемента. Для этого он собирает все CSS-правила, которые относятся к каждому элементу, ведь на элемент могут влиять сразу несколько CSS-правил. Механизм комбинирования стилей из разных источников в итоговый набор свойств и значений для каждого тега называется каскадностью.
<p>Зелёный - мой любимый цвет</p>
Заданные стили:
.beloved-color { color: green; }
Браузерные стили:
margin: 1em 0;
Итоговые стили:
color: green; margin: 1em 0;
Конфликт свойств
На один элемент могут действовать несколько CSS-правил. Если в этих правилах есть одинаковые свойства с разными значениями, то возникает конфликт. Например:
ul { list-style: disc; } .blog-navigation ul { list-style: none; }
Браузеру нужно как-то решать, какими будут итоговые значения конфликтующих свойств. Конфликт разрешается максимум за три шага. Если на текущем шаге определиться не удалось, то выполняется следующий шаг. Вот эти шаги:
- Сравниваются приоритеты стилевых файлов, в которых находятся конфликтующие свойства. Например, авторские (то есть наши) стили приоритетнее браузерных.
- Сравнивается специфичность селекторов у CSS-правил с конфликтующими свойствами.
Например, селектор по классу более специфичен, чем селектор по тегу.
- Побеждает то свойство, которое находится ниже в коде.
Каскад работает и внутри CSS-правил.
Встраивание и подключение внешних стилей
Внешние стили подключаются через тег <link>
<link rel="stylesheet" href="style.css">
Встраивание стилей в тег <style>
. Его обычно размещают внутри <head>
:
<head> <style> CSS-код </style> </head>
Такой способ используется для оптимизации загрузки страницы, ведь в таком случае браузер не будет отправлять дополнительных запросов на сервер.
Встраивание в атрибут style
:
<div></div>
Свойства и значения, прописанные таким образом, применятся точечно к одному элементу.
Обычно использование этого способа считается плохой практикой. Но иногда в виде исключения бывает удобнее воспользоваться встраиванием стилей в атрибут style
, чем писать отдельные CSS-правила. Например, когда нужно управлять стилями именно из разметки, и создавать отдельные классы при этом будет излишне. Так бывает, когда какие-то стилевые параметры устанавливаются с помощью сторонних программ или другими людьми, например, через CMS.
Продолжить
Наглядный урок по основам CSS
Каскадные Таблицы Стилей Действуют от Наследования
CSS имеет предко-потомственные отношения. Все ранние определения предка будут автоматически унаследованы одним из своих детей, если не указано иное.
Последние Выигрывают
Если элемент определен в более чем одном месте в CSS-стилях, последнее определение переопределяет предыдущие (если эти липучки представленных цветов соответствует нашим h2, то заголовки Н1 будут розовыми).
Пара Ключ-Значение
Для каждого HTML элемента, которому будет задан стиль, должен быть назначен соответствующий селектор CSS. Они всегда появляются в паре ключ-значение.
Макет
Сайты могут быть разбиты на компоненты или дивы для макетов. Это полезно — осмыслить общую структуру веб-сайта, прежде чем писать HTML или CSS.
Структура дерева
Аналогично, структурирование сайта также следует методологии дерева. Эта заметка иллюстрирует дерево с ветвями.
Block vs. Inline
Элементы, которые простираются по всей ширине страницы, являются блочными (block) элементами. Несколько блочных элементов включают headers, footers, headings (h2, h3, h4 и т.д.), divs, абзацы (p). Встроенные (inline) элементы занимают столько места, сколько им нужно: span, ссылки (а) и изображения (img) являются лишь несколькими примерами.
Inline-block
Существует также такое понятие, как установка display: inline-block, чтобы создать равномерную сетку. Inline-block элементы могут иметь высоту и ширину.
Box Model
Все элементы CSS основаны на этой модели. Внутренний ящик content (может быть что угодно), непосредственно окружает content его padding, потом border и наконец внешний ящик box–margin.
Margins Снаружи
Margins выталкивают вокруг элемента. Margins считаются вне элемента, а края соседних элементов будут перекрываться.
Padding Внутри
Padding толкает внутрь содержание. Используйте padding для перемещения содержимого от краев блока.
Auto Margins
Установка margins auto для право и лево — это удобный способ центрирования.
Max-width
Max-width предотвращает значение ширины свойства от становления больше чем max-width. Это особенно полезно при проектировании для небольших экранов.
(например, мобильный!)
Relative and Absolute
Установив родительский элемент в положение: relative, а его ребенка в положение: absolute, то позиционировать ребенка можно в пределах (или относительно) его родителя. Обратите внимание, что родитель по умолчанию всегда тело.
Float
Установив элементу float, как это показано ниже на примере с картинкой, позволит текст обтекать картинку.
Fixed
Фиксированные элементы всегда прикреплены на том же месте, независимо от позиции страницы (скроллинга).
Ссылка на ваши стили
Если у вас нет ссылки на таблицу стилей в хедере вашего HTML, ваш сайт будет грустным и наверняка не привлекательным.
<link rel=”stylesheet” href=”./css/style.css”>
Оригинальная статья: 16 CSS Lessons via Post-it® Notes
Как сделать — соотношение сторон / высота равна ширине
❮ Предыдущая Далее ❯
Узнайте, как сохранить соотношение сторон элемента с помощью CSS.
Соотношение сторон
Создание гибких элементов, сохраняющих соотношение сторон (4:3, 16:9 и т. д.) при изменении размера:
Что такое соотношение сторон?
Соотношение сторон элемента описывает пропорциональное отношение между его шириной и высотой. Два распространенных соотношения сторон видео — 4:3. (универсальный видеоформат 20-го век) и 16:9(универсальный для телевидения высокой четкости и европейского цифрового телевидение и по умолчанию для видео на YouTube).
Как сделать — Высота равна ширине
Шаг 1) Добавьте HTML:
Используйте элемент-контейнер, например
Пример
Шаг 2) Добавьте CSS:
Добавьте процентное значение для padding-top
, чтобы сохранить соотношение сторон
ОТДЕЛ. В следующем примере будет создано соотношение сторон 1:1 (высота и
ширина всегда равна):
Пример Соотношение сторон 1:1
цвет фона: красный;
ширина: 100 %;
padding-top: 100 %; /* Формат 1:1 Соотношение */
положение: относительное; /* Если ты хочешь текст внутри него */
}
/* Если вы
нужен текст внутри контейнера */
.текст {
положение: абсолютное;
верх: 0;
слева: 0;
внизу: 0;
справа: 0;
}
Попробуйте сами »
Другие соотношения сторон:
Пример соотношения сторон 16:9
.container {
padding-top: 56,25%; /* Формат 16:9
Соотношение (9 на 16 = 0,5625) */
}
Попробуйте сами »
Пример 4:3 Соотношение сторон
.container {
padding-top: 75%; /* Формат 4:3
Соотношение (3 на 4 = 0,75) */
}
Попробуйте сами »
Пример 3:2 Соотношение сторон
.
padding-top: 66,66%; /* Формат 3:2 Соотношение (делите 2 на 3 = 0,6666) */
}
Попробуйте сами »
Пример 8:5 Соотношение сторон
.container {
padding-top: 62,5%; /* Формат 8:5
Соотношение (5 на 8 = 0,625) */
}
Попробуйте сами »
Свойство CSS aspect-ratio
В более новых браузерах вы можете просто использовать свойство CSS aspect-ratio
:
Пример 3:2 Соотношение сторон
.container {
aspect-ratio: 3 / 2;
}
Попробуйте сами »
Цифры в таблице указывают на первую версию браузера, которая полностью поддерживает это свойство.
Недвижимость | |||||
---|---|---|---|---|---|
соотношение сторон | 88 | 88 | 89 | 15 | 74 |
❮ Предыдущий Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебное пособие по HTMLУчебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3.
![](/800/600/http/fifaxa-game.com/wp-content/uploads/2021/06/screenshot-2021-06-26-at-09-09-48-scale_1200-izobrazhenie-webp-1200-%C3%97-750-pikselov-%E2%80%94-masshtabirovannoe-82.png)
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебник по C++
Учебник по jQuery
Основные ссылки
HTML ReferenceCSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
Java Reference
Angular Reference
jQuery Reference
2 Top2 Examples
Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения.
Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования,
куки-файлы и политика конфиденциальности.
Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools использует W3.CSS.
Написание бережливого и простого в обслуживании CSS — документация Odoo 16.0
Существует множество способов упростить и упростить SCSS. Первый шаг — установить, является ли пользовательский код нужен вообще.
Веб-клиент Odoo спроектирован как модульный, что означает, что (потенциально все) классы могут быть общий для просмотров. Проверьте код перед созданием нового класса. Скорее всего, уже есть класс или HTML-тег, делающий именно то, что вы ищете.
Кроме того, Odoo использует Bootstrap (BS), один из наиболее полных
Доступны CSS-фреймворки. Фреймворк был настроен в соответствии с дизайном Odoo (оба
версии сообщества и предприятия), что означает, что вы можете использовать любой класс BS непосредственно в Odoo и
добиться визуального результата, совместимого с нашим пользовательским интерфейсом.
Предупреждение
Тот факт, что класс достигает желаемого визуального результата, не обязательно означает, что это правильный для работы. Помните, например, о классах, запускающих поведение JS.
Будьте осторожны с семантикой класса. Применение кнопки класса к заголовку не только семантически неправильно, это также может привести к проблемам миграции и визуальным несоответствиям.
В следующих разделах описаны советы по сокращению строк SCSS , когда пользовательский код является единственным способом иди .
Браузер по умолчанию
По умолчанию каждый браузер отображает содержимое с использованием таблицы стилей пользовательского агента . Преодолеть несоответствия между браузерами, некоторые из этих правил переопределяются перезагрузкой Bootstrap.
На данном этапе все правила «украшения для конкретного браузера» удалены, но большая часть
правила, определяющие базовую информацию о макете, сохраняются (или усиливаются Перезагрузка для согласованности
причины).
Вы можете положиться на эти правила.
Пример
Применение display: block;
в
обычно не требуется.
раздел.элемент { дисплей: блок; /* не требуется в 99% случаев */ }
Пример
В этом случае вы можете выбрать переключение тега HTML вместо добавления нового правила CSS.
диапазон.элемент {
дисплей: блок;
/* вместо этого замените на
чтобы получить 'display: block' по умолчанию */
}
Вот неполный список правил по умолчанию:
Тег/Атрибут
По умолчанию
,
,
,
…
дисплей: блок
дисплей: встроенный
<кнопка/>
, <метка/>
, <выход/>
…
дисплей: встроенный блок
,
выравнивание по вертикали: посередине
<сводка/>
, [роль = "кнопка"]
курсор: указатель;
:before {content: open-quote}
:после {content: close-quote}
…
…
См.
также
Bootstrap Reboot на GitHub
тегов HTML
Это может показаться очевидным, но самый простой и последовательный способ сделать текст похожим на заголовок
заключается в использовании тега заголовка (
,
, …). Помимо правил перезагрузки, в основном все теги несут декоративный характер.
стили, определенные Odoo.
Пример
Не делать
Привет!
<диапазон>
Я подзаголовок.
Сделать
Привет!
<дел>
Я подзаголовок.
Примечание
Помимо уменьшения объема кода, модульный подход к проектированию (использование классов, тегов, примесей…) обеспечивает постоянный визуальный результат и простоту обслуживания .
Следуя последнему примеру, если изменится дизайн заголовков Odoo, эти изменения будут применены в o_module_custom_title
, так как он использует тег
.
Полезные классы
Наша структура определяет множество служебных классов, предназначенных для охвата почти всех потребности макета/дизайна/взаимодействия. Тот простой факт, что класс уже существует, оправдывает его использование. пользовательский CSS, когда это возможно.
Возьмем пример относительно позиции
.
относительно позиции { положение: относительное !важное; }
Поскольку служебный класс определен, любая строка CSS с объявлением позиции : относительная
является потенциально избыточны.
Odoo опирается на стек служебных классов Bootstrap по умолчанию и определяет свой собственный с помощью Загрузочный API.
См. также
Вспомогательные классы Bootstrap
Пользовательские утилиты Odoo на github
Обработка детализации служебных классов
Обратной стороной служебных классов является потенциальное отсутствие удобочитаемости.