基本HTML/CSS-页边距和;显示行为

基本HTML/CSS-页边距和;显示行为,html,css,margin,Html,Css,Margin,我有一个关于HTML/CSS和某些元素的页边距行为的基本问题。 为了阐明我的观点,我创作了这把小提琴: 你看,我应用了某种“重置”,并为所有h1添加了一些样式 在第一个示例中,来自h1的margin应用于框的外部,而在#c中,设置了h1显示:内联,它应用于框内 为什么会这样?带有display:inline的元素不使用页边距顶部和页边距底部; 请参见:显示为内联的元素不使用页边距顶部和页边距底部; 请参阅:内联元素中的上边距和下边距并不重要。在内联元素中,每个元素代表文本中的一个单词。内联元素中

我有一个关于HTML/CSS和某些元素的页边距行为的基本问题。
为了阐明我的观点,我创作了这把小提琴:

你看,我应用了某种“重置”,并为所有
h1
添加了一些样式
在第一个示例中,来自
h1
margin
应用于框的外部,而在
#c
中,设置了
h1
显示:内联,它应用于框内


为什么会这样?

带有display:inline的元素不使用页边距顶部和页边距底部;
请参见:

显示为内联的元素不使用页边距顶部和页边距底部;
请参阅:

内联元素中的上边距和下边距并不重要。在内联元素中,每个元素代表文本中的一个单词。

内联元素中的上下边距并不重要。在内联元素中,每个元素表示文本中的一个单词。

在第一个示例中,将
作为块元素,顶部(强调部分):

在CSS中,两个或多个框(可能是同级框,也可能不是同级框)相邻的边距可以组合成一个边距。以这种方式合并的保证金称为崩溃保证金,由此产生的合并保证金称为崩溃保证金

……及以后:

两个边距相邻当且仅当:

  • 两者都属于参与相同块格式上下文的流内块级别框
  • 无线框、无间隙、无填充和无边框将它们分开(请注意,出于此目的,某些零高度线框(见9.4.2)被忽略。)
  • 两者都属于垂直相邻的长方体边缘,即形成以下一对:
    • 方框的上边距及其第一个流入子项的上边距
    • 框的底部边距和其下一个同级流的顶部边距
    • 如果父级具有“自动”计算高度,则最后一个流入子级的底部边距及其父级的底部边距
    • 未建立新块格式上下文且计算的“最小高度”为零、计算的“高度”为零或“自动”且无流内子项的框的上、下边距
第二个示例是
作为内联元素的:

“margin”速记属性设置所有四个边的边距,而其他边距属性仅设置各自的边。这些属性适用于所有元素,但垂直边距不会对未替换的内联元素产生任何影响


在第一个示例中,使用
作为块元素,顶部(强调部分):

在CSS中,两个或多个框(可能是同级框,也可能不是同级框)相邻的边距可以组合成一个边距。以这种方式合并的保证金称为崩溃保证金,由此产生的合并保证金称为崩溃保证金

……及以后:

两个边距相邻当且仅当:

  • 两者都属于参与相同块格式上下文的流内块级别框
  • 无线框、无间隙、无填充和无边框将它们分开(请注意,出于此目的,某些零高度线框(见9.4.2)被忽略。)
  • 两者都属于垂直相邻的长方体边缘,即形成以下一对:
    • 方框的上边距及其第一个流入子项的上边距
    • 框的底部边距和其下一个同级流的顶部边距
    • 如果父级具有“自动”计算高度,则最后一个流入子级的底部边距及其父级的底部边距
    • 未建立新块格式上下文且计算的“最小高度”为零、计算的“高度”为零或“自动”且无流内子项的框的上、下边距
第二个示例是
作为内联元素的:

“margin”速记属性设置所有四个边的边距,而其他边距属性仅设置各自的边。这些属性适用于所有元素,但垂直边距不会对未替换的内联元素产生任何影响


因为内联元素和块级元素在浏览器中的呈现方式不同。您可以看到,因为内联元素和块级元素在浏览器中的呈现方式不同。您可以看到链接在何处认可您的语句,即内联元素“未使用”?请参见:边距属性指定框的边距区域的宽度。“margin”速记属性设置所有四个边的边距,而其他边距属性仅设置各自的边。这些属性适用于所有元素,但垂直边距不会对未替换的内联元素产生任何影响……这使得您的语句“显示为
display:inline
的元素未使用边距”明显错误。在链接中,它在何处认可您的语句“未使用内联元素”“?请参阅:边距属性指定方框边距区域的宽度。“margin”速记属性设置所有四个边的边距,而其他边距属性仅设置各自的边。这些属性适用于所有元素,但垂直边距不会对未替换的内联元素产生任何影响……这使得您的语句“带
显示:内联
的元素不使用边距”明显错误。