-webkit-margin在文本上添加了不必要的边距

tbl*_*ert 72 css padding

直到现在这还没有打到我(这不仅仅是在webkit浏览器中).在所有类似p标签,h1标签等文本中...文本上方和下方都有一个额外的空间.

在chrome中我发现了这个:

用户代理样式表

-webkit-margin-before: 1em;
-webkit-margin-after: 1em;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
Run Code Online (Sandbox Code Playgroud)

这使得在某些地方对齐错误.是的我正在使用重置样式表,并且没有添加填充或边距.几乎是一个基本的设置.为什么这样,我该如何解决?

Jac*_*lyn 47

您也可以直接修改这些属性,如下所示:

-webkit-margin-before:0em;
-webkit-margin-after:0em;
Run Code Online (Sandbox Code Playgroud)

适用于Chrome/Safari.希望有所帮助!

  • @JacobEvelyn downvoted,因为更改`margin`适用于所有浏览器,而更改`-webkit -...`仅适用于webkit(我没有downvote它,但这是我的想法) (5认同)
  • @JacobEvelyn:这两个值都是"0em"而不仅仅是"0"的原因是什么? (3认同)
  • 为什么选票呢?最初的问题是(部分)暗示这些字段的默认设置导致了问题,我的解决方案已经修复(这在过去解决了类似的问题). (2认同)

atl*_*vis 41

这些-webkit-margin(s)被覆盖margin: 0; padding: 0;.别担心他们.

额外的空间?也许你已经定了line-height:

  • 为什么这标记为正确?它似乎没有回答这个问题...... (28认同)
  • @bharal它对我有用 - 添加`p {margin:0; 填充:0; }覆盖`-webkit-margin`值.它们仍然可以在Chrome的javascript控制台中看到,但是作为被覆盖的值. (7认同)
  • 不是一个很好的答案,非零边距/填充使-`webkit-margin`完好无损,这在许多情况下是不可取的 (6认同)
  • line-height是默认值,margin和padding是0.正如我所说,使用重置样式表.还是一样. (3认同)

小智 8

我遇到过同样的问题.在Firefox中正确显示但不在Chrome中显示.

我仔细看了一下http://meyerweb.com/eric/tools/css/reset/,发现我没有在样式表中声明body标签的一般行高.将其设置为1.2,并在两个浏览器中重新创建正确的布局.


Cra*_*aig 5

只需删除标签之间的空白即可

<p id="one"></p>
<p id="two"></p>
Run Code Online (Sandbox Code Playgroud)

变为:

<p id="one"></p><p id="two"></p>
Run Code Online (Sandbox Code Playgroud)

  • 我个人不会这样做.未来的某些开发人员可能会使用HTML美化/格式化工具并重新添加空格或手动执行.原则是相同的,为什么":空"是有问题的. (2认同)

ruu*_*ter 5

我遇到了同样的问题.菜单链接之间的额外空间.以上解决方案均无效.对我有用的是负利润.做这样的事情:

margin: 0 -2px;
Run Code Online (Sandbox Code Playgroud)

新编辑:

这与-webkit-margins无关.最有可能的问题是内联元素.这是因为您的内联元素之间有空格或换行符.要解决此问题,您有很多选择:

  • 删除内联元素之间的所有空格和换行符
  • 跳过元素结束标记 - 例如</li>(HTML5不关心)
  • 负边际(如上所述 - IE6/7的问题 - 谁关心,升级;)
  • 设置font-size: 0;为有问题的内联元素容器(与android有问题,如果使用ems进行字体大小调整)
  • 放弃内联并使用浮动(这样你松开text-align:center)

由CHRIS COYIER更具体地解释和示例