W3Schools定义的块级元素在元素之前和之后有一个换行符,例如 p,h1,等。非嵌套的内联元素要么自行开始(否如果嵌套,则保持在同一行。
span 行为正常(以及所有其他内联元素)。 Div 永远不会像块元素那样创建换行符,但只会在div元素开头的新行上开始。
也许我错过了一些东西,因为每个人都在谈论 DIV 是块级别,但它的行为就像一个内联元素,因为如果没有嵌套,它会启动一个新行,不会创建换行符,但是当一个 div 与另一个 div 嵌套时,它就像其他东西一样,只是创建一个新行。
DIV 是唯一的“混合”元素吗?我错过了一些更基本的东西吗?
答案 0 :(得分:7)
没有元素会创建换行符。您只是看到了不同默认样式的效果,这些样式具有不同的margin
和padding
值。默认样式因浏览器而异,但通常看起来像HTML 4规范中包含的[非常过时]参考样式表:http://www.w3.org/TR/CSS2/sample.html
答案 1 :(得分:2)
Mozilla Developer Network或MDN是了解HTML的最佳位置。
此处有<div>
的解释: div | Mozilla Developer Network :
文档部门(
<div>
)HTML元素是 流内容的通用容器,它本身并不代表任何内容 。 它可用于将元素分组以用于样式目的(使用class或id属性),或者因为它们共享属性值,例如lang。 只有在没有其他语义元素(例如<article>
或<nav>
)合适时才应该使用它。
以下是块级和内嵌元素之间的比较:
<强> Block-level elements 强>
内联和块级元素之间的区别是:
<强>格式强>
默认情况下,块级元素从新行开始。
内容模型
通常,块级元素可以包含内联元素和其他块级元素。 这种结构区别的固有特征是块元素比内联元素创建“更大”的结构。
<强> Inline elements 强>
内联和块级元素之间的差异:
内容模型
通常,内联元素可能只包含数据和其他内联元素。
<强>格式强>
默认情况下,内联元素不以新行开头。