问题 CSS - 使用em的子字体大小


使用不等于1的em时,使所有嵌套列表项具有相同大小的最有效方法是什么。例如,我希望此列表中的所有li的大小都是ul的父级的0.85em。我是否必须为每个“级别”深度创建一个单独的类?

<html>
<head>
    <style type="text/css">
        li
        {
            font-size: 0.85em;
        }
    </style>
</head>
<body>
    <ul>
        <li>Level 1 item
            <ul>
                <li>Level 2 item
                    <ul>
                        <li>Level 3 item</li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>
</body>
</html>

1148
2017-07-23 20:05


起源



答案:


应该管用。

li li {font-size: 100%;}

7
2017-07-23 20:36



确实如此,但这不是最有效的方式。 - Bobby Jack
@Bobby,为什么它不是最有效的方式? - You
在不向页面添加额外标记的情况下,这是最简单的方法。 - Matt


答案:


应该管用。

li li {font-size: 100%;}

7
2017-07-23 20:36



确实如此,但这不是最有效的方式。 - Bobby Jack
@Bobby,为什么它不是最有效的方式? - You
在不向页面添加额外标记的情况下,这是最简单的方法。 - Matt


使用“rem”单位进行字体大小调整。这解决了字体继承问题。

Johnathan Snook有一个 好文章 就此而言。


9
2017-07-09 21:16



是的,这确实是最好的方法。我只能添加你应该使用像素的回落值。像这样:li {font-size:8.5px; font-size:0.85em;}你应该在body元素上设置基本字体大小,但通常是在html上。 - Mike Eshva
@MikeEshva:你的css例子应该是{font-size:8.5px; font-size:0.85rem;} - chotchki
是的,订单很重要! - its_me
那是一篇非常好的文章!谢谢你,小伙伴! - Dimitris Damilos
请注意,“rem”仅适用于IE9 + - Travis


我希望这个列表中的所有li的大小都是ul的父级的0.85em

body > ul { font-size: 0.85em; }

会这样做的


0
2017-07-23 20:09





我的建议是给第一个 <ul> 一个id或类,并设置 font-size 那里。


0
2017-07-23 20:12





(这个答案假设你想要所有的li元素大小相同(你说两个你想要相同的大小,问题中的大小不同))

字体大小级联,所以如果你只是将它设置在外部元素上(比如包装div或其他东西),它内部的所有内容都会像你想要的那样缩小一步(我认为)。

<div id="navigation">
    <ul>
        <li>...</li>
        <li>
        <ul><li>...</li><li>...</li></ul>
        </li>
    </ul>
</div>

#navigation { font-size: 0.85em; }

0
2017-07-23 20:12



上面的例子可以正常工作。即使在IE6中,也不支持子选择器。 - Emil Stenström
是的 - 我正在使用他给我们的HTML。他没有指定浏览器兼容性,所以我假设他想要一些符合CSS2.1规范的东西。 - Bobby Jack
问题在哪里,他说他希望他们的大小不同? - Bobby Jack
“使所有嵌套列表项的大小相同”与“此列表中的所有li的大小为ul的父级的0.85em”。我倾向于第一个,但我不能确定,并且由于某种原因,人们正在低估我的答案,所以我只是想澄清一下。 - Emil Stenström
很公平;我没有取消你的答案,因为这似乎是一个真正的误解,你的答案确实有效。但我认为很清楚 - “使所有嵌套列表项目大小相同”意味着,我认为,“......彼此相同”。另一个引用只是声明它们应该是基本字体大小的0.85em的计算值 - 我没有看到的不一致。 - Bobby Jack


我同意Emil的观点,如果我有足够的重复点(这里是n00b),他就会投票给他。我会像他在第一点提到的那样使用一个类,所以它可以在同一个文档中重复使用。如果你想要跨浏览器并使用当前的css规范,那么我无法建议一个更好的真实世界的例子......滚动css 3和IE6的死亡!


0
2017-07-23 21:21



感谢您的道义支持! :) - Emil Stenström
我是怎么做到的,而且我认为让你认真对待并给出好的建议是不公平的 - Crayonz


li { font-size: 0.85em; }
li li { font-size: 1em; }

-1
2017-07-23 20:12