【发布时间】:2018-12-22 07:08:44
【问题描述】:
我发现的几乎所有问题和答案都与视口大小有关;这真的不是我的问题。
拿着这支笔...https://codepen.io/njt1982/pen/pZjZNM
我有一个非常基本的 Bootstrap 4 网格,如下所示:
<div class="container mt-4">
<div class="row">
<div class="col border"><div class="tile"><span>A</span></div></div>
<div class="col border"><div class="tile"><span>B</span></div></div>
...
...
</div>
<div class="row">
<div class="col border"><div class="tile"><span>A</span></div></div>
<div class="col border"><div class="tile"><span>B</span></div></div>
...
...
</div>
...
...
</div>
还有一些 CSS 可以将它们变成正方形(使用 padding-top: 100% 技巧):
.col {
padding: 0;
}
.col:not(:last-child) {
border-right: none !important;
}
.row:not(:last-child) .col {
border-bottom: none !important;
}
.tile {
padding: 100% 0 0;
font-size: 5vw;
}
.tile span {
position: absolute;
left: 0;
top: 50%;
line-height: 0;
width: 100%;
text-align: center;
}
这里的问题是 5vw 使字体在我的 2560px 宽视口上的大小正好合适,但是当我到达下断点时,它不再填充单元格。我想避免大量的媒体查询来“调整”它。
是否有任何仅 CSS 的方式来表示“font-size = container_height”?
-
font-size: 100%似乎只是将字体设置为基本大小(不是父大小,就像你期望height: 100%做的那样)。有些人喜欢em's... - 我已经尝试过
vh,并且在视口高度发生变化之前效果很好(与 vw 的问题相同)。 - 我读过一些关于 vb 的内容(关于父块),但这似乎不起作用?我相信这仍然只是理论上的。
- 我知道 JS-options 可以计算父级的高度并设置它...但我觉得这是 CSS 应该能够做的事情,我错过了一块拼图。李>
- 答案可能在于转换吗?!或
calc()?
更新:使用 SVG 的可能答案? https://stackoverflow.com/a/51333267/224707
【问题讨论】:
-
您需要针对这种特殊情况的通用解决方案吗?
-
嗯,我最初的目标是一个通用的“字体大小 = 父身高”解决方案,但我愿意接受来自邪恶和明智社区的建议! :)
-
我可能会有不同的想法:我将字体大小设置为特定的可缩放值,然后考虑该值构建布局,这样可能更容易
-
那肯定会更容易,是的......但它不像“响应式”。
标签: html css responsive-design font-size