2012-05-02 42 views
-1

美好的一天。將樣式應用於一個ListItem一個div內

我想知道是否可以將樣式應用於嵌套在div中的listitem 。在我的頁面上,已經有很多帶有列表項目的div,但我只想將樣式應用於該特定列表項目。

我想使用javascrip將樣式應用於listitem的唯一原因是因爲IE 7中存在不想接受div內css樣式的查看問題。

我的HTML是:

<ol>  
    <li> 
     GENERAL PRINCIPLES UNDERLYING THE REPRESENTIVE COUNCIL OF LEARNERS 
     <div id = "divv"> 
     <ol> 
      <li>....</li> 
      <li>....</li> 
      <li>....</li> 
      <li>....</li> 
      <li>....</li> 
     </ol> 
     </div> 
    </li> 
<ol> 

謝謝

+1

你是說你不能用類似「#風格的子列表divv ol li「作爲CSS選擇器? – Adrian

+0

通過它的id獲取div元素並執行DOM遍歷,使用javascript搜索DOM遍歷DOM,您將發現很多優秀的文章 – Kamal

回答

0

Ofcourse,你可以和它應該在IE7工作了,因爲它的東西IE一直支持,如;

#divv ol li{your style properties here} 

應該在所有的瀏覽器。唯一不適用的情況是,如果你在css的其他地方取消了「!li」樣式,那麼'!important'。

0

是的,你可以使用的getElementById和的getElementsByTagName的組合,然後運行該項目的環發現使用JavaScript將CSS樣式做到這一點。 下面就爲同一個的jsfiddle:http://jsfiddle.net/saganbyte/m65CF/1/

0

所有你需要做的就是搶在div一個ID,並從那裏遍歷DOM,直到你得到你想要的清單。然後,只需使用列表樣式對象來注入所需的樣式。

而且我懷疑,如果你不能從CSS做有更多的問題了進去,還有結構化CSS可以隨時申請(除非不支持當然)

這裏是一個小擺弄測試你提供的標記,它抓住div,找到它裏面的OL,然後添加一個邊框。

http://jsfiddle.net/Dj5gH/1/

var div = document.getElementById('divv'), 
    found = false, 
    elem = div.firstChild; 

while (!found) { 

    if (elem.nodeType == 1) { 
     elem.style.border = '2px solid red'; 
     found = true; 
    } 
    else elem = elem.nextSibling; 
};​ 
相關問題