在CSS中设置字体大小时,为什么不设置<;车身>;到6.25%,以便px和em单位相同?

在CSS中设置字体大小时,为什么不设置<;车身>;到6.25%,以便px和em单位相同?,css,fonts,Css,Fonts,我正在阅读关于如何将上的字体设置为62.5%是一个很好的实践,以便以后可以使用像素单位的除以10转换 但我想知道:为什么不将设置为6.25%?然后,您可以使用与像素单位相同的em单位尺寸,假设默认浏览器字体大小为16像素 例如 如果要执行此操作,则必须确保调整页面上每个字体的大小。如果您遗漏了任何内容,默认情况下它将非常小(1px) 调整每种字体的大小可能比你想象的更令人畏惧,因为当你使用相对字体大小时,你必须非常具体。两个问题 我似乎记得,如果您使用相对单位(如ems)将初始字体大小设置得很小

我正在阅读关于如何将
上的字体设置为62.5%是一个很好的实践,以便以后可以使用像素单位的除以10转换

但我想知道:为什么不将
设置为6.25%?然后,您可以使用与像素单位相同的em单位尺寸,假设默认浏览器字体大小为16像素

例如


如果要执行此操作,则必须确保调整页面上每个字体的大小。如果您遗漏了任何内容,默认情况下它将非常小(1px)

调整每种字体的大小可能比你想象的更令人畏惧,因为当你使用相对字体大小时,你必须非常具体。

两个问题

  • 我似乎记得,如果您使用相对单位(如ems)将初始字体大小设置得很小,如果用户调整文本Internet Explorer的大小,则字体大小将在设置之间发生很大变化

    这是一个奇怪的现象,我不确定它是否仍然出现在IE中,也不知道你是否担心IE中的用户会改变字体大小

  • 每次嵌套元素时,您都有可能要求自己重新设置字体大小。

    尽量解释这一点,但简而言之,如果您在ems中使用字体大小,最好尽可能少地使用
    font-size
    ,而不是在使用
    font-size
    时使其更易于使用

    例如:假设您希望站点上的所有
  • 都使用12像素的字体大小

    li {
        font-size: 12em;/* 12px */
    }
    
    如果您随后使用以下HTML:

    <ul>
        <li>
            <ul>
                <li>
                ...
    
    否则,内部
  • s将为12像素*12像素=144像素

    Ems不是像素。Ems表示最近祖先字体大小的百分比,而像素表示实际像素。在我看来,尝试将ems转换为像素比其他方法更令人困惑。您最好将
    设置为网站上最常用的字体大小,仅在需要时更改,并在基于em的声明后的注释中以像素为单位添加预期大小。(这样,以后如果你出了什么问题就更容易知道了。)

    (当然,我们避免使用像素的唯一原因是,当用户在浏览器中更改字体大小时,IE不会更改以像素为单位的文本大小。如果你不担心,那么就使用像素。)

  • 简短回答:不要这样做。使用
    px
    设置字体大小。如果需要更大的字体,请使用更多的
    px

    长答案:
    设置基本字体的想法是让人们清楚地知道
    em
    s和
    ex
    s有多大。如果您的基本字体大小是
    10px
    ,那么
    1.0em
    就是
    10px
    1.2em
    就是
    12px
    ,诸如此类。这似乎很简单。一旦容器改变了底部的字体大小,这个想法就失败了。如果您在
    div
    中,字体大小设置为
    20px
    ,那么
    1em
    会突然变大一倍

    情况变得更糟了。人们开始建议使用
    62.5%
    而不是
    10px

    (请注意,
    16*0.625=10
    )。这是因为指定字体大小的百分比是解决旧版本Internet Explorer问题的一种解决方法。除非使用百分比,否则最终用户无法“放大”

    但是,
    %
    (作为默认字体应用时)是一个绝对单位。它看起来像是一个相对的单位,但在这里,它是用户代理默认字体大小的一个百分比,字体大小以点为单位指定。这引入了一个关于用户代理的微妙且不正确的假设,即屏幕分辨率为96 dpi。这种假设通常会产生如下文本:

    嘿,看看我,我太小了,看不懂

    总而言之:
    不要对旧版本的IE使用hacks(4年是保持向后兼容性的充足时间;IE7本月已经有4年了)

    不要假设用户代理的分辨率,也不要将主体字体大小设置为百分比


    如果您需要更精确的排版控制,请使用CSS框架,如。

    未经验证,我会说CSS不能接受超过1个逗号后面的数字,以百分比表示,但我不确定,因此我将其作为注释:因为它打破了关于“em”含义的任何约定…@calmh:这没有问题,我会知道em是什么意思:)如果这能让我的生活更轻松,那它就值得了:)非常奇怪,因为我读到我应该使用ems作为一个单元,而不是px,主要是为了在Internet explorer中更改字体大小。我回答的主要内容应该是“不要为IE做特殊的事情,它不再需要它们。”以标准为目标,一切都会好起来。IE是否还需要这个还有争议。如果使用
    px
    调整文本大小,从版本8开始,IE用户仍然无法调整文本大小。它们可以进行缩放,但缩放与增加文本大小不同。这对你是否重要取决于你的听众。这很可能不值得迎合IE上那些想要调整文本大小的人,但我认为你不能明智地对此制定一个全面的规则。@Paul,你是对的,但这样做会损害其他浏览器的体验(对于网页设计师来说,要正确实现这一点要困难得多)。如果用户想要做的只是将其变大(一个可访问性问题),他们可以制作自定义样式表,在Windows中使用大字体,甚至降低屏幕分辨率。我想
    Ctrl+
    是一个更可能的动作。@Seth:哦,整个
    6.25%
    的事情肯定有问题。但我不认为一般使用ems会导致其他浏览器出现问题。
    <ul>
        <li>
            <ul>
                <li>
                ...
    
    li li {
        font-size: .083em;/* 12px */
    }