html - 使用 vw 字体大小时填充文本

标签 html css margin padding viewport-units

我正在使用 vw 根据打开页面的浏览器放大文本。但是,填充比预期的要大。我希望它恰好位于我页面的右上角,几乎没有填充。 (我尝试了 padding:0px; 但没有结果)。这是一个例子:

在 HTML 中:

<heading>some text</heading>

在 CSS 中:

heading{
  font-size:5vw;
  padding:0px;
  margin:0px;
}

最佳答案

这可能是因为大多数字体(包括系统字体)没有完全延伸到每个字形的边界框的顶部和底部。这意味着即使元素的高度为 1em,大写字母也不会触及元素的顶部。

要解决这个问题,您可以尝试使用您的字体,看看字母的顶部和底部落在哪里。这对于每种字体可能不同,并且还取决于上升器的高度。通常,上升股高于上限高度。

对于 Times New Roman,以下适用于大写字母:

<span>Foobar</span>

span {
  background: #ddd;
  display: inline-block;
  line-height: .70em;
  vertical-align: text-top;
}

这里要改变的行是行高。玩这个应该会给你你需要的结果。例如,.70 仍将“O”剪掉了一点。

我建议使字体比需要的大得多,调整行高,然后再缩小。

span {
  background: #ddd;
  display: inline-block;
  line-height: .70em;
  vertical-align: text-top;
}

body {
  padding: 0;
  margin: 0;
  font: serif;
  font-size: 20vw;
}
<span>FOOBAR</span>

关于html - 使用 vw 字体大小时填充文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45702429/

相关文章:

javascript - 如何向asp.net MVC链接元素添加ID属性

html - Safari CSS 问题(负边距?)

javascript - Grunt browserify 在需要 react-bootstrap-typeahead 时失败

css - Div定位跟随另一个div

css - PHP - 没有边距的图像

html - 调整浏览器窗口大小时图像 float

javascript - HTML5 MediaSource Extension 'updateend' 事件如何报告时间?

html - Flexbox 宽度随内容变化,应固定宽度

javascript - 将 SVG 路径纵向分割为多种颜色

css - 根据内部 child 统一调整parent wrapper的高度和宽度