標(biāo)簽。這種語義化的特性不僅提升了我們網(wǎng)頁的質(zhì)量和語義,并且大量減少了曾經(jīng)代碼中用于CSS必須調(diào)用的class和id屬性。事實(shí)上,CSS3也是可以然通過我們忽略掉所有 class和id的。 跟class屬性說再
見,歡迎整潔的標(biāo)簽
結(jié)合了富有新的語義化標(biāo)記的HTML5,CSS3為web設(shè)計師們的網(wǎng)頁提供了神一般的力量。有了HTML5的能量,我們將得到更多的對文檔代碼的控制權(quán),有了CSS3的能量,我們的控制權(quán)將趨于無窮大!
即使沒有那些高級的CSS選擇器,我們?nèi)匀豢梢酝ㄟ^強(qiáng)大的HTML5條調(diào)用不同的容器而不勞駕class和id這類屬性。像以往的DIV布局,我們在css中可能要這樣調(diào)用:
1 2 3 4 5 6 7 |
div#news {} div.section {} div.article {} div.header {} div.content {} div.footer {} div.aside {} |
我們再來看看基于HTML5的實(shí)例:
1 2 3 4 5 |
section {} article {} header {} footer {} aside {} |
這是個進(jìn)步,但仍有一些問題需要解決。在<div>實(shí)例中,我們需要通過class或id屬性來調(diào)用頁面中的元素。這種邏輯將允許 我們將樣式應(yīng)用到文檔中的任何一個元素上,無論是整體還是個體。例如在<div>實(shí)例中,.section 和 .content元素很容易定位。但是在HTML5實(shí)例中,實(shí)際文檔中會有很多個section元素。其實(shí)我們可以添加一些特定的屬性選擇器來調(diào)用那些不 同的section元素,不過謝天謝地,我沒現(xiàn)在可以用少量的高級CSS選擇器來定位不同的section元素。
不使用class和id定位HTML-5元素
下面讓我們來看看如何在不使用class和id的情況下定位HTML5頁面元素的一個實(shí)例,我們可以使用三種CSS選擇器來定位和辨別實(shí)例中的元素。如下:
- 后代選擇器:[CSS 2.1]: E F
- 兄弟選擇器:[CSS 2.1]: E + F
- 子元素選擇器:[CSS 2.1]: E > F
下面讓我們來看看如何不使用class和id而完成對文檔中的那些section元素的定位吧:
定位最外層的<section>元素
考慮到我們的例子并不是一套完整的HTML5代碼,所以我們假定在<body>元素下有個<nav>元素與<section>元素是兄弟元素。這樣的話,我們就可以向下面代碼那樣定位最外層的<section>了:
定位下一個<section>元素
作為最外層<section>元素下的唯一直屬子集元素,這個<section>元素也許可以這樣定位:
定位<article>元素
可以定位<article>元素的方法有很多,不過最簡單的方法當(dāng)然就是后代選擇器了:
1 |
section section article {} |
定位<header>、<section>和<footer>元素
這三個元素分別在兩個地方都出現(xiàn)過,一是在<article>元素中出現(xiàn),另一是在<aside>元素中出現(xiàn)。這種差別能讓我們輕松定位每個元素。
1 2 3 |
article header {} article section {} article footer {} |
或者一起定義:
1 2 3 |
section section header {} section section section {} section section footer {} |
到目前為止,我們已經(jīng)使用CSS2.1選擇器排除掉了所有的class和id。那么我們?yōu)槭裁催需要使用CSS3呢?我很高興你能這么問…
上一頁 [1] [2] [3] 下一頁