SlideShare 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)

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

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

PPTX
презентация 6
Rusov1
 
PPT
Верстка лекция 4
itc73
 
PPTX
Приемы верстки страниц
Denis Latushkin
 
PPT
Web весна 2012 лекция 8
Technopark
 
PPT
Crossbrowser Css layout
DarkestMaster
 
PDF
J query tutorial-for-beginners-1.0.1
labzzzz
 
PPTX
Мировые информационные ресурсы. Лекция 4
Dmitriy Krukov
 
PPT
Web осень 2012 лекция 8
Technopark
 
PDF
Роман Комаров — «Механизм работы браузера»
Yandex
 
DOCX
7 Margin, Border, padding қасиеттері.docx
darigaajdarova0
 
PDF
J query tutorial-for-beginners-1.0.0
Сергей Ядров
 
PDF
Лекция 4 Client-side
Technosphere1
 
PDF
Css Intro. Vlad Savitsky
Vlad Savitsky
 
презентация 6
Rusov1
 
Верстка лекция 4
itc73
 
Приемы верстки страниц
Denis Latushkin
 
Web весна 2012 лекция 8
Technopark
 
Crossbrowser Css layout
DarkestMaster
 
J query tutorial-for-beginners-1.0.1
labzzzz
 
Мировые информационные ресурсы. Лекция 4
Dmitriy Krukov
 
Web осень 2012 лекция 8
Technopark
 
Роман Комаров — «Механизм работы браузера»
Yandex
 
7 Margin, Border, padding қасиеттері.docx
darigaajdarova0
 
J query tutorial-for-beginners-1.0.0
Сергей Ядров
 
Лекция 4 Client-side
Technosphere1
 
Css Intro. Vlad Savitsky
Vlad Savitsky
 
Ad

More from Noveo (17)

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

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; }