From 200ab57a6e9791408c641ecc2041f834d7127e82 Mon Sep 17 00:00:00 2001 From: Maxim Postautov <54762420+mpstv@users.noreply.github.com> Date: Sun, 13 Jun 2021 23:07:49 +0300 Subject: Update translation "Сss block model" (#1124) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update translation css block model ru * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> * Update files/ru/learn/css/building_blocks/the_box_model/index.html Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> Co-authored-by: Yana Klose-Ivanova <75987641+captainspring@users.noreply.github.com> --- .../css/building_blocks/the_box_model/index.html | 252 ++++++++++----------- 1 file changed, 119 insertions(+), 133 deletions(-) diff --git a/files/ru/learn/css/building_blocks/the_box_model/index.html b/files/ru/learn/css/building_blocks/the_box_model/index.html index cadef38488..3fb706e69e 100644 --- a/files/ru/learn/css/building_blocks/the_box_model/index.html +++ b/files/ru/learn/css/building_blocks/the_box_model/index.html @@ -1,14 +1,20 @@ --- -title: Модель коробки +title: Блочная модель slug: Learn/CSS/Building_blocks/The_box_model tags: - - Границы - Новичку + - CSS + - Обучение + - border + - Блочная модель + - display + - margin + - padding translation_of: Learn/CSS/Building_blocks/The_box_model ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks")}}
-
Каждый элемент в CSS заключён в коробку (английское "box") и понимание поведения этих коробок — это ключ к умению создавать макеты с помощью CSS, то есть выстраивать одни элементы относительно других элементов. В этом уроке мы рассмотрим надлежащим образом коробочную модель CSS, так, чтобы вы могли решать более сложные задачи построения макетов, понимая, как она работает, и терминологию, которая к ней относится.
+
Каждый элемент в CSS заключён в блок, и понимание поведения этих блоков — это ключ к умению задавать раскладку с помощью CSS, то есть выстраивать одни элементы относительно других элементов. В этом уроке мы надлежащим образом рассмотрим блочную модель CSS, чтобы вы могли создавать более сложные раскладки, понимая принцип ее работы и терминологию, которая к ней относится.
@@ -17,108 +23,108 @@ translation_of: Learn/CSS/Building_blocks/The_box_model Необходимые условия: -

Базовая компьютерная грамотность, установка базового ПО, базовые знания о работе с файлами, основы HTML (изучите Введение в HTML) и понимание работы CSS (изучите Введение в CSS.)

+

Базовая компьютерная грамотность, установка базового ПО, базовые знания о работе с файлами, основы HTML (изучите Введение в HTML) и понимание работы CSS (изучите Введение в CSS.)

Цель: -

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

+

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

-

Блочные и строчные коробки

+

Блочные и строчные элементы

-

В CSS мы, говоря упрощённо, имеем два типа коробок — блочные и строчные. Эти характеристики относятся к поведению коробки в терминах потока страницы и относительно других коробок на странице.

+

В CSS мы, говоря упрощённо, имеем два типа элементов — блочные и строчные. Эти характеристики относятся к поведению блоков в контексте потока страницы и относительно других блоков на странице.

-

Если коробка определена как блочная, то она будет вести себя следующим образом:

+

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

Если не изменить намеренно тип отображения на строчный, то такие элементы, как заголовки (например, <h1>) и <p>, все используют block как свой внешний тип отображения по умолчанию.

-

Если коробка имеет внешний тип отображения inline, то:

+

Если элемент имеет тип отображения inline (строчный), то:

-

Элемент <a>, используемый для ссылок, <span>, <em> и <strong> — всё это примеры элементов, которые будут отображаться в линию по умолчанию.

+

Элемент <a>, используемый для ссылок, <span>, <em> и <strong> — всё это примеры по умолчанию строчных элементов.

-

Тип коробки, применяемый к элементу, определяется значениями свойства {{cssxref("display")}}, такими как block и inline, и относится к внешнему значению display.

+

Тип отображения, применяемый к элементу, определяется значениями свойства {{cssxref("display")}}, такими как block и inline, и относится к внешнему значению display.

Экскурс: внутренний и внешний типы отображения

-

Здесь следует объяснить, что такое внутренние и внешние типы отображения. Как уже говорилось выше, коробки в CSS имеют внешний тип отображения, который определяет, блочная она или строчная.

+

Здесь следует объяснить, что такое внутренние и внешние типы отображения. Как уже говорилось выше, каждый блок в CSS имеет внешний тип отображения, который определяет, блочный он или строчный.

-

Коробки также имеют внутренний тип отображения, который определяет расположение элементов внутри неё. По умолчанию, элементы внутри коробки располагаются в нормальном потоке, что означает, что они ведут себя так же, как и любые другие блочные или строчные элементы (как описано выше).

+

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

-

Однако, мы можем изменить внутренний тип отображения, используя такие значения display как flex. Если мы установим display: flex; для элемента, внешний тип отображения примет значение block, но внутренний тип изменится на flex. Любые прямые дочерние элементы этой коробки станут гибкими (flex) объектами и будут размещены в соответствии с правилами, изложенными в спецификации Flexbox, о которой вы узнаете позже.

+

Однако мы можем изменить внутренний тип отображения, используя такие значения display как flex. Если мы установим display: flex; для элемента, внешний тип отображения примет значение block, но внутренний тип изменится на flex. Любые прямые дочерние элементы этого блока станут flex-объектами и будут размещены в соответствии с правилами, изложенными в спецификации Flexbox, о которой вы узнаете позже.

-
-

Примечание: Чтобы узнать больше о значениях display, и о том, как работают коробки при блочном или строчном расположении, посмотрите руководство MDN Блочное и срочное расположение.

+
+

Примечание: Чтобы узнать больше о значениях display, и о том, как работают элементы при блочном или строчном расположении, посмотрите руководство MDN Блочное и срочное расположение.

-

Когда вы перейдёте к более подробному изучению CSS вёрстки, вы встретите flex, и другие внутренние значения, которые могут иметь ваши элементы, например grid.

+

Когда вы перейдёте к более подробному изучению CSS вёрстки, вы встретите flex и другие внутренние значения, которые могут быть у ваших элементов, например grid.

-

Тем не менее, блочное и строчное расположение, это поведение web-элементов по умолчанию — как было сказано выше, это иногда называют нормальным потоком (normal flow), потому что при отсутствии какой-либо другой инструкции коробки имеют блочное или строчное расположение.

+

Тем не менее, блочное и строчное расположение — это поведение web-элементов по умолчанию. Как было сказано выше, это иногда называют нормальным потоком (normal flow), потому что при отсутствии какой-либо другой инструкции элементы имеют блочное или строчное расположение.

Примеры разных типов отображения

-

Давайте продолжим и рассмотрим некоторые примеры. Ниже мы имеем три разных элемента HTML, каждый из которых имеет внешний тип отображения block. Первый — это абзац, который имеет обрамление, указанное в CSS. Браузер отображает его как блочный элемент, поэтому абзац начинается на новой строке, и расширяется на всю доступную ему ширину.

+

Давайте продолжим и рассмотрим некоторые примеры. Ниже мы имеем три разных элемента HTML с внешним типом отображения block. Первый — это абзац, который имеет обрамление, указанное в CSS. Браузер отображает его как блочный элемент, поэтому абзац начинается с новой строки и расширяется на всю доступную ему ширину.

-

Второй — это список, который свёрстан с использованием display: flex. Это устанавливает гибкое (flex) расположение для элементов внутри контейнера, однако, список сам по себе — блочный элемент и — как и абзац — расширяется на всю ширину контейнера и начинается с новой строки.

+

Второй — это список, который свёрстан с использованием display: flex. Это устанавливает flex-расположение для элементов внутри контейнера, однако сам список — блочный элемент и — как и абзац — расширяется на всю ширину контейнера и начинается с новой строки.

-

Ниже у нас есть абзац блочного типа, внутри которого есть два элемента <span>. Эти элементы по умолчанию имеют тип inline, однако один из элементов имеет класс block, для которого мы установили display: block.

+

Ниже у нас есть абзац блочного типа, внутри которого есть два элемента <span>. Эти элементы по умолчанию имеют тип inline, однако у одного из них задан класс block, для которого мы установили display: block.

{{EmbedGHLiveSample("css-examples/learn/box-model/block.html", '100%', 1000)}} 

-

Мы можем видеть, как строчные элементы (inline) ведут себя в следующем примере. Элементы <span> в первом абзаце строчные по умолчанию и поэтому не приводят к разрыву строки.

+

Мы можем видеть, как строчные элементы (inline) ведут себя в следующем примере. Элементы <span> в первом абзаце строчные по умолчанию и поэтому не приводят к переносу строки.

-

Мы также имеем элемент <ul>, для которого установлено display: inline-flex, что создаёт строчную коробку вокруг нескольких flex-объектов.

+

У нас также есть элемент <ul>, для которого установлено display: inline-flex, что создаёт строчный элемент вокруг нескольких flex-объектов.

-

Наконец, у нас есть два абзаца, для которых установлено display: inline. И строчный flex-контейнер, и абзацы располагаются вместе на одной строке, а не начинаются каждый с новой строки, как они отображались бы, будучи элементами блочного уровня.

+

Наконец, у нас есть два абзаца, для которых установлено display: inline. И строчный flex-контейнер, и абзацы располагаются вместе на одной строке, а не начинаются каждый с новой строки, как они отображались бы, будучи блочными элементами.

В примере вы можете заменить display: inline на display: block или display: inline-flex на display: flex для переключения между этими двумя режимами отображения.

{{EmbedGHLiveSample("css-examples/learn/box-model/inline.html", '100%', 1000)}} 

-

Позже в этих уроках вы встретите такое понятие как гибкая (flex) вёрстка; главное, что нужно запомнить сейчас, это то, что изменение значения свойства display может изменить внешний тип отображения элемента на блочный или строчный, что меняет способ его отображения относительно других элементов в макете. 

+

Позже в этих уроках вы встретите такое понятие как flex-раскладка; главное, что нужно запомнить сейчас, это то, что изменение значения свойства display может изменить внешний тип отображения элемента на блочный или строчный, что меняет способ его отображения относительно других элементов в раскладке страницы.

В оставшейся части урока мы сосредоточимся на внешнем типе отображения.

-

Что такое модель коробки CSS?

+

Что такое блочная модель CSS?

-

Полностью блочная модель в CSS применяется к блочным элементам, строчные элементы используют не все свойства, определённые блочной моделью. Модель определяет, как разные части элемента — поля, границы, отступы и содержимое — работают вместе, чтобы создать объект, который вы можете увидеть на странице. Чтобы добавить дополнительную сложность элементу, используются стандартные и альтернативные блочные модели.

+

Полностью блочная модель в CSS применяется к блочным элементам, строчные элементы используют не все свойства, определённые блочной моделью. Модель определяет, как разные части элемента — поля, рамки, отступы и содержимое — работают вместе, чтобы создать объект, который вы можете увидеть на странице. Дополнительная сложность заключается в том, что существуют стандартная и альтернативная блочные модели.

Составляющие элемента

Составляя блочный элемент в CSS мы имеем:

-

Рисунок ниже показывает эти области:

+

Рисунок ниже показывает эти слои:

-

Diagram of the box model

+

Диаграмма блочной модели

Стандартная блочная модель CSS

-

В стандартной блочной модели, если указать элементу атрибуты width и height, это определит ширину и высоту содержимого элемента. Любые отступы и границы затем добавляются к этой ширине и высоте, для получения общего размера элемента. Это показано на изображении ниже.

+

В стандартной блочной модели, если указать элементу атрибуты width и height, это определит ширину и высоту содержимого. Любые отступы и рамки затем добавляются к этой ширине и высоте для получения общего размера элемента. Это показано на изображении ниже.

Предположим, что в элементе есть следующий CSS определяющий width, height, margin, border, и padding:

@@ -131,37 +137,37 @@ translation_of: Learn/CSS/Building_blocks/The_box_model } -

Пространство, занимаемое нашим объектом с использованием стандартной блочной модели, на самом деле будет равно по ширине 410px (350 + 25 + 25 + 5 + 5), и по высоте 210px (150 + 25 + 25 + 5 + 5), поскольку отступы и границы добавляются к размерам поля содержимого.

+

Пространство, занимаемое нашим объектом с использованием стандартной блочной модели, на самом деле будет равно 410px в ширину (350 + 25 + 25 + 5 + 5) и 210px в высоту (150 + 25 + 25 + 5 + 5), поскольку отступы и рамки добавляются к размерам поля содержимого.

-

Showing the size of the box when the standard box model is being used.

+

Отображения размера элемента при использовании стандартной блочной модели.

-
-

Примечание: Внешний отступ не считается в фактическом размере объекта. Конечно, он влияет на общее пространство, занимаемое объектом на странице, но только на внешнее пространство. Область элемента заканчивается на границах — она не распространяется за них.

+
+

Примечание: Внешний отступ не считается в фактическом размере объекта. Конечно, он влияет на общее пространство, занимаемое объектом на странице, но только на внешнюю часть. Область элемента заканчивается на рамке — она не распространяется за нее.

Альтернативная блочная модель CSS

-

Вы можете подумать, что довольно неудобно добавлять границы и отступы, чтобы получить реальный размер элемента, и окажетесь правы! По этой причине, спустя некоторое время после стандартной блочной модели, в CSS была введена альтернативная блочная модель. При использовании альтернативной модели, любая ширина – это ширина видимой части элемента на странице, поэтому ширина области содержимого будет равна общей ширине минус ширина границы и внутреннего отступа. Тот же CSS, который использовался выше, даст следующий результат (ширина = 350px, высота = 150px).

+

Вы можете подумать, что довольно неудобно добавлять рамки и отступы, чтобы получить реальный размер элемента, и окажетесь правы! По этой причине, спустя некоторое время после стандартной блочной модели, в CSS была введена альтернативная блочная модель. При использовании альтернативной модели любая ширина — это ширина видимой части элемента на странице, поэтому ширина области содержимого будет равна общей ширине минус ширина рамки и внутреннего отступа. Тот же CSS, который использовался выше, даст следующий результат (ширина = 350px, высота = 150px).

-

Showing the size of the box when the alternate box model is being used.

+

Отображения размера элемента при использовании альтернативной блочной модели.

-

По умолчанию браузеры используют стандартную блочную модель. Если вы хотите использовать альтернативную блочную модель для элемента, установите для него свойство box-sizing: border-box. С помощью этого вы говорите браузеру о том, что граница элемента определяется любыми размерами которые вы устанавливаете.

+

По умолчанию браузеры используют стандартную блочную модель. Если вы хотите использовать альтернативную блочную модель для элемента, установите для него свойство box-sizing: border-box. С помощью этого вы говорите браузеру о том, что рамка элемента определяется любыми размерами, которые вы устанавливаете.

.box {
   box-sizing: border-box;
 } 
-

Если вы хотите, чтобы все ваши элементы использовали альтернативную блочную модель, что является распространённым выбором среди разработчиков, установите свойство box-sizing для элемента <html>, затем настройте все элементы для наследования этого значения (inherit), как показано на фрагменте ниже. Если вы хотите понять, что стоит за этим, смотрите статью the CSS Tricks article on box-sizing.

+

Если вы хотите, чтобы все ваши элементы использовали альтернативную блочную модель, что является распространённым выбором среди разработчиков, установите свойство box-sizing для элемента <html>, затем задайте всем элементам наследование этого значения (inherit), как показано в примере ниже. Если вы хотите понять ход мыслей, стоящий за этим решением, читайте статью the CSS Tricks article on box-sizing.

-
html {
-  box-sizing: border-box;
-}
-*, *::before, *::after {
-  box-sizing: inherit;
-}
+
html {
+  box-sizing: border-box;
+}
+*, *::before, *::after {
+  box-sizing: inherit;
+}
-
-

Примечание: Интересный факт - Internet Explorer по умолчанию использовал альтернативную блочную модель без доступного механизма для переключения.

+
+

Примечание: Интересный факт — Internet Explorer по умолчанию использовал альтернативную блочную модель без доступного механизма для переключения.

Играем с блочными моделями

@@ -172,29 +178,25 @@ translation_of: Learn/CSS/Building_blocks/The_box_model

{{EmbedGHLiveSample("css-examples/learn/box-model/box-models.html", '100%', 1000)}} 

-
+

Примечание: вы можете найти решение этой задачи здесь.

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

-

Инструменты разработчика вашего браузера могут значительно облегчить понимание блочной модели. Если вы проверяете элемент в инструментах разработчика Firefox, вы можете увидеть размер элемента, а также его поле, отступы и границу. Проверка элемента таким способом отличный способ выяснить, действительно ли размер вашего блока такой, какой вы думаете!

+

Инструменты разработчика вашего браузера могут значительно облегчить понимание блочной модели. Если вы проверите элемент в инструментах разработчика Firefox, вы можете увидеть его размер, а также внешний и внутренний отступы и рамку. Проверка элемента таким способом — отличный способ выяснить, действительно ли размер вашего блока такой, какой вы думаете!

-

Inspecting the box model of an element using Firefox DevTools

+

Проверка блочной модели элемента с использованием инструментов разработчика Firefox

-
-

Примечание: Информацию об инструментах разработчика вы можете получить по этой ссылке.

-
+

Внешние, внутренние отступы и рамки

-

Поля, отступы и границы

+

Вы уже видели свойства {{cssxref ("margin")}}, {{cssxref ("padding")}} и {{cssxref ("border")}} в работе в приведённом выше примере. Используемые в этом примере свойства — сокращённые и позволяют нам устанавливать все четыре стороны блока одновременно. У них также есть эквивалентные полные свойства, которые позволяют индивидуально управлять разными сторонами блока.

-

Вы уже видели свойства {{cssxref ("margin")}}, {{cssxref ("padding")}} и {{cssxref ("border")}} в работе в приведённом выше примере. Свойства, используемые в этом примере, являются общими и позволяют нам устанавливать все четыре стороны поля одновременно. Эти параметры также имеют эквивалентные свойства, которые позволяют индивидуально управлять разными сторонами поля.
-
- Давайте рассмотрим эти свойства более подробно.

+

Давайте рассмотрим эти свойства более подробно.

-

Поле внешнего отступа (margin)

+

Внешний отступ (margin)

-

Margin это невидимое пространство вокруг вашего элемента. Оно отталкивает другие элементы от него. Margin может быть как положительным, так и отрицательным. Негативное значение для внешнего отступа может привести к перекрытию некоторых элементов страницы. Независимо от того, используете ли вы стандартную или альтернативную блочную модель, margin всегда добавляется после расчёта размера видимого бокса.

+

Внешний отступ — это невидимое пространство вокруг вашего элемента. Оно отталкивает другие элементы от него. Внешний отступ может быть как положительным, так и отрицательным. Негативное значение может привести к перекрытию некоторых элементов страницы. Независимо от того, используете ли вы стандартную или альтернативную блочную модель, внешний отступ всегда добавляется после расчёта размера видимого блока.

Мы можем контролировать все поля элемента сразу, используя свойство {{cssxref ("margin")}}, или каждую сторону индивидуально, используя эквивалентные полные свойства:

@@ -209,27 +211,27 @@ translation_of: Learn/CSS/Building_blocks/The_box_model

{{EmbedGHLiveSample("css-examples/learn/box-model/margin.html", '100%', 1000)}} 

-

 Схлопывание margin 

+

Схлопывание внешних отступов

-

Ключевой момент, который нужно понимать в отношении внешних отступов (margin), это концепция схлопывания полей. Если у вас есть два элемента, поля которых соприкасаются, и оба значения margin положительные, то эти значения будут объединены в одно, равное большему из двух значений. А если одно или оба значения негативны, то сумма отрицательных значений будет вычтена из общей суммы.

+

Ключевой момент, который нужно понимать в отношении внешних отступов (margin), это концепция схлопывания. Если у вас есть два элемента, внешние отступы которых соприкасаются, и оба значения margin положительные, то эти значения будут объединены в одно, равное большему из двух значений. А если одно или оба значения отрицательны, то сумма отрицательных значений будет вычтена из общей суммы.

-

В примере ниже имеется два абзаца. Первый абзац имеет ширину margin-bottom  50 пикселей. Ширина второго параграфа — margin-top 30 пикселей. Поля схлопываются так, что в результате  margin между двумя блоками составляет 50 пикселей, а не сумму значений отдельных значений margin.

+

В примере ниже есть два абзаца. Первому абзацу задан margin-bottom 50 пикселей. У второго абзаца margin-top 30 пикселей. Отступы схлопываются так, что в результате margin между двумя блоками составляет 50 пикселей, а не сумму отдельных значений margin.

-

Вы можете проверить это устанавливая значения margin-top . Видимая граница между двумя параграфами не изменится — если сохранять значение в 50 пикселей в bottom-margin первого параграфа. Если вы установите значение -10px, то увидите, что margin становится 40px — происходит вычитание из положительного значения первого параграфа.

+

Вы можете проверить это, установив второму абзацу margin-top равный 0. Видимое расстояние между двумя абзацами не изменится — отступ остаётся равен 50 пикселям, заданным в margin-bottom первого абзаца. Если вы установите значение -10px, то увидите, что margin становится 40px — происходит вычитание из положительного значения 50px у первого абзаца.

{{EmbedGHLiveSample("css-examples/learn/box-model/margin-collapse.html", '100%', 1000)}} 

-

Существует ряд правил, которые определяют, когда поля уменьшаются, а когда нет. Для получения подробной информации см. margin collapsing. Главное, что нужно сейчас помнить, — это то, что происходит схлопывание полей. Если вы создаёте пространство с полями и не получаете ожидаемого результата, вероятно, именно это и происходит. 

+

Существует ряд правил, которые определяют, когда внешние отступы схлопываются, а когда нет. Для получения подробной информации см. margin collapsing. Главное, что нужно сейчас помнить, — это то, что схлопывание отступов существует. Если вы создаёте пространство с внешними отступами и не получаете ожидаемого результата, вероятно, именно это и происходит.

-

Границы

+

Рамка

-

Граница располагается между margin и padding блочного элемента. Если вы используете стандартную блочную модель, размер границы прибавляется к значениям width и height бокса. Если вы используете альтернативную блочную модель, то размер границы уменьшает поле контента данного блока, так как значения границы входит в значения width и height.

+

Рамка располагается между margin и padding блочного элемента. Если вы используете стандартную блочную модель, размер рамки прибавляется к значениям width и height элемента. Если вы используете альтернативную блочную модель, то размер рамки уменьшает поле контента своего блока, так как значения рамки входят в заданные ему width и height.

-

Для стилизации границ существует большое количество различных свойств — имеется четыре границы,  и каждая из них имеет свой стиль, ширину и цвет, которыми мы можем манипулировать.

+

Для стилизации рамок существует большое количество различных свойств: четыре рамки, и каждая из них имеет свой стиль, ширину и цвет, которыми мы можем манипулировать.

-

Вы можете установить ширину, стиль или цвет всех четырёх границ сразу используя {{cssxref("border")}} свойства.

+

Вы можете установить ширину, стиль или цвет всех четырёх рамок сразу, используя свойство {{cssxref("border")}}.

-

Чтобы установить индивидуальные свойства для каждой из четырёх сторон вы можете использовать:

+

Чтобы установить индивидуальные свойства для каждой из четырёх сторон, вы можете использовать:

  • {{cssxref("border-top")}}
  • @@ -238,7 +240,7 @@ translation_of: Learn/CSS/Building_blocks/The_box_model
  • {{cssxref("border-left")}}
-

Для установки ширины, стиля или цвета всех границ используйте:

+

Для установки ширины, стиля или цвета всех рамок используйте:

  • {{cssxref("border-width")}}
  • @@ -246,7 +248,7 @@ translation_of: Learn/CSS/Building_blocks/The_box_model
  • {{cssxref("border-color")}}
-

Чтобы установить ширину, стиль или цвет для каждой границы индивидуально, вы можете использовать следующие свойства:

+

Чтобы установить ширину, стиль или цвет для каждой рамки индивидуально, вы можете использовать следующие свойства:

  • {{cssxref("border-top-width")}}
  • @@ -263,15 +265,15 @@ translation_of: Learn/CSS/Building_blocks/The_box_model
  • {{cssxref("border-left-color")}}
-

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

+

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

{{EmbedGHLiveSample("css-examples/learn/box-model/border.html", '100%', 1000)}} 

-

Padding

+

Внутренний отступ (padding)

-

Padding расположен между границей и областью контента блока. В отличии от внешних отступов (margin), вы не можете использовать отрицательные значения для padding, поэтому значения должны быть положительными или равными 0. Любой, применённый к вашим элементам фон, будет отображаться под областью padding, и поэтому он обычно используется чтобы отодвинуть контент от границы.

+

Внутренний отступ расположен между рамкой и областью контента блока. В отличии от внешних отступов (margin), вы не можете использовать отрицательные значения для padding: они должны быть положительными или равными 0. Любой применённый к вашим элементам фон будет отображаться под областью padding, поэтому внутренний отступ обычно используется, чтобы отодвинуть контент от рамок.

-

Вы можете контролировать значение padding для всех сторон элемента, используя {{cssxref("padding")}} свойство, или для каждой стороны индивидуально, используя используя следующие свойства:

+

Вы можете контролировать значение padding для всех сторон элемента, используя свойство {{cssxref("padding")}}, или для каждой стороны индивидуально, используя следующие полные свойства:

  • {{cssxref("padding-top")}}
  • @@ -280,93 +282,77 @@ translation_of: Learn/CSS/Building_blocks/The_box_model
  • {{cssxref("padding-left")}}
-

Если вы измените значения padding в классе .box в примере ниже, вы можете увидеть что это изменяет положение текста относительно поля.

+

Если вы измените значения padding для класса .box в примере ниже, то увидите, что это изменяет положение текста внутри элемента.

-

Вы также можете изменить padding в классе .container, который создаёт пространство между контейнером и боксом. Padding может быть изменён для любого элемента, и создать пространство между этой и любой другой границей внутри элемента.

+

Вы также можете изменить padding для класса .container, который задаёт отступ между контейнером и блоком. Внутренний отступ может быть изменён для любого элемента и создаст пространство между его рамкой и содержимым.

{{EmbedGHLiveSample("css-examples/learn/box-model/padding.html", '100%', 800)}} 

Блочная модель и строчные элементы

-

Всё, сказанное ранее, полностью применимо к блочным элементам. Некоторые из свойств могут быть также применены и к строчным (inline) элементам, например, элемент, создаваемый с помощью <span>.

+

Всё, сказанное ранее, полностью применимо к блочным элементам. Некоторые из свойств могут быть также применены и к строчным (inline) элементам, например к <span>.

-

В приведённом ниже примере у нас есть <span> внутри абзаца, и мы применили к нему width, height, margin, border и padding. Вы можете видеть, что ширина и высота игнорируются. Вертикальные поля, отступы и границы соблюдаются, но они не изменяют отношения другого содержимого к нашему строчному элементу, и поэтому отступ и граница перекрывают другие слова в абзаце. Горизонтальные отступы, поля и границы соблюдаются и заставят другой контент отодвинуться от нашего элемента.

+

В приведённом ниже примере у нас есть <span> внутри абзаца, и мы применили к немуwidth, height, margin, border и padding. Вы можете видеть, что ширина и высота игнорируются. Вертикальные внешние и внутренние отступы и рамки применены, но они не изменяют положение других элементов относительно нашего строчного элемента, и поэтому отступы и рамка перекрывают другие слова в абзаце. Горизонтальные внешние и внутренние отступы и рамки применены и заставляют другие элементы отодвинуться от нашего.

{{EmbedGHLiveSample("css-examples/learn/box-model/inline-box-model.html", '100%', 800)}} 

Использование display: inline-block

-

Существует особое значение display, которое обеспечивает золотую середину между inline и block. Это полезно в ситуациях, когда вы не хотите, чтобы элемент разбивался на новую строку, но нужно, чтобы он использовал width и height и избегал перекрытия, показанного выше.

+

Существует особое значение display, которое представляет собой золотую середину между inline и block. Это полезно в ситуациях, когда вы не хотите, чтобы элемент переносился на новую строку, но нужно, чтобы он применял width и height и избегал перекрытия, показанного выше.

-

Элемент с display: inline-block содержит ряд свойств блочного элемента, о которых мы уже знаем:

+

Элемент с display: inline-block применяет ряд свойств блочного элемента, о которых мы уже знаем:

    -
  • Применяются свойства width и height.
  • -
  • Использование padding, margin и border приведёт к тому, что другие элементы будут отодвинуты от нашего элемента.
  • +
  • Применяются свойства width и height.
  • +
  • Использование padding, margin и border приведёт к тому, что другие элементы будут отодвинуты от нашего элемента.
-

Он не прервётся на новую строку и станет больше, чем его содержимое, только если вы явно не укажите свойства width и height.

+

Он не перенесётся на новую строку и станет больше, чем его содержимое, только если вы явно зададите свойства width и height.

-

В следующем примере мы добавили display: inline-block к нашему элементу <span>. Попробуйте изменить это на display: block или полностью удалить строку, чтобы увидеть разницу.

+

В следующем примере мы добавили display: inline-block к нашему элементу <span>. Попробуйте изменить значение свойства на display: block или полностью удалить строку, чтобы увидеть разницу.

{{EmbedGHLiveSample("css-examples/learn/box-model/inline-block.html", '100%', 800)}} 

-

Это может быть полезно, когда вы хотите создать ссылку с большой областью попадания, добавив padding. <a> - это строчный элемент, такой же как <span>; вы можете использовать display: inline-block, чтобы разрешить установку отступов, что упростит пользователю переход по ссылке.

+

Это может быть полезно, когда вы хотите создать ссылку с большой областью попадания, добавив padding. <a> — это строчный элемент, такой же как <span>; вы можете использовать display: inline-block, чтобы разрешить применение отступов, что упростит пользователю переход по ссылке.

-

Вы довольно часто видите это на панели навигации. Приведённая ниже навигация отображается в виде строки с использованием flexbox, и мы добавили отступы к элементу <a>, также мы хотим чтобы изменялся background-color при наведении курсора на <a>. Отступы перекрывают границу элемента <ul>. Это потому, что <a> является строчным элементом.

+

Довольно часто это можно увидеть в панелях навигации. Приведённая ниже навигация отображается в виде строки с использованием flexbox, и мы добавили отступы к элементу <a>, потому что хотим, чтобы background-color изменялся при наведении курсора на <a>. Отступы перекрывают рамку элемента <ul>. Это происходит потому, что <a> — строчный элемент.

-

Добавьте в правило display: inline-block с помощью селектора .links-list a, и вы увидите, как он решает эту проблему, заставляя другие элементы соблюдать отступы.

+

Добавьте в правило display: inline-block с помощью селектора .links-list a, и вы увидите, как он решает эту проблему, заставляя другие элементы соблюдать отступы.

{{EmbedGHLiveSample("css-examples/learn/box-model/inline-block-nav.html", '100%', 600)}} 

-

Проверьте свои навыки!

+

Проверьте свои навыки!

-

В этой статье мы рассмотрели многое, но можете ли вы вспомнить самую важную информацию? Вы можете найти дополнительные тесты, чтобы убедиться, что вы усвоили эту информацию, прежде чем двигаться дальше - см. Проверка своих навыков: блочная модель.

+

В этой статье мы многое рассмотрели, но получится ли у вас вспомнить самую важную информацию? Вы можете пройти дополнительные тесты, чтобы убедиться, что вы всё усвоили, прежде чем двигаться дальше — см. Проверка своих навыков: блочная модель.

Заключение

-

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

+

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

-

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

+

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

{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks")}}

В этом модуле

    -
  1. Каскад и наследование
  2. -
  3. Селекторы CSS +
  4. Каскад и наследование
  5. +
  6. Селекторы CSS
  7. -
  8. Модель коробки
  9. -
  10. Фон и границы
  11. -
  12. Обработка разных направлений текста
  13. -
  14. Переполнение содержимого
  15. -
  16. Значения и единицы измерения
  17. -
  18. Изменение размеров в CSS
  19. -
  20. Элементы изображений, форм и медиа-элементы
  21. -
  22. Стилизация таблиц
  23. -
  24. Отладка CSS
  25. -
  26. Организация вашей CSS
  27. +
  28. Блочная модель
  29. +
  30. Фон и рамки
  31. +
  32. Обработка разных направлений текста
  33. +
  34. Переполнение содержимого
  35. +
  36. Значения и единицы измерения
  37. +
  38. Изменение размеров в CSS
  39. +
  40. Элементы изображений, форм и медиа-элементы
  41. +
  42. Стилизация таблиц
  43. +
  44. Отладка CSS
  45. +
  46. Организация вашего CSS
- -
- -
-
-
-
- -
- -
-
- -
-
-
-- cgit v1.2.3-54-g00ecf