0

我想知道为什么 Chrome 会在家族的标题元素中添加样式属性<h>。当我添加这样一个元素,并且没有做特定的 css 标记时,chrome 会添加以下内容:

h3 {
display: block;
font-size: 1.17em;
-webkit-margin-before: 1em;
-webkit-margin-after: 1em;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
font-weight: bold;
}

我必须用类似的东西覆盖它

h3{
    display: block;
    font-size: 1.2em;
    -webkit-margin-before: 0;
    -webkit-margin-after: 0;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    cursor: default;
    font-weight: normal;
}

好的,我可以接受他们将其设置为粗体并增加字体大小的部分,但他们为什么要更改边距?

有时我觉得这很令人困惑,因为我重新排列了上述元素并想知道为什么 and 的行为<p>不同<h>,因为我忘记了这一点。

还是只有我,我错过了重要的部分?

原谅我的英语,我尽力了。

4

1 回答 1

5

停用 CSS:您将了解为什么浏览器有默认样式表(由他们选择)。

  • 想象一下列表中的列表中的列表没有任何padding/margin-left项目集:所有列表项无论其级别如何都是左对齐的并且非常难以阅读。
  • 如果没有 1em 之间的边距p,您将无法判断 2 组句子是在两个不同的段落中还是仅由 a 分隔<br>(那个和折叠边距......仅垂直)
  • a默认情况下带有下划线,并具有我们非常习惯的这种蓝色。如果没有(没有下划线和黑色的),您将如何判断文本中有链接?

所有这些都定义了文本的自然显示,这是在 Lie 和 Bos 发明 CSS 之前纯 HTML 所必需的。

至于-start, -end,-before-after后缀,这只是一种与 CSS3无关的表示顶部、右侧、底部和左侧的方式。我所说的不可知论者的意思是语言可能是RTL(从右到左书写,如阿拉伯语和希伯来语)或LTR(从左到右,如英语或法语)或一天从上到下,线条从左到右,无论主要方向和次要方向方向,你可以在前面说,浏览器会从上下文中理解它是在顶部还是在左边……
但这就是浏览器的内部结构:当然,margin指令是没有前缀的,如果你甚至不关心 RTL 语言,它会长期与 TRBL 合作;)
所以继续简单的事情,比如

margin: 1em 10px 1.333em 20px

编辑: CSS 写作模式模块第 3 级的
定义- 流相关方向

相对于流的方向,before、after、start 和 end,是相对于页面上的内容流定义的。在 LTR 'horizo​​ntal-tb' 书写模式中,它们分别对应于top、bottom、left 和 right 方向。

于 2013-04-08T18:22:00.893 回答