【问题标题】:Is it possible to achieve line-height consistency in all browsers?是否有可能在所有浏览器中实现行高一致性?
【发布时间】:2018-12-03 21:30:20
【问题描述】:

是否可以在所有浏览器中实现行高一致性?

我附上了一张图片。您会注意到我通过 Photoshop 手动添加的一个红色矩形框和一个绿色矩形框(宽度和高度都相同),以帮助显示虚线(红色框下方)和“关注者:3197179”文本。

似乎只有 Firefox 以不同方式显示元素。当我应用线高时,我注意到了这一点。有什么办法可以让所有浏览器都保持一致?

我正在使用 Firefox 3.6.13、Safari 5.0.3、Opera 10.63 和 Chrome 8.0.552.231。

.clearfix,
.container {
  display: block;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

li {
  position: relative;
  margin: 0 0 0 0;
  padding: 12px 0;
  border-bottom: 1px dotted #E7E7E7;
}

li img {
  float: left;
  margin-top: 0;
}

li p {
  margin: 0 0 0 58px;
  padding: 0;
  font-weight: normal;
  border: none;
  font-size: 1em;
  line-height: 1.3em;
}

li p.name {
  position: relative;
  padding-top: 0;
  font-size: 1.1em;
  font-weight: bold;
}
<ul>
  <li class="clearfix">
    <a href="#"><img width="50" src="http://localhost:3000/images/foobar.gif" alt="thumb"></a>
    <p class="name">
      <a href="#">Jessica Simpson</a>
    </p>
    <p>Blurred out text here</p>
    <p>Followers: 3197179</p>
  </li>
</ul>

【问题讨论】:

  • 我知道差别只有一两个像素。但这是客户的要求和“必须”。这样的事情有可能吗,还是我应该向客户解释,浏览器之间的 1-2 像素差异是不可能实现的?
  • 嗨,Flack,我可以实现某些目标,不费吹灰之力,也无需“css hacks”,就可以让所有浏览器的可视化看起来都一样。但是,我想知道我最初帖子中的案例是否属于“不可能”类别
  • 好吧,即使在最坏的情况下,您也总能想出一些“聪明”的技巧。但我真的不认为这是值得的努力。虽然我不是大师,但有人可以提出清晰有效的解决方案。

标签: html css


【解决方案1】:

您目前正在使用 em。也许您可以通过尝试在行高和字体大小中使用 px 来尝试更具体。也尝试在这些文本中使用填充,我认为它可能会起作用;)。

在你做的任何跨浏览器的事情中。没有具体的方法可以使每个渲染器都相同。这始终是大多数客户不理解的梦想。对我来说,最好总是向他们解释他们想要什么,以及我们在诸如 1px/2px 差异之类的事情上花了多少时间。这很正常。您可以查看this video by Andy Clarke speaking about cross browser and some other cool stuff

【讨论】:

  • 嗨,Ragingmon,尝试使用像素代替。结果差了很多。这意味着更多的空间/差距。有趣的视频 :-) 感谢您指出这一点
  • 没问题,伙计。那么到目前为止有什么解决方案吗? :D
  • 我基本上只是解释了一下。在所有网络浏览器上完美是不可能的:-)
【解决方案2】:

您是否使用 CSS 重置?这些有助于缓解大多数跨浏览器问题。 Meyer Web 有一个受欢迎的:http://meyerweb.com/eric/tools/css/reset/

【讨论】:

  • 嗨,Babak,是的,目前正在使用包含 reset.css 且已加载的蓝图
【解决方案3】:

您只能为 Mozilla 添加line-height,方法是:

@-moz-document url-prefix() {
    *, body {
        line-height: [as per your requirement];
    }
}

【讨论】:

【解决方案4】:

您是否指定了任何通用规则?例如:

* {
    margin: 0;
    padding: 0;
}
body {
    font-size: 100%;
    line-height: 1;
}

有时它很有帮助,即使没有完整的 reset.css 方法。

【讨论】:

  • 是的,也设置了这些。我仍然看到初始帖子中显示的屏幕截图中存在 1-2 像素的间隙差异
  • 我发现这在另一个环境中很有用。感谢分享!
【解决方案5】:

这可能是字体的渲染方式。尝试将其用作字体系列。

font-family:"Arial Unicode MS","Lucida Sans Unicode";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2010-09-07
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多