основы 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 Соотношение сторон
.
container {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. CSS
Учебное пособие по 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
Обработка детализации служебных классов
Обратной стороной служебных классов является потенциальное отсутствие удобочитаемости.