2017-04-16 63 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規則可以設置其大小時才需要)。