2016-05-22 19 views
-2

好了,所以我一直在學習網絡編程約2個月,並已採取網上課程,但在過去的幾個星期我真的還不能換我的頭周圍的這使用元素

概念就拿我的網站我的導航頁面,例如在那裏我有

<ul class = "main-nav js--main-nav"> 

    <li><a href = "#">About us</a></li> 
    <li><a href = "#">Sign up</a></li> 

    </ul> 

現在在我的CSS我有

.main-nav 
{ 
    list-style:none; 
    float:right; 
} 

.main-nav li 
{ 
    display:inline-block; 
} 

.main-nav li a 
{ 

    text-decoration:none; 

} 

你看,我很困惑,把我的造型內.main-nav li.main-nav li a。例如,如果我將text-decoration: none放在我的.main-nav li之內,它將不起作用。同樣如果我做display: inline-block,它也不起作用。

我只是真的不明白爲什麼事情會發生,它究竟是什麼結構?爲什麼我不能在li元素中裝飾文字?鏈接和li元素被附加,所以這看起來很奇怪。任何見解都會被讚賞。

+0

就「文本修飾」而言,你的LI沒有下劃線,包含默認情況下有下劃線的A.既然這是A的下劃線,你想擺脫,那就是風格需要去的地方。 –

+0

您可以將文字修飾應用於'li',它不會對後代'a'造成影響,因爲'a'已將其'text-decoration'設置爲'underline'的默認規則,所以您需要覆蓋'a'規則。 –

+0

這是有道理的...那麼內聯塊呢? –

回答

1

/*Now in my CSS I have*/ 
 
.main-nav 
 
{ 
 
    list-style:none; 
 
    /* float:right; */ 
 
} 
 

 
.main-nav li 
 
{ 
 
    display: inline-block; 
 
    text-decoration: none; 
 
} 
 

 
.main-nav li a 
 
{ 
 

 
    text-decoration:inherit; 
 

 
}
<ul class = "main-nav js--main-nav"> 
 

 
    <li><a href = "#">About us</a></li> 
 
    <li><a href = "#">Sign up</a></li> 
 

 
    </ul>

在上面的例子中,你會看到你確實可以在LI標籤聲明text-decoration屬性。你只需要在A標籤中聲明並繼承。它所做的是繼承父項或容器的內容。請訪問以下鏈接: text decorationIheritance

Mozilla開發者網絡是一個很好的資源。只要不斷學習,最終這些東西將成爲第二天性......它只需要時間。

我注意到float:right,因爲在我的例子中不需要它。

+0

兩件事情,如果我使用繼承,在主導航裏,它會繼承「main-nav」。此外,爲什麼display:inline-block,如果我嘗試將其放在main-nav li {{}部分中,則無法工作?我目前效果最好的方法是將兩個列表元素並排排列在一起 –

+0

1.)我對第一個問題的含義並不十分清楚。子元素將從它聲明的第一個父代繼承,如示例中所示。查看答案中的繼承鏈接並進行探索。 2.)如果將內嵌塊應用於A標記,則它不會並排顯示,因爲A標記是唯一的孩子。內聯塊需要應用於兄弟姐妹,這就是爲什麼它適用於LI標籤,因此它們並排顯示。 我希望我已經理解你的評論,我希望這有助於。 – orangeh0g

+0

我明白。我想這是我需要從經驗中發展出來的東西 –