html - 根据字体大小确定 div 的高度
问题描述
我有以下代码,其中字体大小、行高和高度都定义为相同的值。我希望所有字体都包含在容器中。
#container{
font-size:25pt;
line-height:25pt;
height:25pt;
overflow:hidden;
}
正如您在CodePen中看到的那样,“p”的底部被 div 切掉了。
要求:
- 溢出必须隐藏
- 文本将始终位于一行(无需计算 2 行以上的文本)
鉴于我知道字体的点值,我的问题实际上归结为如何确定 div 的确切高度(以英寸为单位)。
根据这篇文章中的第二个答案,我希望所有内容都适合 div。我在哪里错了?
解决方案
您是否在将内容装入 div 时遇到问题,或者您只是想计算所需打印表面的大小?
内容适合此 div 所需的高度将根据文本量而有所不同。如果您知道此文本中有多少行(基于字体大小),您可以简单地将其与行高相乘。这将为您提供 pt 中 div 的大小。之后,您可以使用像这个这样的在线计算器来计算完整尺寸。
我在您的 CSS 中看到的问题是您的 line-height 和 font-size 完全相同。这可能(并且可能会)导致文本重叠问题,或者在最好的情况下,文本难以阅读。这就是它的样子:
我可能会选择行高的标准/黄金比例=字体大小*1.5
这就是它的样子:
希望这能回答你的问题。
更新:
所以,你说你的文字被切断了。由于您的 overflow: hidden 属性以及您的 line-height 和 font-size 相同的事实,它被切断了。
检查这个jsfiddle。
#container{
font-size:25pt;
line-height:1;
overflow: hidden;
border: 1px solid red;
}
你可以做些什么来解决这个问题是省略 div height 属性,只增加 line height 属性(如上所述)。如果您真的想设置 div 高度,您可以将其设置为 37.5pt(或 0.52083333333334in),如 JS Fiddle所示
#container {
font-size: 25pt;
line-height: 1.5;
height: 0.52083333333334in;
overflow: hidden;
border: 1px solid red;
}
现在没有文本被截断,并且您的 div 在 pt 中的高度为 37.5(font-size*1.5),或者,正如我所说的 0.52083333333334in。
如果这回答了您的问题,请将其标记为答案,否则发表评论,我将尝试更新我的答案。
推荐阅读
- java - Java中的中位数和平方根
- python - 如何使用循环将列表附加到字典
- php - 是否可以使用 Migrating 和 Seed Once 进行 InMemory 测试
- python - 代码不能作为函数工作,但可以在主代码中工作。(Python,pygame)
- django - Ajax - LocalHost 上的 500 内部服务器错误
- angular - 在更改事件之前以角度形式将先前选择的值存储在选择框中
- react-native - 如何使用 react-native-testing-library 提交表单或在输入上按 enter 键
- image - 大的 png 文件不会在 Chrome/Chromium 中呈现
- javascript - 如何使用 nodeJS 获取当前系统音量
- android - 您是否需要 android sdk 才能在真正的 android 设备上使用 appium?