Взвешиваем селекторы CSS. Об использовании стандартных стилей. Стили кодирования информации

Термин «когнитивный стиль» достаточно многозначен. Порой под понятием «когнитивный стиль» понимается именно «познавательный стиль». В этом смысле когнитивные стили являются проявлением индивидуального своеобразия склада ума и, по мнению М.А. Холодной , выступают в качестве частной формы индивидуальных « познавательных стилей » , которые являются характеристикой индивидуально -своеобразного способа изучения реальности.

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

2.1. Стили кодирования информации

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

Работы по проблеме индивидуальных различий на физиологическом уровне в рамках своего учения о двух сигнальных системах коры головного мозга были выполнены русским ученым И.П. Павловым. Первая сигнальная система (1-я СС) осуществляет анализ и синтез непосредственных взаимодействий внешней и внутренней среды организма с опорой на чувственные впечатления (сенсорные и перцептивные сигналы). Вторая сигнальная система (2-я СС) обеспечивает ориентировку в среде посредством слова с опорой на различные формы речевой деятельности (словесные сигналы). При этом Павлов особо подчеркивал взаимодействие 1-й и 2-й сигнальных систем, поскольку они в принципе не могут функционировать автономно или параллельно .

По И.П. Павлову, преобладание первой сигнальной системы дает основания для формирования личности «художественного типа » (высокий уровень образно-пространственных способностей, трудности в произвольной регуляции деятельности и т.п.), преобладание второй сигнальной системы способствует формированию личности «мыслительного типа » (высокий уровень словесно-логических способностей, повышенная склонность к самоконтролю и т.д.) . И.П. Павлов описал два базовых способа кодирования информации, соответствующих особенностям строения и функционирования головного мозга: чувственно-наглядный и словесно-речевой. Как было показано последующими исследователями, характер соотношения сигнальных систем оказывает существенное влияние на процессы переработки информации. Например, преобладание 2-й СС у школьников проявляется в большей самостоятельности в процессе решения задач, в более эффективном использовании подсказки, а преобладание 1-й СС проявляется в склонности к шаблонным умозаключениям. Учащиеся с легкой вербализацией знаний характеризуются теоретическим типом мышления, а другие – практическим типом мышления.

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

Ряд авторов описали несколько разных типологий способов кодирования информации. Дж. Брунер (цит. по ) представил три способа субъективного представления информации: в виде предметных действий, наглядных образов и языковых знаков. Л.М. Веккер (цит. по ) выделял три языка переработки информации: знаково-словесный, образно-пространственный и тактильно-кинестетический.

Дж. Гриндер и Р. Бэндлер предложили три сферы «сенсорного опыта» человека: визуальную, аудиальную и кинестетическую, последний подход разрабатывался в рамках нейро-лингвистического программирования (НЛП) . Стили кодирования информациизависят от того, какой из анализаторов сенсорных модальностей является доминирующим в оценке информации (зрительный, слуховой, кинестетический и др.). На этом основании были выделены три основных типа людей: «визуалы », «аудиалы » и «кинестетики ». Человек в зависимости от того, какой тип сенсорной модальности у него преобладает (т.е. является ведущим), принимает и обрабатывает информацию об окружающем мире. «Поэтому для визуала типичная познавательная позиция – смотреть, представлять, наблюдать; для аудиала – слушать, говорить, обсуждать; для кинестетика – действовать, чувствовать, ощущать» . Согласно Дж. Брунеру, мера интегрированности разных способов кодирования информации характеризует уровень интеллектуального развития субъекта (цит. по ). М.А. Холодная, объединяя эти подходы и основываясь на эмпирических исследованиях, обозначает четыре основные модальности опыта:

1) знаки (словесно-речевой способ кодирования информации);

2) зрительные образы (визуальный

3) предметные действия (предметно-практический способ кодирования информации);

4) сенсорно-эмоциональные впечатления (сенсорно-эмоциональ-ный способ кодирования информации) .

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

Наличие индивидуально-своеобразных способов кодирования информации играет важную роль в успешности обучения. Хрестоматийным является пример с Альбертом Эйнштейном, который долгое время был неуспевающим учеником. Это объясняется именно несоответствием методов обучения в традиционной школе, которые больше «опирались» на левое полушарие, с визуальным способом кодирования информации, присущим Эйнштейну, по словам самого великого физика.

CSS (Cascading Style Sheets), или каскадные таблицы стилей , используются для описания внешнего вида документа, написанного языком разметки. Обычно CSS-стили используются для создания и изменения стиля элементов веб-страниц и пользовательских интерфейсов, написанных на языках HTML и XHTML, но также могут быть применены к любому виду XML-документа, в том числе XML, SVG и XUL.

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

Объявление стиля состоит из двух частей: элемента веб-страницы — селектора , и команды форматирования — блока объявления . Селектор сообщает браузеру, какой именно элемент форматировать, а в блоке объявления (код в фигурных скобках) перечисляются форматирующие команды — свойства и их значения.


Рис. 1. Структура объявления CSS-стиля

Виды каскадных таблиц стилей и их специфика

1. Виды таблиц стилей

1.1. Внешняя таблица стилей

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

К каждой веб-странице можно присоединить несколько таблиц стилей, добавляя последовательно несколько тегов , указав в атрибуте тега media назначение данной таблицы стилей. rel="stylesheet" указывает тип ссылки (ссылка на таблицу стилей).

Атрибут type="text/css" не является обязательным по стандарту HTML5, поэтому его можно не указывать. Если атрибут отсутствует, по умолчанию используется значение type="text/css" .

1.2. Внутренние стили

Внутренние стили встраиваются в раздел HTML-документа и определяются внутри тега . Внутренние стили имеют приоритет над внешними, но уступают встроенным стилям (заданным через атрибут style).

...

1.3. Встроенные стили

Когда мы пишем встроенные стили , мы пишем CSS-код в HTML-файл, непосредственно внутри тега элемента с помощью атрибута style:

Обратите внимание на этот текст.

Такие стили действуют только на тот элемент, для которого они заданы.

1.4. Правило @import

Правило @import позволяет загружать внешние таблицы стилей. Чтобы директива @import работала, она должна располагаться в таблице стилей (внешней или внутренней) перед всеми остальными правилами:

Правило @import также используется для подключения веб-шрифтов:

@import url(https://fonts.googleapis.com/css?family=Open+Sans&subset=latin,cyrillic);

2. Виды селекторов

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

2.1. Универсальный селектор

Соответствует любому HTML-элементу. Например, * {margin: 0;} обнулит внешние отступы для всех элементов сайта. Также селектор может использоваться в комбинации с псевдоклассом или псевдоэлементом: *:after {CSS-стили} , *:checked {CSS-стили} .

2.2. Селектор элемента

Селекторы элементов позволяют форматировать все элементы данного типа на всех страницах сайта. Например, h1 {font-family: Lobster, cursive;} задаст общий стиль форматирования всех заголовков h1 .

2.3. Селектор класса

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

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

Инструкция пользования персональным компьютером

.headline { text-transform: uppercase; color: lightblue; }

2.4. Селектор идентификатора

Селектор идентификатора позволяет форматировать один конкретный элемент. Идентификатор id должен быть уникальным и на одной странице может встречаться только один раз.

#sidebar { width: 300px; float: left; }

2.5. Селектор потомка

Селекторы потомков применяют стили к элементам, расположенным внутри элемента-контейнера. Например, ul li {text-transform: uppercase;} — выберет все элементы li , являющиеся потомками всех элементов ul .

Если нужно отформатировать потомки определенного элемента, этому элементу нужно задать стилевой класс:

p.first a {color: green;} — данный стиль применится ко всем ссылкам, потомкам абзаца с классом first ;

p .first a {color: green;} — если добавить пробел, то будут стилизованы ссылки, расположенные внутри любого тега класса.first , который является потомком элемента

First a {color: green;} — данный стиль применится к любой ссылке, расположенной внутри другого элемента, обозначенного классом.first .

2.6. Дочерний селектор

Дочерний элемент является прямым потомком содержащего его элемента. У одного элемента может быть несколько дочерних элементов, а родительский элемент у каждого элемента может быть только один. Дочерний селектор позволяет применить стили только если дочерний элемент идёт сразу за родительским элементом и между ними нет других элементов, то есть дочерний элемент больше ни во что не вложен.
Например, p > strong — выберет все элементы strong , являющиеся дочерними по отношению к элементу p .

2.7. Сестринский селектор

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

h1 + p — выберет все первые абзацы, идущие непосредственно за любым тегом

, не затрагивая остальные абзацы;

h1 ~ p — выберет все абзацы, являющиеся сестринскими по отношению к любому заголовку h1 и идущие сразу после него.

2.8. Селектор атрибута

Селекторы атрибутов выбирают элементы на основе имени атрибута или значения атрибута:

[атрибут] — все элементы, содержащие указанный атрибут, — все элементы, для которых задан атрибут alt ;

селектор[атрибут] — элементы данного типа, содержащие указанный атрибут, img — только картинки, для которых задан атрибут alt ;

селектор[атрибут="значение"] — элементы данного типа, содержащие указанный атрибут с конкретным значением, img — все картинки, название которых содержит слово flower ;

селектор[атрибут~="значение"] — элементы частично содержащие данное значение, например, если для элемента задано несколько классов через пробел, p — абзацы, имя класса которых содержит feature ;

селектор[атрибут|="значение"] — элементы, список значений атрибута которых начинается с указанного слова, p — абзацы, имя класса которых feature или начинается на feature ;

селектор[атрибут^="значение"] — элементы, значение атрибута которых начинается с указанного значения, a — все ссылки, начинающиеся на http:// ;

селектор[атрибут$="значение"] — элементы, значение атрибута которых заканчивается указанным значением, img — все картинки в формате png ;

селектор[атрибут*="значение"] — элементы, значение атрибута которых содержит в любом месте указанное слово, a — все ссылки, название которых содержит book .

2.9. Селектор псевдокласса

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

:hover — любой элемент, по которому проводят курсором мыши;

:focus — интерактивный элемент, к которому перешли с помощью клавиатуры или активировали посредством мыши;

:active — элемент, который был активизирован пользователем;

:valid — поля формы, содержимое которых прошло проверку в браузере на соответствие указанному типу данных;

:invalid — поля формы, содержимое которых не соответствует указанному типу данных;

:enabled — все активные поля форм;

:disabled — заблокированные поля форм, т.е., находящиеся в неактивном состоянии;

:in-range — поля формы, значения которых находятся в заданном диапазоне;

:out-of-range — поля формы, значения которых не входят в установленный диапазон;

:lang() — элементы с текстом на указанном языке;

:not(селектор) — элементы, которые не содержат указанный селектор — класс, идентификатор, название или тип поля формы — :not() ;

:target — элемент с символом # , на который ссылаются в документе;

:checked — выделенные (выбранные пользователем) элементы формы.

2.10. Селектор структурных псевдоклассов

Структурные псевдоклассы отбирают дочерние элементы в соответствии с параметром, указанным в круглых скобках:

:nth-child(odd) — нечётные дочерние элементы;

:nth-child(even) — чётные дочерние элементы;

:nth-child(3n) — каждый третий элемент среди дочерних;

:nth-child(3n+2) — выбирает каждый третий элемент, начиная со второго дочернего элемента (+2) ;

:nth-child(n+2) — выбирает все элементы, начиная со второго;

:nth-child(3) — выбирает третий дочерний элемент;

:nth-last-child() — в списке дочерних элементов выбирает элемент с указанным местоположением, аналогично с:nth-child() , но начиная с последнего, в обратную сторону;

:first-child — позволяет оформить только самый первый дочерний элемент тега;

:last-child — позволяет форматировать последний дочерний элемент тега;

:only-child — выбирает элемент, являющийся единственным дочерним элементом;

:empty — выбирает элементы, у которых нет дочерних элементов;

:root — выбирает элемент, являющийся корневым в документе — элемент html .

2.11. Селектор структурных псевдоклассов типа

Указывают на конкретный тип дочернего тега:

:nth-of-type() — выбирает элементы по аналогии с:nth-child() , при этом берёт во внимание только тип элемента;

:first-of-type — выбирает первый дочерний элемент данного типа;

:last-of-type — выбирает последний элемент данного типа;

:nth-last-of-type() — выбирает элемент заданного типа в списке элементов в соответствии с указанным местоположением, начиная с конца;

:only-of-type — выбирает единственный элемент указанного типа среди дочерних элементов родительского элемента.

2.12. Селектор псевдоэлемента

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

:first-letter — выбирает первую букву каждого абзаца, применяется только к блочным элементам;

:first-line — выбирает первую строку текста элемента, применяется только к блочным элементам;

:before — вставляет генерируемое содержимое перед элементом;

:after — добавляет генерируемое содержимое после элемента.

3. Комбинация селекторов

Для более точного отбора элементов для форматирования можно использовать комбинации селекторов:

img:nth-of-type(even) — выберет все четные картинки, альтернативный текст которых содержит слово css .

4. Группировка селекторов

Один и тот же стиль можно одновременно применить к нескольким элементам. Для этого необходимо в левой части объявления перечислить через запятую нужные селекторы:

H1, h2, p, span { color: tomato; background: white; }

5. Наследование и каскад

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

5.1. Наследование

Наследование является механизмом, с помощью которого определенные свойства передаются от предка к его потомкам. Спецификацией CSS предусмотрено наследование свойств, относящихся к текстовому содержимому страницы, таких как color , font , letter-spacing , line-height , list-style , text-align , text-indent , text-transform , visibility , white-space и word-spacing . Во многих случаях это удобно, так как не нужно задавать размер шрифта и семейство шрифтов для каждого элемента веб-страницы.

Свойства, относящиеся к форматированию блоков, не наследуются. Это background , border , display , float и clear , height и width , margin , min-max-height и -width , outline , overflow , padding , position , text-decoration , vertical-align и z-index .

Принудительное наследование

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

Как задаются и работают CSS-стили

1) Стили могут наследоваться от родительского элемента (наследуемые свойства или с помощью значения inherit);

2) Стили, расположенные в таблице стилей ниже, отменяют стили, расположенные в таблице выше;

3) К одному элементу могут применяться стили из разных источников. Проверить, какие стили применяются, можно в режиме разработчика браузера. Для этого над элементом нужно щёлкнуть правой кнопкой мыши и выбрать пункт «Посмотреть код» (или что-то аналогичное). В правом столбце будут перечислены все свойства, которые заданы для этого элемента или наследуются от родительского элемента, а также файлы стилей, в которых они указаны, и порядковый номер строки кода.


Рис. 2. Режим разработчика в браузере Google Chrome

4) При определении стиля можно использовать любую комбинацию селекторов — селектор элемента, псевдокласса элемента, класса или идентификатора элемента.

div {border: 1px solid #eee;} #wrap {width: 500px;} .box {float: left;} .clear {clear: both;}

5.2. Каскад

Каскадирование — это механизм, который управляет конечным результатом в ситуации, когда к одному элементу применяются разные CSS-правила. Существует три критерия, которые определяют порядок применения свойств — правило!important , специфичность и порядок, в котором подключены таблицы стилей.

Правило!important

Вес правила можно задать с помощью ключевого слова!important , которое добавляется сразу после значения свойства, например, span {font-weight: bold!important;} . Правило необходимо размещать в конец объявления перед закрывающей скобкой, без пробела. Такое объявление будет иметь приоритет над всеми остальными правилами. Это правило позволяет отменить значение свойства и установить новое для элемента из группы элементов в случае, когда нет прямого доступа к файлу со стилями.

Специфичность

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

для id добавляется 0, 1, 0, 0 ;
для class добавляется 0, 0, 1, 0 ;
для каждого элемента и псевдоэлемента добавляется 0, 0, 0, 1 ;
для встроенного стиля, добавленного непосредственно к элементу — 1, 0, 0, 0 ;
универсальный селектор не имеет специфичности.

H1 {color: lightblue;} /*специфичность 0, 0, 0, 1*/ em {color: silver;} /*специфичность 0, 0, 0, 1*/ h1 em {color: gold;} /*специфичность: 0, 0, 0, 1 + 0, 0, 0, 1 = 0, 0, 0, 2*/ div#main p.about {color: blue;} /*специфичность: 0, 0, 0, 1 + 0, 1, 0, 0 + 0, 0, 0, 1 + 0, 0, 1, 0 = 0, 1, 1, 2*/ .sidebar {color: grey;} /*специфичность 0, 0, 1, 0*/ #sidebar {color: orange;} /*специфичность 0, 1, 0, 0*/ li#sidebar {color: aqua;} /*специфичность: 0, 0, 0, 1 + 0, 1, 0, 0 = 0, 1, 0, 1*/

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

Порядок подключённых таблиц

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

Как автоматически создать оглавление текстового документа? При вводе текста назначайте всем заголовкам определенные стили. Причем аккуратно следите за иерархией стилей заголовков в структуре документа. Самостоятельные заголовки (ни в какие другие не вложенные, например: Введение, Глава 1, … Заключение, Список литературы) являются заголовками первого уровня - «Заголовок 1» , вложенные в них - заголовками второго уровня - «Заголовок 2» и так далее.

Для определения уровня заголовка в иерархии структуры документа можно использовать простое правило: если бы заголовки в вашем документе нумеровались, то заголовки первого уровня - это те, которые нумеровались бы одной цифрой (1.), второго – те, которые нумеровались бы двумя цифрами (1.1.), третьего – тремя (1.1.1.) и т.д.

При настройке стилей заголовков всегда полезно установить опции «не разрывать абзац» и «не отрывать от следующего» (за заголовком абзаца), чтобы не получилось так, что одинокий заголовок остался в конце предыдущей страницы. А для заголовков первого уровня – еще и опцию «с новой страницы», тогда вам не придется беспокоиться о том, чтобы главы начинались с новых страниц, это будет происходить автоматически.

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

Для начала поставьте курсор в ту позицию, в которой должно находиться оглавление, это может быть либо начало, либо конец документа. Теперь вызовите меню Вставка/ Ссылка/ Оглавление и указатели закладка Оглавление . Откроется следующее окно:

Если отметить опцию Гиперссылки вместо номеров страниц , то строчки оглавления будут активными: по щелчку мыши (удерживая клавишу Ctrl ) программа будет переводить вас на соответствующий раздел документа.

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

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

После настроек параметров нажмите OK и вы увидите автоматически сформированное оглавление.

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

Ближе к двум часам ночи в голову в месте с мыслями о вечном приходят не менее вечные вопросы - «в чём смысл жизни?», «зачем вообще человеку спать?» или «Какого чёрта эта #%^$ не работает?» и чем ближе утро, тем сильнее начинает волновать именно этот самый последний вопрос.

Чуть ниже я расскажу о том какого чёрта сss селекторы иногда не ведут себя так, как нам кажется правильным, и о том как они на самом деле должны себя вести.

Глава один – идём направо!

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

Итак, взвешиваем - сначала представим пару рядов из 8 чисел:

0,1,0,0,0,0,0,0
1,0,0,0,0,0,0,0

Знакомьтесь - так в числах выглядят некоторые два селектора, чтобы никто ни о чем не догадался назову их условно «верхний» и «нижний»

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

  1. Смотрим на крайние левые числа
  2. Выбираем из них большее. - именно этот селектор и будет самым тяжелым
  3. Если числа одинаковые, сдвигаемся на число вправо и повторяем инструкции из пункта 2.
  4. Если все числа одинаковые то применяются стили из селектора который был объявлен последним

Самая страшная тайна

Если вы это прочитаете, от вас навсегда уйдет душевный покой, но по крайней мере вы сможете спать по ночам.

Раскрывая самую страшную тайну я расскажу, как собственно превратить обычный селектор в такие понятные и красивые цифры? Всё как всегда очень просто:

  1. Теги. за каждый тег в селекторе можно накинуть в самое правое число единичку:

    A – это 0,0,0,0,0,0,0,1 div a – это 0,0,0,0,0,0,0,2

  2. Классы , за каждый класс или псевдокласс в селекторе можно накинуть по единичке во второе число справа

    Head .logo – это 0,0,0,0,0,0,2,0 .logo.big – 0,0,0,0,0,0,2,0 div:first-child – 0,0,0,0,0,0,1,1 .logog > .big – и это тоже 0,0,0,0,0,0,2,0
    Да, вы все верно поняли. Css селектор плевать хотел на все эти ваши изыски типа пробелов или «>».

  3. За каждый ID в селекторе добавляем по единичке в третье справа число.

    #head – это 0,0,0,0,0,1,0,0 #head #logo – тоже 0,0,0,0,0,2,0,0

Я думаю суть вы уловили, теперь можно приступать к небольшой викторине, чтобы это проверить:

Викторина


Вопрос: Какого цвета бэкграунд будет в абзаце?
Ответ: Правильно, красного, потому что селектор не волнует что вам там кажется, и расстояние между тэгами его не интересует. А так как вес тэгов равен – применится последний.

?

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

?

Вопрос: Все тот же.
Ответ: А ответ, для разнообразия другой: наш див будет серым. Потому что как я уже упоминал выше селектору абсолютно безразлично что вы там имели ввиду. У первого селектора вес больше, и никого не волнует что скорее всего ожидали вы не такого поведения.

Продолжаем раскрывать секреты

У нас осталось еще так много чисел, и наверняка так хочется узнать что же все они значат – продолжаем раскрывать секреты.
  1. Селектор * абсолютно невесомый, то есть совсем.
  2. Селектор атрибутов это самый обычный псевдокласс и весит он столько же сколько и обычные классы
  3. Любой инлайновый стиль написанный в атрибуте style=”” элемента автоматически получает приоритет0,0,0,0,1,0,0,0 , что сразу делает его очень крутым.
  4. А следующие четыре цифры это все наши старые знакомые только с атрибутом !important

    Div { background-color: gray !important; } Имеет вес при определении свойства background-color - 0,0,0,1,0,0,0,0 .header { background-color: gray !important; } 0,0,1,0,0,0,0,0

Все мы любим викторины

?

Вопрос: Какого цвета будет знак вопроса в ссылке?
Ответ: Красного, неважно что селектор на точное совпадение атрибута выглядит более специфичным, чем селектор который выбирает все что «начинается с». Вес они имеют одинаковый.

?

Вопрос: Мой оригинальный запатентованный вопрос.
Ответ: !important круче всего, даже круче чем инлайн стили – так что бам-бам-бам – серого!

Исходники всех тестов лежат


В разделе рассматриваются основные свойства стилей, общие для всех типов стилей LibreOffice и некоторые особенности стандартных стилей.

Типы стилей

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

Writer:
Стили страницы - задают оформление полей, колонтитулов, обрамление, разбиение на колонки и фон.

Стили абзаца содержат настройки абзацев(заголовков): гарнитуру, кегль, междустрочный интервал (интерлиньяж), отступ первой строки, отступы слева и справа и другие.

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

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

Стили списка определяют выравнивание, тип нумерации или маркеров, и шрифты для нумерованных и ненумерованных списков. Сами по себе они не используются. Стили списка применяются к стилям абзаца в диалоге создания и редактирования стиля абзаца на вкладке «Структура и нумерация».

Calc:
Стили ячейки в электронных таблицах Calc относятся к шрифтам, выравниванию, границам, фону, форматам чисел (например, валюта, дата, номер) и защите ячеек.

Cтили страницы содержат параметры вывода листов на печать или экспорта в PDF.

Impress и Draw:
Стили рисунков относятся к линиям, областям, теням, прозрачности, шрифту, соединителям, размерам и другим атрибутам.

Стили презентации определяют атрибуты шрифта, отступов, расстояний, выравнивания и табуляции.

Base и Math не содержат собственные стили, однако к объектам из Base и Math могут применяться стили тех модулей, в которые они вставлены. Например, к формулам могут быть применены стили врезок Writer.

Взаимодействие стилей

В LibreOffice стили взаимодействуют друг с другом, некоторые стили не применяются сами по себе. К последнему типу можно отнести стили списка, которые задают оформление маркеров и нумерацию, но применяются они только во взаимодействии со стилем абзаца. В диалоге создания и редактирования стиля абзаца на вкладке «Структура и нумерация» в разделе «Нумерации» стилю абзаца присваивается стиль списка.
Стили символа могут использоваться по отдельности, но часто они привязываются к стилям списков для придания оформления маркерам(нумерации) и к стилям абзаца для создания буквиц. Пример привязки стилей символа к другим стилям приведен в разделе Сложная автонумерация заголовков .

Стили страниц также могут быть привязаны к стилю абзаца. Дело в том, что абзац в LibreOffice Writer первичен. Без абзаца невозможно создать новую, даже и пустую, страницу. В программах класса LibreOffice Writer просто не существует полностью пустых страниц без абзацев. Отсюда и ошибочная привычка большинства пользователей делать новую страницу многократным нажатием клавиши «Enter» .

В диалоге создания и редактирования стиля абзаца на вкладке «Положение на странице» в разделе «Разрыв», можно задать разрыв с использованием конкретного стиля страницы.

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

Приоритет стилей и форматирования

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

Действует это следующим образом, допустим, всему абзацу задан стиль абзаца с шрифтом 12 кегля в обычном начертании, а отдельному слову в абзаце присвоен стиль символа с 14 кеглем и жирным начертанием. Теперь, если задать новый стиль абзаца с шрифтом 10 кегля, то оформление отдельных слов(к которым был применен стиль символа) не изменится и будет так же иметь 14 кегль.

Аналогичным образом дело обстоит и с ручным форматированием. Если вручную сделать некоторые слова и символы в абзаце в жирном начертании, то при изменении стиля абзаца эти символы сохранят свое начертание. На рисунке 19 букве «n» в слове nervously и слову darkness было сделано ручное форматирование. Затем был изменен стиль абзаца, но стиль символов не изменился.

Рисунок 19: Ручное форматирование текста
Именно в этом и заключается зло ручного форматирования. О том как сбросить ручное форматирование написано в разделе Отмена форматирования .

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

Иерархия и наследование

Если взглянуть на стандартные стили в LibreOffice Writer в режиме сортировки «По иерархии», то можно заметить, что стиль абзаца «Базовый» включает в себя все остальные стили абзацев, т.е. явяется родительским стилем по отношению ко всем остальным.

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

Такое поведение позволяет не только экономить время, но и имеет дополнительный смысл. А что если всему тексту в документе требуется заменить гарнитуру с Sans на Serif? Нет ничего сложного, просто меняем гарнитуру в родительском стиле. Потомки автоматически унаследуют это изменение. Но если в каком то из потомков гарнитура указывалась явно, то изменение гарнитуры не унаследуется.

В диалоге создания и редактирования стилей на вкладке «Управление» в разделе «Параметры», перечислены все параметры стиля.

Как видно, стиль «АМ_Базовый_Заголовок» не наследует ничьи свойства. Стиль «АМ_Заголовок (14)» наследует параметры «АМ_Базовый_Заголовок», но при этом имеет часть собственных параметров, которые и перечислены в разделе «Параметры».

Для дочерних стилей в разделе «Параметры» на вкладке «Управление» перечисляются только переназначенные свойства. Эти свойства остаются неизменными при изменении свойств родителя.

Функция наследования доступны для всех типов стилей, но чаще всего она применяется в стилях абзаца. Эффективное применение данной функции требует определенного планирования перед созданием стилей.

Уровни структуры

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

В диалоге создания и редактирования стиля абзаца на вкладке «Структура и нумерация» заголовкам присваивается уровень структуры от 1-го до 10-и.

Рисунок 23: Уровни структуры

Уровни структуры позволяют настраивать сложную автонумерацию заголовоков и создавать сложные оглавления. Подробнее смотрите в разделах Сложная автонумерация заголовков и Автоматическое оглавление

Условные стили

Условные стили существуют только во Writer и их часто путают с функцией условного форматирования в Calc. Условный стиль во Writer позволяет задать различные варианты оформления текста в зависимости от условия. Условием выступает контекст (тип) текста (таблица, верхний колонтитул, нижний колонтитул, сноска и т.д.). Другими словами, один и тот же условный стиль может иметь одно форматирование если он находится в верхнем колонтитуле, другое форматирование если он находится в нижнем колонтитуле и т.д.

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

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

Условие (контекст) применения стиля задается путем выбора в списке «Контекст» условия применения стиля, в списке «Стиль абзаца» применяемого стиля и нажатием кнопки «Применить»(не путать с кнопкой «Применить», которая находится ниже) под списком «Стиль абзаца». Удаляется условие аналогичным образом с помощью кнопки «Удалить».

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

Стандартные стили

Хочет того пользователь или нет, но он всегда пользуется стилями. Это касается и пользователей Microsoft Office. Стандартные стили вшиты в LibreOffice. Их нельзя удалить. Некоторые стили даже нельзя перенастроить. Например, стиль «Базовый». Если отсортировать стили в стилисте в режиме «По иерархии» (надеюсь вы выучили как это делать), то можно увидеть, что стиль «Базовый» является родительским для всех остальных стилей.

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

В LibreOffiice отсутствует понятие без стиля. При создании нового документа, вводимому тексту присваивается стиль «Базовый». К сожалению, программы не способны читать мысли людей и присваивать стили нужно вручную. О том как эффективно это делать написано в разделе Применение стилей.

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

Вторая группа — стили, применяемые самим пользователем. Они используются для создания логической структуры документа и оформления его основных разделов.

К первой группе как раз и относится стиль «Базовый». О применении остальных стилей речь пойдет в следующем разделе.

Об использовании стандартных стилей

На самом деле, я не рекомендую применять стандартные стили. Первая причина в том, что зачастую они просто не удовлетворяют требованиям большинства пользователей. Элементарно, в большинстве документов в РФ используется шрифт Times New Roman. И я не говорю о других псевдо-стандартах.

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

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

Гораздо лучше создать собственный набор стилей. Это спасет вас и ваших коллег от путаницы. Также при необходимости, можно сохранить стили в шаблоне, а сохраненный шаблон назначить шаблоном по умолчанию. Как это сделать написано в разделе «Изменение стандартного шаблона ».

При создании собственных стилей, рекомендую в названиях давать им оригинальные префиксы, чтобы они не пересекались со стандартными стилями и не заменяли их. Например, для оформления своего диплома я присваивал стилям префикс «АД», руководствам присваиваю префикс «АМ» (от английского manual - руководство). Букву А использую для удобства сортировки стилей.

Копирование и вставка текста из других источников

И ещё несколько слов об использовании стилей вообще. При копировании текста из других источников, будь то другой документ или веб-страница, вместе с текстом обычно копируется и его форматирование (в том числе и стили). Чтобы скопированные стили не перебивали уже имеющиеся в документе, необходимо использовать специальную вставку «Правка → Вставить как» (Ctrl + Shift + V) в режиме «Текст без форматирования».


Top