10

所以我读了它<html>并且<body>是块级元素,就像<div>and一样<p>

我知道块级元素开始一个新行。

例如aaa<div>b</div>ccc看起来像这样:

aaa
b
ccc

那么,为什么不在html 页面<html><body>顶部添加两行呢?

4

4 回答 4

15

块级元素不会“开始新行”......它们只是无限期地扩展到两侧,直到命中容器元素或显示的两侧(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>
于 2013-02-28T04:30:15.763 回答
2

这样想:

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

只有一行文字:

文本

这就像正文中有任何文本的情况一样:

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

当文本在子元素中时,不会引入新行。

于 2013-02-28T04:35:16.023 回答
0

它们是定义页面的块元素。浏览器控制他们想要如何查看它。您可能会发现一些糟糕的浏览器<body>通过添加新行来显示(这是可能的)。但是,您的主要重点是将<body>and<html>标签视为在屏幕上显示所有内容的标签。我还想补充一点,您可以使用标签来完全适应浏览器屏幕

body {padding:0;margin:0;}

希望这可以帮助。

于 2013-02-28T04:38:28.943 回答
0

Block level elements by default (i.e., when CSS is not used to change this) imply line breaks before and after. They do not imply empty lines.

So when you have <div>foo</div>, then “foo” appears at the start of a new line, and it also ands a line, i.e. any text after it is on the next line. But this does not mean creating empty lines. If you have <div>foo</div><div>bar</div>, then “foo” and “bar” appear on consecutive lines, with no empty line between them.

这样的html元素不会生成可见内容;仅显示其中的body元素。并且body内容从页面的开头开始,这被视为从新行开始。有无<body>标签无关紧要;总是有body元素,它从第一行开始。

于 2013-02-28T05:59:05.737 回答