Лекция css - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс...

35
Лекция 8. Использование CSS Донецкий национальный технический университет Факультет компьютерных наук и технологий Кафедра компьютерной инженерии Иваница Сергей Васильевич, старший преподаватель кафедры компьютерной инженерии http://masters.donntu.org/ivanitsa

Upload: others

Post on 29-Jul-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

Лекция 8. Использование CSS

Донецкий национальный технический университет Факультет компьютерных наук и технологий

Кафедра компьютерной инженерии

Иваница Сергей Васильевич, старший преподаватель кафедры компьютерной инженерии

http://masters.donntu.org/ivanitsa

Page 2: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

2

1. Как мы усвоили предыдущую лекцию?

2. Базовый синтаксис CSS (особенности).

3. Виды селекторов CSS:

селекторы тегов;

классы;

идентификаторы;

дочерние селекторы;

соседние селекторы;

селекторы атрибутов.

4. Псевдоклассы CSS:

основные понятия;

псевдоклассы для составных элементов.

Курс «Интернет-технологии». Лекция 8. Использование CSS

6. CSS: блочная модель:

общие понятия;

поля;

отступы;

рамка;

позиционирование;

абсолютное позиционирование;

многослойность;

относительное позиционирование.

8. Выравнивание и обтекание в CSS.

9. Литература для самостоятельного изучения CSS.

Page 3: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

3

1-е задание: К документу HTML

одновременно подключено два файла — style1.css и style2.css. В style2.css первой строкой импортируется файл style3.css. В файле style1.css цвет текста задается зеленым, в style2.css — красным, а в style3.css — синим. Какой цвет текста будет на странице?

1. Зеленый. 2. Красный. 3. Синий. 4. Черный. 5. Установленный

в браузере по умолчанию.

2-е задание: В какой строке

содержится ошибка?

1. p { text-align: center; color: #000000 } 2. div { color: red; font-size: 11pt; } 3. title { color: #fc0; margin: 10px; } 4. p { color: green; color; } 5. html { float: left; }

3-е задание: Какая

строка корректная?

1. body:color=black 2. body{ color:black } 3. { body;color:black } 4. { body:color=black } 5. body { color=black; }

Курс «Интернет-технологии». Лекция 8. Использование CSS

Page 4: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

4

1-е задание: К документу HTML

одновременно подключено два файла — style1.css и style2.css. В style2.css первой строкой импортируется файл style3.css. В файле style1.css цвет текста задается зеленым, в style2.css — красным, а в style3.css — синим. Какой цвет текста будет на странице?

1. Зеленый.

2. Красный. 3. Синий. 4. Черный. 5. Установленный

в браузере по умолчанию.

2-е задание: В какой строке

содержится ошибка?

1. p { text-align: center; color: #000000 } 2. div { color: red; font-size: 11pt; } 3. title { color: #fc0; margin: 10px; }

4. p { color: green; color; } 5. html { float: left; }

3-е задание: Какая

строка корректная?

1. body:color=black

2. body{ color:black } 3. { body;color:black } 4. { body:color=black } 5. body { color=black; }

Курс «Интернет-технологии». Лекция 8. Использование CSS

Page 5: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

5 Курс «Интернет-технологии». Лекция 8. Использование CSS

CSS не чувствителен к регистру, переносу строк, пробелам и символам табуляции, поэтому форма записи зависит от желания разработчика.

Формы записи: Расширенная Компактная

Разные значения у одного свойства С комментариями

применяется нижнее свойство

Page 6: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

6 Курс «Интернет-технологии». Лекция 8. Использование CSS

Тег { свойство1: значение [; свойство2: значение; …] }

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

Page 7: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

7 Курс «Интернет-технологии». Лекция 8. Использование CSS

Тег.Имя_класса { свойство1: значение [; свойство2: значение; …] }

Классы применяются, когда необходимо определить стиль для конкретного элемента веб-страницы или задать разные стили для одного тега:

Чтобы указать в коде HTML, что тег используется с определенным классом, к тегу добавляется атрибут class = "Имя_класса"

имена классов должны начинаться с латинского символа и

могут содержать в себе символ дефиса и

подчеркивания

сss

html

Page 8: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

8 Курс «Интернет-технологии». Лекция 8. Использование CSS

.Имя_класса { свойство1: значение [; свойство2: значение; …] }

Можно, также, использовать классы и без указания тега:

При такой записи класс можно применять к любому тегу.

сss

html

к любому тегу одновременно можно добавить несколько классов, перечисляя их

в атрибуте class через пробел.

Page 9: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

9 Курс «Интернет-технологии». Лекция 8. Использование CSS

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

Page 10: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

10 Курс «Интернет-технологии». Лекция 8. Использование CSS

Идентификатор (ID селектор) определяет уникальное имя элемента, которое используется для изменения его стиля и обращения к нему через скрипты.

#Имя_идентификатора { свойство1: значение [; свойство2: значение; …] }

В отличие от классов идентификаторы должны быть уникальны, т. е. встречаться в коде документа только один раз.

Обращение к идентификатору происходит аналогично классам, но в качестве

ключевого слова у тега используется атрибут id = "Имя_идентификатора" сss

html

Page 11: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

11 Курс «Интернет-технологии». Лекция 8. Использование CSS

Как и при использовании классов, идентификаторы можно применять к конкретному тегу:

Тег#Имя_идентификатора { свойство1: значение [; свойство2: значение; …] }

сss

html

Page 12: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

12 Курс «Интернет-технологии». Лекция 8. Использование CSS

Контекстный селектор состоит из простых селекторов разделенных пробелом:

Тег1 Тег2 { свойство1: значение [; свойство2: значение; …] }

сss

html

В этом случае стиль будет применяться к Тегу2 если он – потомок Тега1.

Page 13: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

13 Курс «Интернет-технологии». Лекция 8. Использование CSS

Дочерний селектор – селектор, который непосредственно находится внутри родительского элемента:

Тег1 > Тег2 { свойство1: значение [; свойство2: значение; …] }

сss

html

В этом случае стиль будет применяться к Тегу2 если Тег1 – его родитель.

Page 14: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

14 Курс «Интернет-технологии». Лекция 8. Использование CSS

Соседние селекторы – селекторы, которые в дереве элементов являются смежными (соседними) элементами.

Тег1 + Тег2 { свойство1: значение [; свойство2: значение; …] }

сss

html

В этом случае стиль будет применяться к Тегу2 только в том случае, если он является смежным для Тега1 и следует сразу после него.

Page 15: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

15 Курс «Интернет-технологии». Лекция 8. Использование CSS

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

[атрибут] { Описание правил стиля } Селектор[атрибут] { Описание правил стиля }

Простой селектор атрибута устанавливает стиль, если задан специфичный атрибут:

Атрибут со значением устанавливает стиль, если задано определенное значение специфичного атрибута:

[атрибут ="значение"] { Описание правил стиля } Селектор[атрибут ="значение"] { Описание правил стиля }

Значение атрибута начинается с определенного текста. Устанавливает стиль для элемента, если значение атрибута тега начинается с указанного текста.

[атрибут ^="значение"] { Описание правил стиля } Селектор[атрибут ^="значение"] { Описание правил стиля }

cтиль применяется к тем тегам, внутри которых добавлен указанный атрибут

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

Page 16: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

16 Курс «Интернет-технологии». Лекция 8. Использование CSS

Значение атрибута оканчивается определенным текстом. Устанавливает стиль для элемента в том случае, если значение атрибута оканчивается указанным текстом.

[атрибут $= "значение"] { Описание правил стиля } Селектор[атрибут $= "значение"] { Описание правил стиля }

Значение атрибута содержит указанный текст:

[атрибут *= "значение"] { Описание правил стиля } Селектор[атрибут *= "значение"] { Описание правил стиля }

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

[атрибут ~= "значение"] { Описание правил стиля } Селектор[атрибут ~= "значение"] { Описание правил стиля }

Page 17: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

17 Курс «Интернет-технологии». Лекция 8. Использование CSS

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

[атрибут |= "значение"] { Описание правил стиля } Селектор[атрибут |= "значение"] { Описание правил стиля }

Комбинирование атрибутов. Все перечисленные методы можно комбинировать между собой, определяя стиль для элементов, которые содержат два и более атрибута. В подобных случаях квадратные скобки идут подряд:

[атрибут1="значение1"][атрибут2="значение2"] { … } Селектор[атрибут1="значение1"][атрибут2="значение2"] { … }

Page 18: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

18 Курс «Интернет-технологии». Лекция 8. Использование CSS

2. Применение стиля (текст зеленого цвета) к заголовку h3, если

одно из имен класса у элемента-предка задано как «block».

1. Применение стиля к ссылкам, в атрибуте href которых

встречается слово «mysite».

3. Применение стиля к внешним ссылкам (ссылки с абсолютной

адресацией):

Page 19: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

19 Курс «Интернет-технологии». Лекция 8. Использование CSS

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

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

на неё курсора мыши

Селектор:Псевдокласс { свойство1: значение [; свойство2: значение; …] }

Условно все псевдоклассы можно разделить на три группы:

1. Определяющие состояние элементов;

2. Имеющие отношение к дереву элементов (:first-child – применяется к первому дочернему элементу селектора);

3. Указывающие язык текста (:lang – определяет язык, который используется в документе или его фрагменте).

Page 20: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

20 Курс «Интернет-технологии». Лекция 8. Использование CSS

псевдокласс :hover можно добавлять и к другим элементам документа: например, чтобы в таблице строки меняли свой цвет при наведении на

них курсора мыши

:link – ссылки на непосещенные страницы. a:link { color: blue; }

:visited – ссылки на уже посещенные страницы a:visited { color: #660099;}

:active – используется для активных ссылок. a:active { background-color: #FFFF00; }

:hover – ссылка, над которой находится указатель мыши. a:hover { color: red;}

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

Page 21: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

21 Курс «Интернет-технологии». Лекция 8. Использование CSS

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

Свойства блока настраиваются с помощью свойств CSS. В соответствии с блочной моделью содержимое (контент) окружено:

• полем (padding);

• рамкой (border);

• отступом (margin).

Page 22: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

Поля (padding) задают внутреннее расстояние между рамкой и содержимым элемента.

Поля могут задаваться как отдельно для каждой из сторон (padding-top, padding-right, padding-bottom, padding-left), так и общим единым свойством padding. p { padding-top: 100px;

padding-right: 200px;

padding-bottom: 300px;

padding-left: 400px;

}

p { padding: 100px 200px 300px 400px; }

22 Курс «Интернет-технологии». Лекция 8. Использование CSS

Величину полей можно указывать в пикселах (px), процентах (%) или других допустимых для CSS единицах.

Page 23: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

23 Курс «Интернет-технологии». Лекция 8. Использование CSS

Величину полей можно указывать в пикселах (px), процентах (%) или других допустимых для CSS единицах.

Отступы (margin) устанавливают расстояния от каждого края элемента. Отступом является пространство от границы текущего элемента до внутренней границы его родительского элемента.

.sample {

margin-top: 100px;

margin-right: 200px;

margin-bottom: 50px;

margin-left: 100px;

}

.sample { margin: 100px 200px 50px 100px; }

Значение может быть как положительным, так и отрицательным числом.

Page 24: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

24 Курс «Интернет-технологии». Лекция 8. Использование CSS

Рамка (border) – обрамляет элемент и может служить как для отделения двух объектов, так и в качестве декоративного элемента.

border-width – толщина рамки, значения thin, medium и thick, или числовое значение в пикселах. border-style – стиль рамки. border-color – цвет рамки.

p { border-width: 1px;

border-style: solid;

border-color: blue;

}

p { border: 1px blue; }

Page 25: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

25 Курс «Интернет-технологии». Лекция 8. Использование CSS

Различают такие способы позиционирования в CSS в зависимости от значения свойства position:

• static – значение по умолчанию; • relative – относительное позиционирование; • absolute – абсолютное позиционирование; • fixed – позиционирование относительно окна браузера.

Основной принцип позиционирования в CSS: любой элемент может быть расположен где угодно!

позиционирование в CSS — это намного проще, чем использовать таблицы, прозрачные

изображения или какие-то другие подходы

Page 26: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

26 Курс «Интернет-технологии». Лекция 8. Использование CSS

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

position: absolute

Положение элемента задается свойствами left, top, right и bottom, также на положение влияет значение свойства position родительского элемента: • если у родителя значение position установлено как static или

родителя нет, то отсчет координат ведется от края окна браузера. • если у родителя значение position задано как fixed, relative или

absolute, то отсчет координат ведется от края родительского элемента.

Page 27: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

27 Курс «Интернет-технологии». Лекция 8. Использование CSS

#box1 {

position:absolute;

top: 50px;

left: 50px }

#box2 {

position:absolute;

top: 50px;

right: 50px }

#box3 {

position:absolute;

bottom: 50px;

right: 50px }

#box4 {

position:absolute;

bottom: 50px;

left: 50px }

Page 28: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

28 Курс «Интернет-технологии». Лекция 8. Использование CSS

Использование многослойности обусловлено возможностью «наслоения» элементов с учетом принципов позиционирования в CSS. Порядок перекрытия элементов друг другом реализуется с помощью свойства z-index.

Элемент с большим значением этого свойства перекрывает элемент с меньшим номером.

Page 29: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

29 Курс «Интернет-технологии». Лекция 8. Использование CSS

position: relative

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

Задание параметров left, right, top и bottom указывает на отступы от соседнего (предыдущего) элемента.

Особенности:

1. Относительное позиционирование также допускает использование z-index, чаще в сего – при сочетании абсолютно и относительно расположенных элементов.

2. Все дочерние элементы относительно позиционированного элемента могут быть позиционированы абсолютно.

Page 30: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

30 Курс «Интернет-технологии». Лекция 8. Использование CSS

Родительский элемент имеет относительное

позиционирование, дочерние – абсолютное

Родительский элемент имеет статическое (static)

позиционирование, дочерние – абсолютное.

Page 31: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

31 Курс «Интернет-технологии». Лекция 8. Использование CSS

Элемент может выравниваться вправо или влево с помощью свойства float. Допустимые значения:

• left – выравнивает элемент по левому краю, а все остальные элементы обтекают его по правой стороне.

• right – выравнивает элемент по правому краю, а все остальные элементы обтекают его по левой стороне.

• none – обтекание элемента не задается. Фактически, это свойство реализует обтекание элементов.

Page 32: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

32 Курс «Интернет-технологии». Лекция 8. Использование CSS

<div id="column1"> … </div>

<div id="column2"> … </div>

<div id="column3"> … </div>

#column1 {

float: left;

width: 33%

}

#column2 {

float: left;

width: 33%

}

#column3 {

float: left;

width: 33%

}

Page 33: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

33 Курс «Интернет-технологии». Лекция 8. Использование CSS

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

Это свойство clear, которое может принимать значения left, right, both и none, соответственно задающие стороны, которые блокируются для обтекания.

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

Page 34: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

34 Курс «Интернет-технологии». Лекция 8. Использование CSS

<div id="column1"> … </div>

<div id="column2"> … </div>

<div id="column3"> … </div>

<div id="footer"> … </div>

#column1 {

float: left;

width: 33% }

#column2 {

float: left;

width: 33% }

#column3 {

float: left;

width: 33% }

#footer {

clear: both; }

Page 35: Лекция CSS - donntu.orgmasters.donntu.org/ivanitsa/materials/it/2018_lec_8.pdf · 10 Курс «Интернет-технологии». Лекция 8. Использование

35 Курс «Интернет-технологии». Лекция 8. Использование CSS

Ресурсы: http://www.w3schools.com/css/default.asp

http://htmlbook.ru/css http://htmlbook.ru/samcss

Книги:

2011

2005

2012