Рубрики
css

Конспект: основы CSS

ссылка

https://htmlacademy.ru/
https://htmlacademy.ru/courses/307/run/16

Конспект: основы CSS

CSS-правила
CSS — это язык для оформления структурированных документов, например, HTML- документов. 
Синтаксис — это плоский список CSS-правил. 
CSS-правило состоит из селектора и перечня свойств и их значений:

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


Для комментариев в CSS используются символы /* и */.



Селекторы
Селектор находится в начале CSS-правила, до фигурных скобок, и определяет, к каким HTML-элементам применятся свойства и значения из правила.

.feature-kitten {
  padding-top: 60px;
}

Простейшие (и самые популярные) селекторы — это селекторы по тегам и по классам. 
Селекторы по тегам содержат имя тега без символов < и > и применяются ко всем подходящим тегам. 
Селекторы по классам начинаются с точки, за которой идёт имя класса, и применяются ко всем тегам с подходящим атрибутом class.

h1 { 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 и некоторые другие, ну и, конечно же, проценты.



Стили по умолчанию
Некоторым элементам можно не задавать никаких стилей, но у них всё равно будет какое-то оформление. 
Например, у списка 
    есть отступы и маркеры. Такие стили называются стилями по умолчанию и задаются внутри браузерных стилей изначально. Их можно переопределить или сбросить, задав другие значения свойств элементу. Каскадирование Когда браузер отрисовывает страницу, он должен определить итоговый вид каждого HTML-элемента. Для этого он собирает все CSS-правила, которые относятся к каждому элементу, ведь на элемент могут влиять сразу несколько CSS-правил. Механизм комбинирования стилей из разных источников в итоговый набор свойств и значений для каждого тега называется каскадностью. Например, есть такой элемент в разметке:

    Зелёный - мой любимый цвет

    Заданные стили: .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-правил. Встраивание и подключение внешних стилей Внешние стили подключаются через тег Встраивание стилей в тег Такой способ используется для оптимизации загрузки страницы, ведь в таком случае браузер не будет отправлять дополнительных запросов на сервер. Встраивание в атрибут style:
    Свойства и значения, прописанные таким образом, применятся точечно к одному элементу. Обычно использование этого способа считается плохой практикой. Но иногда в виде исключения бывает удобнее воспользоваться встраиванием стилей в атрибут style, чем писать отдельные CSS-правила. Например, когда нужно управлять стилями именно из разметки, и создавать отдельные классы при этом будет излишне. Так бывает, когда какие-то стилевые параметры устанавливаются с помощью сторонних программ или другими людьми, например, через CMS.
Рубрики
css

Конспект: Наследование и каскадирование

Ссылки

https://htmlacademy.ru/

Иерархическое дерево


HTML-документ представляет собой иерархическое дерево. 
Это означает, что у каждого элемента (кроме корневого) есть только один родитель, то есть элемент, 
внутри которого он располагается. 
У корневого раздела родитель отсутствует. 

Рассмотрим простейшую страницу:


   
   
      

Текст документа

Выделенная строка

В данном примере видно, что у элемента span родителем является p.text, а у p.text родитель — body. Иерархическая структура документа определяет основы концепции наследования.

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

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



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

Заголовок

  • Пункт списка
  • Пункт списка
  • Пункт списка

Текст первого параграфа.

Текст второго параграфа.

body { font-family: "PT Sans", sans-serif; color: #2980b9; font-size: 12px; } li { color: #1abc9c; }

Наследование «на пальцах»

Рассмотрим пример:

Строка c выделенным словом

Представим, что нам нужно установить красный цвет текста для всего текста. Зададим CSS-свойства следующим образом: .text { color: red; } Благодаря наследованию цвет текста в теге span автоматически станет красным: Нам пришлось бы отдельно прописывать цвет текста для тега span. И тогда установка таких простых свойств как стиль шрифта стала бы большой проблемой: нужно было бы задавать свойства для всех возможных вложенных тегов.

Ещё немного про наследование

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

Например, для этого куска кода:

Cтрока c выделенным словом

Установим CSS-свойство: .bordered { border: 1px solid green; } На самом деле граница будет нарисована только у тега p.

Наследуемые свойства

К наследуемым свойствам относятся в первую очередь свойства, определяющие параметры отображения текста:
font-size, font-family, font-style, font-weight, color, text-align, text-transform, text-indent, line-height, letter-spacing, word-spacing, white-space, direction и т. д.
Также к наследуемым свойствам относятся list-style, cursor, visibility, border-collapse и некоторые другие. Но они используются значительно реже.

Весь список наследуемых свойств смотрите в стандарте CSS.
https://www.w3.org/TR/CSS21/propidx.html 
Значение yes в колонке Inherited?.
Эти свойства можно и нужно задавать через предков, следуя семантике документа.

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

Не наследуемые свойства

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

А именно: 
background, border, padding, margin, width, height, position и др.

Весь список не наследуемых свойств смотрите в стандарте CSS. 
https://www.w3.org/TR/CSS21/propidx.html
Значение no в колонке Inherited?.

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

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

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

Запись выглядит следующим образом:
p {
  background: inherit;
}

В данном случае у тегов p свойство background будет таким же, как и у их родительских тегов.




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

Первый список

  • Первый элемент списка
  • Второй элемент списка
  • Третий элемент списка

Второй список

  • Первый элемент списка
  • Второй элемент списка
  • Третий элемент списка
body { font-family: "PT Sans", sans-serif; } ul { margin: 5px; padding: 5px; border: 1px solid #666666; list-style: none; } .second-list li { border: inherit; margin: inherit; padding: inherit; }

Каскадирование

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

Например, для элемента:

CSS-правила существуют как минимум в трёх разных местах: в подключаемом файле style.css для селекторов p или .text; в атрибуте style; в стандартных стилях отображения, встроенных в браузер. Каскадирование как раз и определяет, какие именно свойства из этих источников применятся к данному абзацу. Имеется три основные концепции, управляющие порядком, в котором применяются CSS-свойства: важность; специфичность; порядок исходного кода. Самыми важными для нас являются последние две и подробнее о них мы поговорим отдельно.

Битва за курочку


Вот HTML-код, в котором есть абзац с двумя классами:

Синий или красный?

А вот CSS-код c двумя правилами для этих классов: .blue { color: blue; } .red { color: red; } Вопрос: какого цвета будет текст абзаца? Какое из CSS-правил приоритетнее? Ответ: красного цвета, второе правило приоритетнее. Это происходит потому, что селекторы у правил одинакового типа, и соответственно обладают одинаковой специфичностью. В таком случае более высоким приоритетом обладает то правило, которое расположено в CSS-коде ниже. В нашем случае это правило для класса red.

Битва за курочку. Раунд второй

Чуть более сложный пример. 
Тот же HTML:

Синий или красный?

Немного другой CSS: p.blue { color: blue; } .red { color: red; } В этом случае текст абзаца будет синим. Происходит это потому, что селектор p.blue более специфичный, чем селектор .red. Простое объяснение специфичности звучит так: Чем меньшее количество элементов потенциально может выбрать селектор, тем он специфичнее. В нашем примере селектор .red выберет все теги с нужным классом, а селектор p.blue выберет только абзацы с нужным классом.

Битва за курочку. Борьба накаляется

Как вы уже знаете, существуют селекторы не только по классам, но и по id. 
Они начинаются с решётки #.

HTML:

Синий или красный?

CSS: #experiment-1 .blue { color: blue; } .experiment .red { color: red; } Особенность атрибута id заключается в том, что его значение должно быть уникальным в пределах страницы. То есть, может существовать только один тег с определённым значением id. Получается, что селектор по id может выбрать только один элемент. И поэтому он на порядок специфичнее селекторов по тегам, классам, а также комбинаций этих селекторов. Синий победит.

Битва за курочку. Запрещённый приём

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

Однако существует способ переопределить из подключаемых CSS-файлов даже стили, заданные в атрибуте style. 
Для этого нужно использовать ключевое слово !important. 
Оно задаёт CSS-свойству усиленный приоритет. 

Вот пример:
HTML:

Синий или красный?

CSS: .blue { color: blue !important; } Цвет текста в этом примере будет синим.
Рубрики
css

css слои \ DIV

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

Каскадные Листы Стилей Cascading Style Sheets CSS

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

a.menu: link
{
color: #34522f;
font-famaly: arial;
font-size: 32px;
font-waight: bold;
text-decoration: none
}

   это говорит о том что в документе применяются css

Рубрики
css

css синтаксис

Элемент.
Все начинается с элемента или с селектора
Элементами могут быть любые теги. 
Например 

Свойства. Именно для элемента назначаются атрибуты. MARGIN WIDHT FONT-FAMALY BORDER-RIGHT HEIGHT Значение. Каждое свойство достигает определенного значения Объявление. значения которые оно должно принять образует объявления. Правило. Элемент и его объявления образуют правило h1 {color: red; size: 20pt} пример правила Группировки стилей и селектором класса:

Группировка может производится по одинаковым тегам или по атрибутам одного семейства

до группировки по тегам
h1 {font-famely: arial;  font-size: 14pt }
h2 {font-famely: arial;  font-size: 14pt }
h3 {font-famely: arial;  font-size: 14pt }
после группировки по тегам
h1, h2, h3 {font-famaly: arial font-size 14pt}

до группировки по атрибутам одного семейства
body {margin-top: 12pt;margin-left: 10pt;margin-right: 14pt }
после группировки по атрибутам
body {margin: 12pt 10pt 14pt}

Селекторы классов (class selectors) синтаксис 
селектор.класс {свойства}
.класс  {свойства}

Рубрики
css

css четыре варианта использования \ встраивание \ подключение \ связывание \ импорт

встраивание
подключение
связывание
импорт

Правила каскадирования:
встраиваемые стили приоритет перед подключаемыми
подключаемые имеют приоритет перед связными
связанные стили имеют приоритет перед импортированными

встраиваемые стили имеют влияние только на тег
 заголовок 

Текст этого абзаца отобразится шрифтом Comic sans ms и размером в 17 пунктов"

подключаемые стили применяются ко всей страницы для этого служит парный тег