2017-04-16 29 views
0

我在CSS中为我的网站创建了一个嵌套的ol,li列表类,但是由于每个li都显示在不同的font-size中,导致一些错误。尽管我已经定义了font-size嵌套html列表中不同的字体大小

.number_list ol { 
     font:normal 1.2em 'Arial' ,Helvetica; 
     text-align:justify; 
    } 
.number_list li{ 
     list-style:decimal; 
     list-style-position:outside; 
     font-size:1.2em; 
    } 
    .number_list ol li{ 
     list-style:lower-alpha; 
     list-style-position:outside; 
     margin-right:5px; 
     font-size:1.2em; 
    } 
    .number_list ol li ol li { 
     list-style:lower-roman; 
     list-style-position:outside; 
     margin-right:5px; 
     margin-top:5px; 
     font-size:1.2em; 
    } 

回答

0

那是因为你正在使用em,您可以使用rem代替。

em等于适用于所讨论元素的父级的字体的大小。而是将rem应用于元素的根。

MDN

EM

这个单位表示元素的计算的font-size。如果在font-size属性本身上使用,则表示该元素的继承的 font-size

本机通常用于创建可伸缩的布局,即使用户更改了字体的大小,也可以保持页面的垂直节奏。 CSS属性line-height,font-size,margin-bottommargin-top通常具有以em表示的值。

REM

这个单位表示根元素的字体大小(例如,<html>元件的font-size)。当在这个 根元素的字号上使用时,它表示它的初始值。

该单元在创建完美可扩展布局方面非常实用。如果目标浏览器不支持这种布局,则可以使用em单元实现 ,但这会稍微复杂一些。

.number_list ol { 
 
    font: normal 1.2rem 'Arial', Helvetica, text-align:justify; 
 
} 
 

 
.number_list li { 
 
    list-style: decimal; 
 
    list-style-position: outside; 
 
    font-size: 1.2rem; 
 
} 
 

 
.number_list ol li { 
 
    list-style: lower-alpha; 
 
    list-style-position: outside; 
 
    margin-right: 5px; 
 
    font-size: 1.2rem; 
 
} 
 

 
.number_list ol li ol li { 
 
    list-style: lower-roman; 
 
    list-style-position: outside; 
 
    margin-right: 5px; 
 
    margin-top: 5px; 
 
    font-size: 1.2rem; 
 
}
<div class="number_list"> 
 
    <ol> 
 
    <li>test a</li> 
 
    <li>test b</li> 
 
    <li>test c</li> 
 
    <li>test d 
 
     <ol> 
 
     <li>a</li> 
 
     <li>b</li> 
 
     <li>c</li> 
 
     <li>d</li> 
 
     </ol> 
 
    </li> 
 
    </ol> 
 
    <div>

-1

的 '错误' 是您正在使用em

“Ems”(em):“em”是一个可扩展的单位,用于web文档 媒体。 em等于当前字体大小,例如,如果文档的字体大小为12pt,则1em等于12pt。 Ems为 ,因此2em等于24pt,.5em等于6pt, 等。由于 的可扩展性和移动设备友好性,Ems在Web文档中变得越来越流行。

来源:http://kyleschaeffer.com/development/css-font-size-em-vs-px-vs-pt-vs/

总之,要设置每个子元素的字体大小比其前一个大120%。 要修复它,只需使用绝对单位设置字体大小 - 例如pt

您可以参考此CodePen中的示例:https://codepen.io/masterdoctor/pen/GmJEbN?editors=1100

+0

为什么downvote?你能解释一下答案的错误吗? – SamJakob

0

em单元,在一个font-size声明使用时,表示父元素的字体大小。因此,您可以在嵌套元素中累积设置更大和更大的大小。

要在整个元素中具有相同的字体大小,只需将其设置在最外面的元素上即可。这意味着保持您的font:normal 1.2em 'Arial' ,Helvetica;规则并删除font-size规则(或将其更改为font-size: 1em,但只有在其他一些CSS规则可以设置其大小时才需要)。