SlideShare una empresa de Scribd logo
1 de 29
Наследование
Суть наследования состоит в том, что стили, присвоенные
некоторому элементу, наследуются всеми потомками (вложенными
элементами), если они не переопределены явно.
Наследование позволяет сократить таблицу CSS. Но в то же время
если стилей много, то отследить какой элемент установил некоторое
свойство, становится довольно сложно.
Дерево
<html>
<head>
<title>Untitled Page</title>
</head>
<body>
<div class = "mainWrap">
<h1>Основной заголовок</h1>
<p>какой-то текст</p>
<ul>
<li>пункт 1</li>
<li>пункт 2</li>
</ul>
</div>
<div class = "sideBar">
<h2>Второй заголовок</h2>
<p>еще текст</p>
</div>
</body>
</html>
Предки и потомки
Элементы, которые содержат другие, являются предками (ancestor) по
отношению к во всем вложенным в него. Вложенные в свою очередь являются
его потомками (descendant).

Каждый предок может иметь неограниченное число потомков.
Селектор потомков состоит из двух или более селекторов, разделенных
пробелом. Такие селекторы называются контекстными.
cелектор-предок селектор-потомок … селектор-потомок потомка{правило CSS}

Например:
В HTML:
<h1>Это заголовок <em>для
предков</em> потомков</h1>
В CSS:
h1 em { color: Aqua; }

Результат в браузере:
Отметим, что при такой записи стиль будет применяться к последнему тегу в списке
и ко всем его потомкам:
В HTML:
<body>

Результат в браузере:

<div>
<p>
<span>Should <i>be</i>
green</span>
</p>
</div>
</body>
В CSS:
body div p span { color: Green;}

В нашем примере текст, выделенный курсивом, так же зеленого цвета.
Бывает, что при разработке таблицы стилей неизвестно, какой элемент будет
размещен внутри какого. В таком случае используется символ *. С обеих сторон
обязательно должны ставится пробелы. * заменяет любой тег, но только один. В
нашем примере * заменила тег div:
В HTML:
<body>
<h1>Это заголовок <em>для предков</em> потомков</h1>
<span>Should be not green</span>
<div>
<span>Should be green</span>
<p>
<span>Should <i>be</i> green</span>
</p>
</div>

В CSS:
body * span
{
color:Green;
}

</body>

Примечание:
Если нам нужно найти все
теги между body и span,
то * не ставится, а
остается только пробел.
Родители и дочери
Родитель (parent) — это непосредственный предок (предок первого уровня)
элемента. И наоборот, непосредственный потомок (потомок первого уровня)
называется дочерним элементом (child).
В этом случае синтаксис написания CSS селектора будет следующим:
селектор-родитель > дочерний селектор{правило CSS}

Например:
div > p {color: Red;}
<p>это абзац какого-то текста и должен быть черным стандартно</p>
<div>
<h1>Основной заголовок</h1>
<p>какой-то текст. покрашен в красный</p>
</div>
<div>
<h2>Второй заголовок</h2>
<p>еще текст</p>
</div>
<div>
<p>Этот абзац включает
<strong>
<em>теги форматирования em и strong</em>
</strong>, которые выделяют текст
<strong>жирным</strong>
и
<em>курсивом</em>.
</p>
</div>
div em {color: Red;}
p > em {color: Green;}

Дело в том, в CSS действует закон приоритета для CSS свойств, находящихся ниже.
То есть в данном случае правило дочернего селектора находится в документе
ниже, чем CSS стили, прописанные для контекстного селектора.
Сестринские элементы
Сестринские элементы (siblings) — это группа из двух и более элементов, у
которых общий родитель. Элементы не обязательно должны быть одного типа,
просто у них должен быть общий родитель.
Для работы с сестринскими элементами используется символ +.
Например, у нас есть сестринские элементы списка <li>. Мы можем
увеличить расстояние по вертикали между ними, используя следующую
конструкцию:
В HTML:
<ul>
<li>пункт 1</li>
<li>пункт 2</li>
<li>пункт 3</li>
</ul>

В CSS:
li + li {margin-top: 5em;}
Следует отметить, что если сестринские элементы однотипные, то независимо
от их количества, достаточно сложить оба два. Но если вставить между
такими однотипными элементами «чужого», то такая конструкция уже
работать не будет.
В HTML:
<ul>
<li>пункт 1</li>
<li>пункт 2</li>
<p>gbhgvufrghekag</p>
<li>пункт 3</li>
</ul>
В CSS:
li + li {margin-top: 5em;}

Однако, если сделать в сумме больше двух не однотипных слагаемых, то стиль
будет применен к последней паре, а все которые перед ним будут
игнорироваться.
Универсальный селектор
Иногда требуется установить одновременно один стиль для всех элементов вебстраницы, например, задать шрифт или начертание текста.
В этом случае поможет универсальный селектор, который соответствует любому
элементу веб-страницы.
Для обозначения универсального селектора применяется символ звёздочки (*) и в
общем случае синтаксис будет следующий:
*{список стилей}

Вообще, этот тип селекторов применяется в
основном в структурных языках вроде XML,
для обозначения имен элементов, которые
в стилях не известны.
Селекторы атрибутов
CSS позволяет создавать правила, сопоставляемые элементам с атрибутами,
которые определены в исходном коде HTML-дока. Селекторы атрибутов могут
сопостовляться в следующих случаях:
1. [att] — если для элемента установлен атрибут att независимо от значения
этого атрибута
<p align=center>Header</p>
p[align]{color: Blue;}

2. [att=val] — если значение атрибута att данного элемента в точности совпадает
с val
<h1 rel="external">Attribute Equals</h1>
h1[rel=external] { color: red; }
3. [att~=val] — если значением атрибута att является список слов, разделенных
пробелами, одно из которых в точности равно val
<h1 rel="friend external sandwich">Attribute Space Separated</h1>
h1[rel~=external] { color: red; }

4. [att|=val] — если значением атрибута att является начинающийся со слова val
список разделенных дефисом слов
<h1 rel="friend-external-sandwich">Attribute Dash Separated</h1>
h1[rel|=external] { color: red; }

5. [att*=val] — если атрибут att содержит значение val в любом месте
<h1 rel="xxxexternalxxx">Attribute Contains</h1>
h1[rel*=external] { color: red; }
6. [att^=val] — если атрибут att начинается с определенного значения val
<h1 rel="external-link yep">Attribute Begins</h1>
h1[rel^=external] { color: red; }

7. [att$=val] — если атрибут att оканчивается определенным значением val
<h1 rel="friend external">Attribute Ends</h1>
h1[rel$=external] { color: red; }

8. [att1=val1][att2^=val2] — совпадение нескольких атрибутов
<h1 rel="handsome" title="Important note">Multiple Attributes</h1>
h1[rel=handsome][title^=Important] { color: red; }
Селекторы классов
Селекторы класса позволяют задавать различные стилевые описания для
одного и того же HTML-элемента. Название класса указывается после названия
элемента и отделяется точкой.
div.red { color: #FF0000; }
div.blue { color: #0000FF; }
div.fantasy { color: brown; font-size: 24px; }
При определении с помощью универсального селектора класс не
связывается с конкретным элементом. Такой класс можно применять с
любыми элементами, для которых объявленные стилевые свойства имеют
смысл. Формально, в таком описании вместо имени элемента следует
ставить символ * , например,
*.spring { color: mediumspringgreen; }

однако на практике допустима следующая запись без * :
.spring { color: mediumspringgreen; }

Определенный в таблице стилей класс связывается с HTML-элементм
при помощи атрибута class. Для объявленных выше классов в
документе HTML (XHTML) это можно сделать, например, так:
<div class="red">Red Text</div>
ID-селекторы
Наряду с селекторами классов CSS предоставляет так же ID-селекторы или
уникальные идентификаторы. Так же как и классы, они позволяют создавать
свои собственные селекторы и применять их к любому блоку
h1#chapter7 {text-align: right;}
Или
<p id="para1">К этому параграфу будет применен стиль id para1, то есть текст
параграфа будет выровнен по центру и будет окрашен в красный цвет.</p>
#para1
{
text-align:center;
color:red;
}
В чем различие
1. Один и тот же селектор уникального идентификатора можно назначать лишь
одному на тегу в HTML-документе, а селектор класса можно назначать сразу
нескольким тегам в HTML-документе.
2. Приоритет селектора уникального идентификатора, выше приоритета селектора
класса, поэтому при вёрстке сайтов более удобно назначать шапке сайта, подвалу,
основному меню, основному контенту и сайдбару (боковой панели) уникальные
идентификаторы нежели классы (об этом более подробно вы можете узнать в
учебнике по блочной вёрстке или дивовой вёрстке сайтов).
3. В JavaScript для того чтобы управлять
элементами на странице, присваивают HTML-тегам
уникальные идентификаторы, для того, чтобы
получить к ним доступ через функцию
getElementId().
Псевдоклассы
Псевдоклассы определяют динамическое состояние элементов, которое
изменяется с помощью действий пользователя, а также положение в
дереве документа. Примером такого состояния служит текстовая ссылка,
которая меняет свой цвет при наведении на неё курсора мыши. При
использовании псевдоклассов браузер не перегружает текущий документ,
поэтому с помощью псевдоклассов можно получить разные динамические
эффекты на странице
:first-child
:link, :visited, :hover, :active, :focus
:lang(код языка)
Например:
a:link {color: Fuchsia;} - непросмотренная ссылка
a:visited {color: Green;} - просмотренная ссылка
a:hover {color: Red;} - ссылка, на которой в данный момент находится указатель
a:active {color: Aqua;} - момент когда пользователь кликает на ссылку и отпускает
кнопку мыши
Псевдоэлементы
Псевдоэлементы позволяют задать стиль логических элементов, не
определенных в дереве элементов документа, а также генерировать
содержимое, которого нет в исходном коде текста.
Замечание
Псевдоэлементы
не
могут
применяться
к
внутренним стилям, только к таблице связанных
или глобальных стилей.
Примеры псевдоэлементов:
:first-line, :first-letter
:before, :after — применяется для вставки генерируемого содержимого
<head>
<link rel="stylesheet" href="StyleSheet1.css" type="text/css">
<title>Untitled Page</title>
<style>
h1 {color: green !important}
p.new:after {
content: " - Новьё!"; /* Добавляем после текста параграфа */
}
p:first-letter {
font-family: 'Times New Roman', Times, serif; /* Гарнитура шрифта первой буквы */
font-size: 200%; /* Размер шрифта первого символа */
color: red; /* Красный цвет текста */
}
</style>
</head>
<body>
<div class="mainWrap">
<h1 style="color: Blue;">Это заголовок
первого уровня</h1>
<p class="new">Ловля льва в пустыне
с помощью метода золотого сечения.</p>
<p>Метод ловли льва простым перебором.</p>
<p>какой-то текст</p>
<ul>
<li>пункт 1</li>
<li>пункт 2</li>
</ul>
</div>
<div class="sideBar">
<h2>Это заголовок второго уровня</h2>
<p>какой-то текст</p>
</div>
</body>
Каскадирование
CSS не зря расшифровывается как каскадные таблицы стилей.
Правила каскадирования позволяют разрешать ситуации, когда
для
одного
элемента
прописано
несколько
стилей.
Каскадирование основано на присвоении некоторого приоритета
каждому правилу.
Правила каскадирования определяют следующие
приоритеты:
1. пользовательские стили, отмеченные !important
2. авторские стили, отмеченные !important
3. авторские стили
4. пользовательские стили
5. стили по умолчанию

После каскадирования правила
специфичности селекторов.

упорядочиваются

на

основе
Специфичность
Специфичность — это некоторое число в системе с неопределенно
высоким основанием, которое является отражением приоритета
какого-либо правила. Вычисляется оно на основе специфичности
каждого из селекторов, входящих в правило CSS.
Специфичность селектора разбивается на 4 группы — a b c d:






если стиль встроенный, т.е. определен как style="", то а=1
значение b равно количеству селекторов идентификаторов
значение c равно количеству классов, псевдоклассов и селекторов
атрибутов
значение d равно количеству селекторов типов
Пример вычисления специфичности:
Селектор

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

Специфичность в системе
с основанием 10

Style=""

1,0,0,0

1000

#wrapper #content {}

0,2,0,0

200

#content .datePosted {}

0,1,1,0

110

div#content {}

0,1,0,1

101

#content {}

0,1,0,0

100

p.comment .datePosted {}

0,0,2,1

21

p.comment {}

0,0,1,1

11

div p {}

0,0,0,2

2

p {}

0,0,0,1

1

Ну, а в случае равенства баллов, более сильный приоритет имеет селектор,
расположенный ниже в файле стилей.
Полезные ссылки
С помощью CSS
Перейдя по данной ссылке можно найти много полезной информации
касательных локаторов и их связи с CSS:
http://practices.issoft.by/rabota-s-lokatorami-v-selenium-webdriver/
Перейдя по этой ссылке, можно найти информацию о селекторах и попробовать
их применять:
http://www.w3schools.com/css/
Еще одна ссылка о связи локаторов и CSS
http://autotestgroup.com/ru/blog/85.html
The end

Más contenido relacionado

La actualidad más candente

Web весна 2012 лекция 8
Web весна 2012 лекция 8Web весна 2012 лекция 8
Web весна 2012 лекция 8Technopark
 
Web весна 2013 лекция 8
Web весна 2013 лекция 8Web весна 2013 лекция 8
Web весна 2013 лекция 8Technopark
 
Верстка_Лекция_3
Верстка_Лекция_3Верстка_Лекция_3
Верстка_Лекция_3itc73
 
03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTML03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTMLRoman Brovko
 
Основы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSОсновы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSDenis Latushkin
 
Как создать сайт
Как создать сайтКак создать сайт
Как создать сайтUnited Design
 
CSS Язык описания представлений
CSS Язык описания представленийCSS Язык описания представлений
CSS Язык описания представленийVasya Petrov
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция2
Верстка_Лекция2Верстка_Лекция2
Верстка_Лекция2itc73
 
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-sideTechnosphere1
 

La actualidad más candente (19)

Web весна 2012 лекция 8
Web весна 2012 лекция 8Web весна 2012 лекция 8
Web весна 2012 лекция 8
 
Web весна 2013 лекция 8
Web весна 2013 лекция 8Web весна 2013 лекция 8
Web весна 2013 лекция 8
 
Верстка_Лекция_3
Верстка_Лекция_3Верстка_Лекция_3
Верстка_Лекция_3
 
Css
CssCss
Css
 
Язык HTML
Язык HTMLЯзык HTML
Язык HTML
 
Язык HTML
Язык HTMLЯзык HTML
Язык HTML
 
03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTML03 - Web-технологии. Язык разметки HTML
03 - Web-технологии. Язык разметки HTML
 
Основы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSОсновы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSS
 
HTML
HTMLHTML
HTML
 
Lection1
Lection1Lection1
Lection1
 
Как создать сайт
Как создать сайтКак создать сайт
Как создать сайт
 
основные понятия
основные понятияосновные понятия
основные понятия
 
мова Html
мова Htmlмова Html
мова Html
 
CSS Язык описания представлений
CSS Язык описания представленийCSS Язык описания представлений
CSS Язык описания представлений
 
ппт
пптппт
ппт
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1
 
Верстка_Лекция2
Верстка_Лекция2Верстка_Лекция2
Верстка_Лекция2
 
HTML 2
HTML 2HTML 2
HTML 2
 
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-side
 

Destacado

6. таблицы и другие теги html
6. таблицы и другие теги html6. таблицы и другие теги html
6. таблицы и другие теги htmlSergei Dubrov
 
Custom Post Type and Taxonomies in WordPress 3.x
Custom Post Type and Taxonomies in WordPress 3.xCustom Post Type and Taxonomies in WordPress 3.x
Custom Post Type and Taxonomies in WordPress 3.xAmit Kumar Singh
 
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"Yandex
 
решение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте baрешение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте baISsoft
 
Пингвины из калининграда
Пингвины из калининградаПингвины из калининграда
Пингвины из калининградаAndrew Yashenko
 
CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)Zoe Gillenwater
 
Таблицы Html
Таблицы HtmlТаблицы Html
Таблицы HtmlVasya Petrov
 
Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)Zoe Gillenwater
 
Joomla Request To Response
Joomla Request To ResponseJoomla Request To Response
Joomla Request To ResponseAmit Kumar Singh
 
Organisation and navigation
Organisation and navigationOrganisation and navigation
Organisation and navigationLon Barfield
 
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For YouFL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For YouAdam Soucie
 
Тестирование требований
Тестирование требованийТестирование требований
Тестирование требованийISsoft
 
Images and Tables in HTML
Images and Tables in HTMLImages and Tables in HTML
Images and Tables in HTMLAarti P
 
WordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping ToolWordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping ToolAmit Kumar Singh
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)Zoe Gillenwater
 
Введение в веб-проектирование
Введение в веб-проектированиеВведение в веб-проектирование
Введение в веб-проектированиеMaryia Davidouskaia
 
Uwe usability evaluation
Uwe usability evaluationUwe usability evaluation
Uwe usability evaluationLon Barfield
 

Destacado (20)

6. таблицы и другие теги html
6. таблицы и другие теги html6. таблицы и другие теги html
6. таблицы и другие теги html
 
Php Security
Php SecurityPhp Security
Php Security
 
Custom Post Type and Taxonomies in WordPress 3.x
Custom Post Type and Taxonomies in WordPress 3.xCustom Post Type and Taxonomies in WordPress 3.x
Custom Post Type and Taxonomies in WordPress 3.x
 
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
 
решение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте baрешение основной проблемы Agile (scrum) проектов в контексте ba
решение основной проблемы Agile (scrum) проектов в контексте ba
 
How Joomla Works
How Joomla WorksHow Joomla Works
How Joomla Works
 
Пингвины из калининграда
Пингвины из калининградаПингвины из калининграда
Пингвины из калининграда
 
CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)
 
Таблицы Html
Таблицы HtmlТаблицы Html
Таблицы Html
 
Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)
 
Joomla Request To Response
Joomla Request To ResponseJoomla Request To Response
Joomla Request To Response
 
Organisation and navigation
Organisation and navigationOrganisation and navigation
Organisation and navigation
 
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For YouFL Blog Con 2015: How To Find The Best WordPress Plugins For You
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
 
Тестирование требований
Тестирование требованийТестирование требований
Тестирование требований
 
Box Model
Box ModelBox Model
Box Model
 
Images and Tables in HTML
Images and Tables in HTMLImages and Tables in HTML
Images and Tables in HTML
 
WordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping ToolWordPress as Rapid Prototyping Tool
WordPress as Rapid Prototyping Tool
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)
 
Введение в веб-проектирование
Введение в веб-проектированиеВведение в веб-проектирование
Введение в веб-проектирование
 
Uwe usability evaluation
Uwe usability evaluationUwe usability evaluation
Uwe usability evaluation
 

Similar a Css part2

презентация 4. введение в css
презентация 4. введение в cssпрезентация 4. введение в css
презентация 4. введение в cssRusov1
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Dmitriy Krukov
 
Основы CSS
Основы CSSОсновы CSS
Основы CSSsneemb
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Noveo
 
Trening modul2-conf1-tema5
Trening modul2-conf1-tema5Trening modul2-conf1-tema5
Trening modul2-conf1-tema5olgaoov
 
18. синтаксис css
18. синтаксис css18. синтаксис css
18. синтаксис cssSergei Dubrov
 
Лекция 10. Основы CSS.
Лекция 10. Основы CSS.Лекция 10. Основы CSS.
Лекция 10. Основы CSS.Alexey Furmanov
 
Scino: Front-end [part-1]
Scino: Front-end [part-1]Scino: Front-end [part-1]
Scino: Front-end [part-1]SCINO
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрейVlado Sudin
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрейVlado Sudin
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4Technopark
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSDataArt
 
Создание настроек темы оформления в InSales
Создание настроек темы оформления в InSalesСоздание настроек темы оформления в InSales
Создание настроек темы оформления в InSalesInSales
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1itc73
 
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилейRoman Brovko
 

Similar a Css part2 (20)

презентация 4. введение в css
презентация 4. введение в cssпрезентация 4. введение в css
презентация 4. введение в css
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4
 
Jquery
JqueryJquery
Jquery
 
Основы CSS
Основы CSSОсновы CSS
Основы CSS
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)
 
Tables frames
Tables framesTables frames
Tables frames
 
Trening modul2-conf1-tema5
Trening modul2-conf1-tema5Trening modul2-conf1-tema5
Trening modul2-conf1-tema5
 
18. синтаксис css
18. синтаксис css18. синтаксис css
18. синтаксис css
 
CSS
CSSCSS
CSS
 
Лекция 10. Основы CSS.
Лекция 10. Основы CSS.Лекция 10. Основы CSS.
Лекция 10. Основы CSS.
 
Scino: Front-end [part-1]
Scino: Front-end [part-1]Scino: Front-end [part-1]
Scino: Front-end [part-1]
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрей
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрей
 
лекц14
лекц14лекц14
лекц14
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSS
 
Создание настроек темы оформления в InSales
Создание настроек темы оформления в InSalesСоздание настроек темы оформления в InSales
Создание настроек темы оформления в InSales
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1
 
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей
 

Más de ISsoft

Sql инъекции в тестировании
Sql инъекции в тестированииSql инъекции в тестировании
Sql инъекции в тестированииISsoft
 
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...ISsoft
 
Testing of mobile apps
Testing of mobile appsTesting of mobile apps
Testing of mobile appsISsoft
 
Testing, qa, qc. what the difference
Testing, qa, qc. what the differenceTesting, qa, qc. what the difference
Testing, qa, qc. what the differenceISsoft
 
Ranorex presentation
Ranorex presentationRanorex presentation
Ranorex presentationISsoft
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...ISsoft
 
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеBdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеISsoft
 
Тестирование требований
Тестирование требованийТестирование требований
Тестирование требованийISsoft
 
Sql practise for beginners
Sql practise for beginnersSql practise for beginners
Sql practise for beginnersISsoft
 
Отдел юзабилити
Отдел юзабилитиОтдел юзабилити
Отдел юзабилитиISsoft
 
ToDoList
ToDoListToDoList
ToDoListISsoft
 
Prototype presentation
Prototype presentationPrototype presentation
Prototype presentationISsoft
 
решение одной из ключевых проблем компетенции Ba специалистов
решение одной из ключевых проблем компетенции Ba специалистоврешение одной из ключевых проблем компетенции Ba специалистов
решение одной из ключевых проблем компетенции Ba специалистовISsoft
 
Development of automated tests for ext js based web sites
Development of automated tests for ext js based web sitesDevelopment of automated tests for ext js based web sites
Development of automated tests for ext js based web sitesISsoft
 
Bdd or dsl как способ построения коммуникации на проекте
Bdd or dsl как способ построения коммуникации на проектеBdd or dsl как способ построения коммуникации на проекте
Bdd or dsl как способ построения коммуникации на проектеISsoft
 
инфотекс автоматизация тестирования
инфотекс   автоматизация тестированияинфотекс   автоматизация тестирования
инфотекс автоматизация тестированияISsoft
 
Sikuli script
Sikuli scriptSikuli script
Sikuli scriptISsoft
 
Планирование тестирования - релизные планы
Планирование тестирования - релизные планыПланирование тестирования - релизные планы
Планирование тестирования - релизные планыISsoft
 

Más de ISsoft (20)

Sql инъекции в тестировании
Sql инъекции в тестированииSql инъекции в тестировании
Sql инъекции в тестировании
 
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
 
Testing of mobile apps
Testing of mobile appsTesting of mobile apps
Testing of mobile apps
 
Testing, qa, qc. what the difference
Testing, qa, qc. what the differenceTesting, qa, qc. what the difference
Testing, qa, qc. what the difference
 
Ranorex presentation
Ranorex presentationRanorex presentation
Ranorex presentation
 
Bugs
BugsBugs
Bugs
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
 
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеBdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
 
Тестирование требований
Тестирование требованийТестирование требований
Тестирование требований
 
Sql practise for beginners
Sql practise for beginnersSql practise for beginners
Sql practise for beginners
 
Отдел юзабилити
Отдел юзабилитиОтдел юзабилити
Отдел юзабилити
 
ToDoList
ToDoListToDoList
ToDoList
 
ISTQB
ISTQBISTQB
ISTQB
 
Prototype presentation
Prototype presentationPrototype presentation
Prototype presentation
 
решение одной из ключевых проблем компетенции Ba специалистов
решение одной из ключевых проблем компетенции Ba специалистоврешение одной из ключевых проблем компетенции Ba специалистов
решение одной из ключевых проблем компетенции Ba специалистов
 
Development of automated tests for ext js based web sites
Development of automated tests for ext js based web sitesDevelopment of automated tests for ext js based web sites
Development of automated tests for ext js based web sites
 
Bdd or dsl как способ построения коммуникации на проекте
Bdd or dsl как способ построения коммуникации на проектеBdd or dsl как способ построения коммуникации на проекте
Bdd or dsl как способ построения коммуникации на проекте
 
инфотекс автоматизация тестирования
инфотекс   автоматизация тестированияинфотекс   автоматизация тестирования
инфотекс автоматизация тестирования
 
Sikuli script
Sikuli scriptSikuli script
Sikuli script
 
Планирование тестирования - релизные планы
Планирование тестирования - релизные планыПланирование тестирования - релизные планы
Планирование тестирования - релизные планы
 

Css part2

  • 1.
  • 2. Наследование Суть наследования состоит в том, что стили, присвоенные некоторому элементу, наследуются всеми потомками (вложенными элементами), если они не переопределены явно. Наследование позволяет сократить таблицу CSS. Но в то же время если стилей много, то отследить какой элемент установил некоторое свойство, становится довольно сложно.
  • 3. Дерево <html> <head> <title>Untitled Page</title> </head> <body> <div class = "mainWrap"> <h1>Основной заголовок</h1> <p>какой-то текст</p> <ul> <li>пункт 1</li> <li>пункт 2</li> </ul> </div> <div class = "sideBar"> <h2>Второй заголовок</h2> <p>еще текст</p> </div> </body> </html>
  • 4. Предки и потомки Элементы, которые содержат другие, являются предками (ancestor) по отношению к во всем вложенным в него. Вложенные в свою очередь являются его потомками (descendant). Каждый предок может иметь неограниченное число потомков.
  • 5. Селектор потомков состоит из двух или более селекторов, разделенных пробелом. Такие селекторы называются контекстными. cелектор-предок селектор-потомок … селектор-потомок потомка{правило CSS} Например: В HTML: <h1>Это заголовок <em>для предков</em> потомков</h1> В CSS: h1 em { color: Aqua; } Результат в браузере:
  • 6. Отметим, что при такой записи стиль будет применяться к последнему тегу в списке и ко всем его потомкам: В HTML: <body> Результат в браузере: <div> <p> <span>Should <i>be</i> green</span> </p> </div> </body> В CSS: body div p span { color: Green;} В нашем примере текст, выделенный курсивом, так же зеленого цвета.
  • 7. Бывает, что при разработке таблицы стилей неизвестно, какой элемент будет размещен внутри какого. В таком случае используется символ *. С обеих сторон обязательно должны ставится пробелы. * заменяет любой тег, но только один. В нашем примере * заменила тег div: В HTML: <body> <h1>Это заголовок <em>для предков</em> потомков</h1> <span>Should be not green</span> <div> <span>Should be green</span> <p> <span>Should <i>be</i> green</span> </p> </div> В CSS: body * span { color:Green; } </body> Примечание: Если нам нужно найти все теги между body и span, то * не ставится, а остается только пробел.
  • 8. Родители и дочери Родитель (parent) — это непосредственный предок (предок первого уровня) элемента. И наоборот, непосредственный потомок (потомок первого уровня) называется дочерним элементом (child).
  • 9. В этом случае синтаксис написания CSS селектора будет следующим: селектор-родитель > дочерний селектор{правило CSS} Например: div > p {color: Red;} <p>это абзац какого-то текста и должен быть черным стандартно</p> <div> <h1>Основной заголовок</h1> <p>какой-то текст. покрашен в красный</p> </div> <div> <h2>Второй заголовок</h2> <p>еще текст</p> </div>
  • 10. <div> <p>Этот абзац включает <strong> <em>теги форматирования em и strong</em> </strong>, которые выделяют текст <strong>жирным</strong> и <em>курсивом</em>. </p> </div> div em {color: Red;} p > em {color: Green;} Дело в том, в CSS действует закон приоритета для CSS свойств, находящихся ниже. То есть в данном случае правило дочернего селектора находится в документе ниже, чем CSS стили, прописанные для контекстного селектора.
  • 11. Сестринские элементы Сестринские элементы (siblings) — это группа из двух и более элементов, у которых общий родитель. Элементы не обязательно должны быть одного типа, просто у них должен быть общий родитель.
  • 12. Для работы с сестринскими элементами используется символ +. Например, у нас есть сестринские элементы списка <li>. Мы можем увеличить расстояние по вертикали между ними, используя следующую конструкцию: В HTML: <ul> <li>пункт 1</li> <li>пункт 2</li> <li>пункт 3</li> </ul> В CSS: li + li {margin-top: 5em;}
  • 13. Следует отметить, что если сестринские элементы однотипные, то независимо от их количества, достаточно сложить оба два. Но если вставить между такими однотипными элементами «чужого», то такая конструкция уже работать не будет. В HTML: <ul> <li>пункт 1</li> <li>пункт 2</li> <p>gbhgvufrghekag</p> <li>пункт 3</li> </ul> В CSS: li + li {margin-top: 5em;} Однако, если сделать в сумме больше двух не однотипных слагаемых, то стиль будет применен к последней паре, а все которые перед ним будут игнорироваться.
  • 14. Универсальный селектор Иногда требуется установить одновременно один стиль для всех элементов вебстраницы, например, задать шрифт или начертание текста. В этом случае поможет универсальный селектор, который соответствует любому элементу веб-страницы. Для обозначения универсального селектора применяется символ звёздочки (*) и в общем случае синтаксис будет следующий: *{список стилей} Вообще, этот тип селекторов применяется в основном в структурных языках вроде XML, для обозначения имен элементов, которые в стилях не известны.
  • 15. Селекторы атрибутов CSS позволяет создавать правила, сопоставляемые элементам с атрибутами, которые определены в исходном коде HTML-дока. Селекторы атрибутов могут сопостовляться в следующих случаях: 1. [att] — если для элемента установлен атрибут att независимо от значения этого атрибута <p align=center>Header</p> p[align]{color: Blue;} 2. [att=val] — если значение атрибута att данного элемента в точности совпадает с val <h1 rel="external">Attribute Equals</h1> h1[rel=external] { color: red; }
  • 16. 3. [att~=val] — если значением атрибута att является список слов, разделенных пробелами, одно из которых в точности равно val <h1 rel="friend external sandwich">Attribute Space Separated</h1> h1[rel~=external] { color: red; } 4. [att|=val] — если значением атрибута att является начинающийся со слова val список разделенных дефисом слов <h1 rel="friend-external-sandwich">Attribute Dash Separated</h1> h1[rel|=external] { color: red; } 5. [att*=val] — если атрибут att содержит значение val в любом месте <h1 rel="xxxexternalxxx">Attribute Contains</h1> h1[rel*=external] { color: red; }
  • 17. 6. [att^=val] — если атрибут att начинается с определенного значения val <h1 rel="external-link yep">Attribute Begins</h1> h1[rel^=external] { color: red; } 7. [att$=val] — если атрибут att оканчивается определенным значением val <h1 rel="friend external">Attribute Ends</h1> h1[rel$=external] { color: red; } 8. [att1=val1][att2^=val2] — совпадение нескольких атрибутов <h1 rel="handsome" title="Important note">Multiple Attributes</h1> h1[rel=handsome][title^=Important] { color: red; }
  • 18. Селекторы классов Селекторы класса позволяют задавать различные стилевые описания для одного и того же HTML-элемента. Название класса указывается после названия элемента и отделяется точкой. div.red { color: #FF0000; } div.blue { color: #0000FF; } div.fantasy { color: brown; font-size: 24px; }
  • 19. При определении с помощью универсального селектора класс не связывается с конкретным элементом. Такой класс можно применять с любыми элементами, для которых объявленные стилевые свойства имеют смысл. Формально, в таком описании вместо имени элемента следует ставить символ * , например, *.spring { color: mediumspringgreen; } однако на практике допустима следующая запись без * : .spring { color: mediumspringgreen; } Определенный в таблице стилей класс связывается с HTML-элементм при помощи атрибута class. Для объявленных выше классов в документе HTML (XHTML) это можно сделать, например, так: <div class="red">Red Text</div>
  • 20. ID-селекторы Наряду с селекторами классов CSS предоставляет так же ID-селекторы или уникальные идентификаторы. Так же как и классы, они позволяют создавать свои собственные селекторы и применять их к любому блоку h1#chapter7 {text-align: right;} Или <p id="para1">К этому параграфу будет применен стиль id para1, то есть текст параграфа будет выровнен по центру и будет окрашен в красный цвет.</p> #para1 { text-align:center; color:red; }
  • 21. В чем различие 1. Один и тот же селектор уникального идентификатора можно назначать лишь одному на тегу в HTML-документе, а селектор класса можно назначать сразу нескольким тегам в HTML-документе. 2. Приоритет селектора уникального идентификатора, выше приоритета селектора класса, поэтому при вёрстке сайтов более удобно назначать шапке сайта, подвалу, основному меню, основному контенту и сайдбару (боковой панели) уникальные идентификаторы нежели классы (об этом более подробно вы можете узнать в учебнике по блочной вёрстке или дивовой вёрстке сайтов). 3. В JavaScript для того чтобы управлять элементами на странице, присваивают HTML-тегам уникальные идентификаторы, для того, чтобы получить к ним доступ через функцию getElementId().
  • 22. Псевдоклассы Псевдоклассы определяют динамическое состояние элементов, которое изменяется с помощью действий пользователя, а также положение в дереве документа. Примером такого состояния служит текстовая ссылка, которая меняет свой цвет при наведении на неё курсора мыши. При использовании псевдоклассов браузер не перегружает текущий документ, поэтому с помощью псевдоклассов можно получить разные динамические эффекты на странице :first-child :link, :visited, :hover, :active, :focus :lang(код языка) Например: a:link {color: Fuchsia;} - непросмотренная ссылка a:visited {color: Green;} - просмотренная ссылка a:hover {color: Red;} - ссылка, на которой в данный момент находится указатель a:active {color: Aqua;} - момент когда пользователь кликает на ссылку и отпускает кнопку мыши
  • 23. Псевдоэлементы Псевдоэлементы позволяют задать стиль логических элементов, не определенных в дереве элементов документа, а также генерировать содержимое, которого нет в исходном коде текста. Замечание Псевдоэлементы не могут применяться к внутренним стилям, только к таблице связанных или глобальных стилей. Примеры псевдоэлементов: :first-line, :first-letter :before, :after — применяется для вставки генерируемого содержимого
  • 24. <head> <link rel="stylesheet" href="StyleSheet1.css" type="text/css"> <title>Untitled Page</title> <style> h1 {color: green !important} p.new:after { content: " - Новьё!"; /* Добавляем после текста параграфа */ } p:first-letter { font-family: 'Times New Roman', Times, serif; /* Гарнитура шрифта первой буквы */ font-size: 200%; /* Размер шрифта первого символа */ color: red; /* Красный цвет текста */ } </style> </head> <body> <div class="mainWrap"> <h1 style="color: Blue;">Это заголовок первого уровня</h1> <p class="new">Ловля льва в пустыне с помощью метода золотого сечения.</p> <p>Метод ловли льва простым перебором.</p> <p>какой-то текст</p> <ul> <li>пункт 1</li> <li>пункт 2</li> </ul> </div> <div class="sideBar"> <h2>Это заголовок второго уровня</h2> <p>какой-то текст</p> </div> </body>
  • 25. Каскадирование CSS не зря расшифровывается как каскадные таблицы стилей. Правила каскадирования позволяют разрешать ситуации, когда для одного элемента прописано несколько стилей. Каскадирование основано на присвоении некоторого приоритета каждому правилу. Правила каскадирования определяют следующие приоритеты: 1. пользовательские стили, отмеченные !important 2. авторские стили, отмеченные !important 3. авторские стили 4. пользовательские стили 5. стили по умолчанию После каскадирования правила специфичности селекторов. упорядочиваются на основе
  • 26. Специфичность Специфичность — это некоторое число в системе с неопределенно высоким основанием, которое является отражением приоритета какого-либо правила. Вычисляется оно на основе специфичности каждого из селекторов, входящих в правило CSS. Специфичность селектора разбивается на 4 группы — a b c d:     если стиль встроенный, т.е. определен как style="", то а=1 значение b равно количеству селекторов идентификаторов значение c равно количеству классов, псевдоклассов и селекторов атрибутов значение d равно количеству селекторов типов
  • 27. Пример вычисления специфичности: Селектор Специфичность Специфичность в системе с основанием 10 Style="" 1,0,0,0 1000 #wrapper #content {} 0,2,0,0 200 #content .datePosted {} 0,1,1,0 110 div#content {} 0,1,0,1 101 #content {} 0,1,0,0 100 p.comment .datePosted {} 0,0,2,1 21 p.comment {} 0,0,1,1 11 div p {} 0,0,0,2 2 p {} 0,0,0,1 1 Ну, а в случае равенства баллов, более сильный приоритет имеет селектор, расположенный ниже в файле стилей.
  • 28. Полезные ссылки С помощью CSS Перейдя по данной ссылке можно найти много полезной информации касательных локаторов и их связи с CSS: http://practices.issoft.by/rabota-s-lokatorami-v-selenium-webdriver/ Перейдя по этой ссылке, можно найти информацию о селекторах и попробовать их применять: http://www.w3schools.com/css/ Еще одна ссылка о связи локаторов и CSS http://autotestgroup.com/ru/blog/85.html