& Lt; & HTML-GT; и <BODY & gt ;: почему нет новых строк?

Поэтому я прочитал, что <html> и <body> являются элементами уровня блока, так же как <div> и <p>.

Я понимаю, что элементы уровня блока начинаются с новой строки.

Например, aaa<div>b</div>ccc выглядит следующим образом:

aaa
b
ccc

Итак, почему бы <html> и <body> добавить две строки в верхней части HTML-страницы?

10 голосов | спросил Lebowski156 28 FebruaryEurope/MoscowbThu, 28 Feb 2013 08:23:20 +0400000000amThu, 28 Feb 2013 08:23:20 +040013 2013, 08:23:20

4 ответа


0

Элементы уровня блока не "начинают новые строки" ... они просто расширяются в обе стороны до бесконечности, пока не коснется элемента контейнера или сторон дисплея (width:100%) ... из-за этого они «выталкивают» любой другой контент внизу их или опускают ниже любого встроенного контента, который непосредственно предшествует им. Это также означает, что элементы уровня блока будут «толкать» только элементы уровня одного уровня.

Элементы

<html> и <body> имеют никаких братьев и сестер, только дети, поэтому им не нужно ничего смещать.

Вот графическое представление того, что происходит: введите описание изображения здесь

Учитывая эту разметку:

<html>
<head></head>
<body>
  <div>&nbsp;</div>
  <div>&nbsp;</div>
  <div style='width:45%; float:left;'>
    <div>&nbsp;</div>
  </div>
  <div style='width:45%; float:left;'>&nbsp;</div>
</div>
</body>
</html>
ответил Ben D 28 FebruaryEurope/MoscowbThu, 28 Feb 2013 08:30:15 +0400000000amThu, 28 Feb 2013 08:30:15 +040013 2013, 08:30:15
0

Думайте об этом так:

<div>
    <div>Text</div>
</div>

Есть только одна строка текста:

  

Текст

Это похоже на случай, когда у вас есть текст в теле:

<html>
    <body>Text</body>
</html>

Когда текст находится в дочернем элементе, новые строки не вводятся.

ответил Antony 28 FebruaryEurope/MoscowbThu, 28 Feb 2013 08:35:16 +0400000000amThu, 28 Feb 2013 08:35:16 +040013 2013, 08:35:16
0

Это блочные элементы, которые определяют страницу. Браузеры контролируют, как они хотят видеть это. Вы можете найти какой-нибудь ужасный браузер, который отображает <body>, добавив новую строку (это возможно). Тем не менее, вы должны рассмотреть <body> и <html> теги как теги, которые отображают все на экране. Я также хотел бы добавить, что вы можете использовать тег для полного размещения на экране браузера, используя

body {padding:0;margin:0;}

Надеюсь, это поможет.

ответил shnisaka 28 FebruaryEurope/MoscowbThu, 28 Feb 2013 08:38:28 +0400000000amThu, 28 Feb 2013 08:38:28 +040013 2013, 08:38:28
0

Элементы уровня блока по умолчанию (т. е. когда CSS не используется для изменения этого) подразумевают разрывы строк до и после. Они не подразумевают пустые строки .

Итак, когда у вас есть <div>foo</div>, тогда в начале новой строки появляется «foo», а также и строка, т.е. любой текст после него находится на следующей строке. Но это не значит создавать пустые строки. Если у вас есть <div>foo</div><div>bar</div>, то «foo» и «bar» появляются в последовательных строках без пустой строки между ними.

Элемент html как таковой не генерирует видимый контент; внутри него отображается только элемент body. И содержимое body начинается в начале страницы, что считается началом новой строки. Существует ли тег <body> или нет, не имеет значения; всегда есть элемент body, который начинается с первой строки.

ответил Jukka K. Korpela 28 FebruaryEurope/MoscowbThu, 28 Feb 2013 09:59:05 +0400000000amThu, 28 Feb 2013 09:59:05 +040013 2013, 09:59:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132