2013-04-08 76 views
0

我想知道为什么Chrome会向<h>家族的标题元素添加样式属性。 当我加入这样的元素,并做没有具体的CSS标记,以下是由铬补充说:为什么chrome会为h *元素添加特定属性?

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; 
} 

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

我觉得这有时会让人感到困惑,因为我重新安排了所有的元素,并想知道为什么<p><h>的行为是不同的,因为我忘记了这一点。

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

对不起,我尽力而为。

+0

使用简单的CSS重置。它会解决这些问题 – 2013-04-08 18:13:56

+1

'边距:0'也应该可以工作 – 2013-04-08 18:15:03

+0

我已经做了,但看起来有点过时了。当然你的权利,但有这个说,我仍然想知道这个问题 – Sprottenwels 2013-04-08 18:15:16

回答

5

去激活CSS:你会明白为什么浏览器有一个默认的样式表(他们的选择)。

  • 试想在一个列表的列表清单没有任何padding/margin-left集上的项目:无论他们的水平将是左对齐,并很难读取所有列表项。
  • 没有p之间保证金1EM,你无法判断2组句子有两种不同的段落或只是由<br>分离(即和折叠利润......只有垂直)
  • a默认下划线并拥有我们习以为常的蓝色。你将如何告诉有链接的文本,如果他们间没有(T下划线和黑色?

所有这些定义自然显示的文字,这是必要的谎言之前普通的HTML和博斯发明CSS。

至于-start-end-before-after后缀,这仅仅是一个CSS3 表达上,右,底部的不可知方式离开了。我的意思无关的是,语言可以RTL(书面从右到左象阿拉伯语和希伯来语)或LTR(从左到右像eng从上到下和从左到右,无论主要方向和次要方向,你可以说之前和浏览器将从上下文了解,如果它是顶部或左...
但是,这是浏览器的内部结构:当然margin指令前缀的,如果你甚至不关心RTL语言,它会与TRBL工作了时间;)
所以只要继续用简单的之类的东西

margin: 1em 10px 1.333em 20px 

编辑:从CSS Writing Modes Module Level 3 - Flow-relative Directions
定义:

的流动相对的方向,之前,在之后,开始和结束都是相对于页面上的内容流而定义的。在LTR'horizo​​ntal-tb'写入模式下,它们分别对应于顶部,底部,左侧和右侧方向。

+1

像我希望一个答案。非常感谢你:) – Sprottenwels 2013-04-08 18:24:54

+0

不客气。如果Inspector/Firebug-like工具具有高级模式,那么他们会显示这些'-webkit - * - end',但仍然会以“简单”模式显示与“-webkit-appearance”等形式相关的高级模式... – FelipeAls 2013-04-08 18:34:08

相关问题