ݺߣ

ݺߣShare a Scribd company logo
Box model, display & position
Стажировка HTML5
Света Шарипова
Box-model
ШИРИНА
Высота
2
Задание
На codepen создайте блок с общей шириной и общей высотой по 100px,
любым заметным фоном, паддингом 10px и бордером 2px
Посмотрите box-model этого блока в инспекторе
3
Должно получиться:
.block {
width: 76px;
height: 76px;
padding: 10px;
border: 2px solid;
background: grey;
}
<div class="block"></div>
4
Box-sizing
content-box
border-box
5
Вложенные элементы занимают 100% ширины,
но padding в эту ширину не входит
.block {
width: 76px;
height: 76px;
padding: 10px;
border: 2px solid;
background: grey;
}
<div class="block">
<div class="block__element">
</div>
</div>
.block__element {
width: 100%;
height: 100%;
background: white;
}
6
Задание
Влияет ли border-box на вложенный элемент?
а) Если использовать border-box, то вложенный элемент займет всю ширину
родителя, в том числе padding
b) Если использовать border-box, то вложенный элемент займет всю ширину
родителя, но не padding
Проверьте на codepen
7
Задание
Влияет ли border-box на вложенный элемент?
а) Если использовать border-box, то вложенный элемент займет всю ширину
родителя, в том числе padding
b) Если использовать border-box, то вложенный элемент займет всю ширину
родителя, но не padding
8
В чем разница между инлайн и блочными тегами?
1. Расположение
2. Ширина
3. Пробелы
4. Margin
9
Часто используемые значения display:
none
block
inline-block
inline
table
table-cell
...
10
Display: inline-block;
1. Расположение (как у inline элемента)
2. Ширина (по дефолту как у inline, но может
быть задана любая другая, как у block)
3. Пробелы (как у inline)
4. Margin (как у block)
11
Display: inline-block - несколько элементов с разной
высотой и разным количеством контента
12
Вертикальное выравнивание по дефолту - baseline
Vertical-align фикс для inline-block:
vertical-align: bottom;
13
vertical-align: top;
vertical-align: middle;
Margin collapse блочных элементов
1. Margin collapse внутри родительского блока
(лечится добавлением padding’а, clearfix, overflow: auto родительскому
блоку)
1. Margin collapse нескольких блочных элементов, расположенных подряд
14
Margin collapse блочных элементов
body {
background: #aaa;
}
.block {
background: #f1652a;
}
.block__element {
width: 100px;
height: 100px;
margin: 20px;
border: 1px solid;
}
<div class="block">
<div class="block__element"></div>
<div class="block__element"></div>
</div>
15
Margin collapse отсутствует у inline-block
body {
background: #aaa;
}
.block {
background: #f1652a;
}
.block__element {
width: 100px;
height: 100px;
margin: 20px;
border: 1px solid;
display: inline-block;
}
<div class="block">
<div class="block__element"></div>
<div class="block__element"></div>
</div>
16
Нормальный поток (normal flow)
- то, как в браузере отображаются элементы
относительно друг друга.
По умолчанию, родительский элемент принимает высоту
своих дочерних элементов
17
Элемент выбивается из потока, если:
К нему применяется:
1. float
2. отрицательный margin (в случае
когда возможен margin collapse)
3. position: absolute; или position: fixed;
4. display: none;
18
Выбившийся из потока элемент не влияет на высоту
родителя
.block {
background: gray;
width: 200px;
padding: 30px;
}
.block__element {
width: 200px;
height: 100px;
background: #f1652a;
}
19
.block__element {
float: left;
}
В потоке:
Clearfix
Для случая с float проблему c высотой родителя можно решить,
добавив ему clearfix
20
.block::after {
content: ' ';
display: table;
clear: both;
}
Скрываем элемент:
display vs. visibility
21
.block__element {
display: none;
}
.block__element {
visibility: hidden;
}
position
static - по дефолту
relative
absolute
fixed
22
position: relative
Элемент не выбивается из потока,
но смещается относительно своего нормального положения:
23
.block__element {
position: relative;
left: 100px;
}
position: absolute
Элемент выбивается из потока.
Новое положение рассчитывается относительно окна браузера
или родительского элемента с position: relative;
24
.block__element {
position: absolute;
left: 100px;
top: 0;
}
.block {
position: relative;
}
.block {
position: static;
}
position: fixed
Элемент выбивается из потока.
Новое положение рассчитывается относительно окна браузера.
Блок остается на месте при скролле.
25
.block__element {
position: fixed;
left: 100px;
top: 0;
}
Полезные ссылки:
Clearfix:
http://nicolasgallagher.com/micro-clearfix-hack/
26

More Related Content

Viewers also liked (19)

Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)
Noveo
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - Graphics
Noveo
Webinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в DelphiWebinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в Delphi
Denis Vasilyev
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)
Noveo
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)
Noveo
Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)
Noveo
Android - 05 - Android basics
Android - 05 - Android basicsAndroid - 05 - Android basics
Android - 05 - Android basics
Noveo
Lec 10
Lec 10Lec 10
Lec 10
Alexander Rusin
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
Noveo
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Denis Vasilyev
Thread
ThreadThread
Thread
Alexander Rusin
Canvas
CanvasCanvas
Canvas
Oleksandr Milkovskyi
Lec 13
Lec 13Lec 13
Lec 13
Alexander Rusin
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++
Denis Vasilyev
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложенийWebinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Denis Vasilyev
DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)
DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)
DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)
Антон Звонов
Lec 12
Lec 12Lec 12
Lec 12
Alexander Rusin
Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)
Noveo
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)
Noveo
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)
Noveo
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - Graphics
Noveo
Webinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в DelphiWebinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в Delphi
Denis Vasilyev
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)
Noveo
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)
Noveo
Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)
Noveo
Android - 05 - Android basics
Android - 05 - Android basicsAndroid - 05 - Android basics
Android - 05 - Android basics
Noveo
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
Noveo
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Denis Vasilyev
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++
Denis Vasilyev
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложенийWebinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Denis Vasilyev
DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)
DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)
DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)
Антон Звонов
Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)
Noveo
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)
Noveo

Similar to Box model, display and position (HTML5 тема 07 - box model, display position) (20)

Сетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостаткиСетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостатки
UXkontur
Сетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостаткиСетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостатки
Vasiliy Aksyonov
Сетки для всего или как использовать чужие недостатки (Василий Аксенов)
Сетки для всего или как использовать чужие недостатки (Василий Аксенов)Сетки для всего или как использовать чужие недостатки (Василий Аксенов)
Сетки для всего или как использовать чужие недостатки (Василий Аксенов)
Ontico
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей
Roman Brovko
всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта  всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта
Olga Pirozhenko
Михаил Черномордиков Ie9
Михаил Черномордиков   Ie9Михаил Черномордиков   Ie9
Михаил Черномордиков Ie9
Siel01
Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.
DataArt
004 divs&amp;spans (presentation)
004 divs&amp;spans (presentation)004 divs&amp;spans (presentation)
004 divs&amp;spans (presentation)
sivorka
МАПО Лаба №1
МАПО Лаба №1МАПО Лаба №1
МАПО Лаба №1
Олег Гудаев
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
it-people
Принципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсовПринципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсов
Vasiliy Aksyonov
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4
Technopark
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-side
Technosphere1
презентация 6
презентация 6презентация 6
презентация 6
Rusov1
Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"
Yandex
Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...
Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...
Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...
Ontico
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
Igor Sazonov
Bootstrap 3
Bootstrap 3Bootstrap 3
Bootstrap 3
The NGO Development Center
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»
Yandex
Сетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостаткиСетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостатки
UXkontur
Сетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостаткиСетки для всего или как использовать чужие недостатки
Сетки для всего или как использовать чужие недостатки
Vasiliy Aksyonov
Сетки для всего или как использовать чужие недостатки (Василий Аксенов)
Сетки для всего или как использовать чужие недостатки (Василий Аксенов)Сетки для всего или как использовать чужие недостатки (Василий Аксенов)
Сетки для всего или как использовать чужие недостатки (Василий Аксенов)
Ontico
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей
Roman Brovko
всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта  всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта
Olga Pirozhenko
Михаил Черномордиков Ie9
Михаил Черномордиков   Ie9Михаил Черномордиков   Ie9
Михаил Черномордиков Ie9
Siel01
Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.
DataArt
004 divs&amp;spans (presentation)
004 divs&amp;spans (presentation)004 divs&amp;spans (presentation)
004 divs&amp;spans (presentation)
sivorka
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
it-people
Принципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсовПринципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсов
Vasiliy Aksyonov
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4
Technopark
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-side
Technosphere1
презентация 6
презентация 6презентация 6
презентация 6
Rusov1
Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"
Yandex
Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...
Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...
Принципы разработки поддерживаемых и гибких интерфейсов / Василий Аксёнов (Ян...
Ontico
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
Igor Sazonov
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»
Yandex

More from Noveo (17)

Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Noveo
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)
Noveo
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)
Noveo
Yii2
Yii2Yii2
Yii2
Noveo
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизация
Noveo
Rest
RestRest
Rest
Noveo
PHP basic
PHP basicPHP basic
PHP basic
Noveo
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
Noveo
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
Noveo
MySQL
MySQLMySQL
MySQL
Noveo
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)
Noveo
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)
Noveo
Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)
Noveo
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Noveo
XML, JSON (Lecture 11 – XML, JSON)
XML, JSON (Lecture 11 – XML, JSON)XML, JSON (Lecture 11 – XML, JSON)
XML, JSON (Lecture 11 – XML, JSON)
Noveo
Android - 16 - QR
Android - 16 - QRAndroid - 16 - QR
Android - 16 - QR
Noveo
03 коллекции
03   коллекции03   коллекции
03 коллекции
Noveo
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Noveo
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)
Noveo
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)
Noveo
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизация
Noveo
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
Noveo
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
Noveo
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)
Noveo
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)
Noveo
Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)
Noveo
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Noveo
XML, JSON (Lecture 11 – XML, JSON)
XML, JSON (Lecture 11 – XML, JSON)XML, JSON (Lecture 11 – XML, JSON)
XML, JSON (Lecture 11 – XML, JSON)
Noveo
Android - 16 - QR
Android - 16 - QRAndroid - 16 - QR
Android - 16 - QR
Noveo
03 коллекции
03   коллекции03   коллекции
03 коллекции
Noveo

Box model, display and position (HTML5 тема 07 - box model, display position)

  • 1. Box model, display & position Стажировка HTML5 Света Шарипова
  • 3. Задание На codepen создайте блок с общей шириной и общей высотой по 100px, любым заметным фоном, паддингом 10px и бордером 2px Посмотрите box-model этого блока в инспекторе 3
  • 4. Должно получиться: .block { width: 76px; height: 76px; padding: 10px; border: 2px solid; background: grey; } <div class="block"></div> 4
  • 6. Вложенные элементы занимают 100% ширины, но padding в эту ширину не входит .block { width: 76px; height: 76px; padding: 10px; border: 2px solid; background: grey; } <div class="block"> <div class="block__element"> </div> </div> .block__element { width: 100%; height: 100%; background: white; } 6
  • 7. Задание Влияет ли border-box на вложенный элемент? а) Если использовать border-box, то вложенный элемент займет всю ширину родителя, в том числе padding b) Если использовать border-box, то вложенный элемент займет всю ширину родителя, но не padding Проверьте на codepen 7
  • 8. Задание Влияет ли border-box на вложенный элемент? а) Если использовать border-box, то вложенный элемент займет всю ширину родителя, в том числе padding b) Если использовать border-box, то вложенный элемент займет всю ширину родителя, но не padding 8
  • 9. В чем разница между инлайн и блочными тегами? 1. Расположение 2. Ширина 3. Пробелы 4. Margin 9
  • 10. Часто используемые значения display: none block inline-block inline table table-cell ... 10
  • 11. Display: inline-block; 1. Расположение (как у inline элемента) 2. Ширина (по дефолту как у inline, но может быть задана любая другая, как у block) 3. Пробелы (как у inline) 4. Margin (как у block) 11
  • 12. Display: inline-block - несколько элементов с разной высотой и разным количеством контента 12 Вертикальное выравнивание по дефолту - baseline
  • 13. Vertical-align фикс для inline-block: vertical-align: bottom; 13 vertical-align: top; vertical-align: middle;
  • 14. Margin collapse блочных элементов 1. Margin collapse внутри родительского блока (лечится добавлением padding’а, clearfix, overflow: auto родительскому блоку) 1. Margin collapse нескольких блочных элементов, расположенных подряд 14
  • 15. Margin collapse блочных элементов body { background: #aaa; } .block { background: #f1652a; } .block__element { width: 100px; height: 100px; margin: 20px; border: 1px solid; } <div class="block"> <div class="block__element"></div> <div class="block__element"></div> </div> 15
  • 16. Margin collapse отсутствует у inline-block body { background: #aaa; } .block { background: #f1652a; } .block__element { width: 100px; height: 100px; margin: 20px; border: 1px solid; display: inline-block; } <div class="block"> <div class="block__element"></div> <div class="block__element"></div> </div> 16
  • 17. Нормальный поток (normal flow) - то, как в браузере отображаются элементы относительно друг друга. По умолчанию, родительский элемент принимает высоту своих дочерних элементов 17
  • 18. Элемент выбивается из потока, если: К нему применяется: 1. float 2. отрицательный margin (в случае когда возможен margin collapse) 3. position: absolute; или position: fixed; 4. display: none; 18
  • 19. Выбившийся из потока элемент не влияет на высоту родителя .block { background: gray; width: 200px; padding: 30px; } .block__element { width: 200px; height: 100px; background: #f1652a; } 19 .block__element { float: left; } В потоке:
  • 20. Clearfix Для случая с float проблему c высотой родителя можно решить, добавив ему clearfix 20 .block::after { content: ' '; display: table; clear: both; }
  • 21. Скрываем элемент: display vs. visibility 21 .block__element { display: none; } .block__element { visibility: hidden; }
  • 22. position static - по дефолту relative absolute fixed 22
  • 23. position: relative Элемент не выбивается из потока, но смещается относительно своего нормального положения: 23 .block__element { position: relative; left: 100px; }
  • 24. position: absolute Элемент выбивается из потока. Новое положение рассчитывается относительно окна браузера или родительского элемента с position: relative; 24 .block__element { position: absolute; left: 100px; top: 0; } .block { position: relative; } .block { position: static; }
  • 25. position: fixed Элемент выбивается из потока. Новое положение рассчитывается относительно окна браузера. Блок остается на месте при скролле. 25 .block__element { position: fixed; left: 100px; top: 0; }