【发布时间】:2012-02-08 20:09:32
【问题描述】:
我正在学习 CSS,并在 StackOverflow 上阅读有关相对与绝对字体大小的问题。我遇到了两个线程。
1.在一个线程(CSS font size: relative vs. absolute values. Which to use?)中,其中一个答案实际上是一个尚未回答的问题:[QUOTE]
问题,这里很多人说 Pt 仅用于打印。但是,拥有一个简单的能力来使文本快速变成你想要的大小,而不记得什么 DIV 有什么 Em 或 % 值,这不是很好吗?例如,当您有:
<body>
<div id="box1">
test text sample1
<div id="box2">
test text sample2
<div id="box3">
test text sample3
<div id="box4">
test text sample4
</div>
</div>
</div>
</div>
我知道这是一种奇怪的结构,但是假设布局需要这样的结构来实现图形目的和 CSS 图像分层。所以我想让box1 font = 100%, box2 = 1.2em。 box3 = .8em,box4 = 1.6em
现在,问题是来自 box 1 的 Em 也转移到了它的所有孩子,如果我错了,请纠正我,所以这意味着 box2 不完全是 1.2em,当我们到达 box 4 的字体大小时真的很难说它是什么。而当我们使用 Pt 或 Px 时,它会保持我们想要的样子。
但是,Px 大小不灵活,当我远离屏幕时,我确实喜欢在浏览器菜单中放大字体。面对现实吧,它很方便。所以 Px 大小已经过时了。那么为什么不使用铂呢?浏览器差异有多大?
2。另一个线程有相同的问题 (Compounded relative font-sizes: a clean way to adopt the font-size of the child, not the parent element) 与数字,计算 - - 更具解释性,没有正确的答案:
例如,如果我有:
td { font-size: 1.3em }
h2 { font-size: 2em }
h3 { font-size: 1.6em }
p { font-size: 1.2 }
我的表格单元格中有标题/段落,我知道我可以通过以下方式避免混合字体大小:
td h2, td h3, td p { font-size: 1em }
这将导致我的表格单元格中的标题/段落的字体大小为 1.3em(td 的字体大小)。
但我正在寻找的是一种很好、干净的方式,让每个子元素都拥有原始字体大小,而不是父元素。
我真的很想避免做以下事情(当然我想避免使用 px):
td h2 { font-size: 1.54em } // 1.3 x 1.54 ~ 2
td h3 { font-size: 1.23em } // 1.3 x 1.23 ~ 1.6
td p { font-size: 0.92em } // 1.3 x 0.92 ~ 1.2
对于熟悉 LESS 的任何人,我正在使用它并认为我应该能够使用它来为我进行计算,例如。使用访问器:
td h2 { font-size: h2['font-size'] / td['font-size'] }
这至少会使用原始值进行计算,但感觉和上面一样笨拙,此外,似乎 LESS 不再支持访问器了。
这在概念上似乎很简单,我觉得答案在盯着我看,但我一直在努力解决这个问题,但在任何地方都找不到答案。
请帮忙!在这一点上,如果有人告诉我这无法完成并且可以继续使用像素值,我会很乐意相信他们!
现在我的问题可能很明显...... 有没有更好的方法来使用相对字体大小(或任何相对大小——如宽度、高度等)而没有孩子被父元素影响的元素?
【问题讨论】: