利用CSS3的定位頁面元素
發(fā)布時(shí)間:2009-08-29 20:25:09 作者:佚名
我要評(píng)論

讓我們通過完成一下的實(shí)例來了解一下如何在不使用無用的class和id屬性的情況下利用CSS3定位頁面元素。
雖然我們已經(jīng)使用CSS2.1選擇器排除掉了所有的class和id,顯然還會(huì)有很多更復(fù)雜的情況需要CSS3的高級(jí)選擇器來解決。讓我們通過完成一下的實(shí)例來了解一下如何在不使用無用的class和id屬性的情況下利用CSS3定位頁面元素。
相關(guān)下載:CSS3.0參考手冊(cè)下載
使用一個(gè)唯一的日志(post)ID定位所有日志
wordpress提供給我們一種包含了ID的每篇日志的源代碼輸出。這種信息通常用于導(dǎo)航和/或了解資料的意圖,不過CSS3可以利用這些唯一的ID來定義這些日志的樣式。當(dāng)然,你還可以像往常那樣為每篇日志添加class=”post”這樣的屬性,但這就與我們練習(xí)的意圖相沖突了(再加上它沒有一點(diǎn)樂趣所在)。使用”子字符串匹配選擇器”,我們就可以像下面這樣定位所有日志和它們的不同元素了。
article[id*=post-] {} /* 定位所有日志 */
article[id*=post-] header h1 {} /* 定位所有日志中的h1標(biāo)簽 */
article[id*=post-] section p {} /* 定位所有日志中的p標(biāo)簽 */
我沒仍然可以使用同樣的方式定位評(píng)論的元素和它們的子元素。
article[id*=comment-] {} /* 定位所有評(píng)論 */
article[id*=comment-] header h1 {} /* 定位所有評(píng)論中的h1標(biāo)簽 */
article[id*=comment-] section p {} /* 定位所有評(píng)論中的p標(biāo)簽 */
定位一些指定的區(qū)域(section)或文章(article)
有很多博客的日志量和評(píng)論量都相當(dāng)大,HTML 5 會(huì)將它們由<section>或<article>元素組成。為了定位哪些指定的<section>或<article>元素,我們就要轉(zhuǎn)而使用強(qiáng)大的“:nth-child”選擇器了:
section:nth-child(1) {} /* 選擇第一個(gè) <section> */
article:nth-child(1) {} /* 選擇第一個(gè) <article> */
section:nth-child(2) {} /* 選擇第二個(gè) <section> */
article:nth-child(2) {} /* 選擇第二個(gè) <article> */
同樣,我們可以使用“:nth-last-child”選擇器定位反序的一些元素。
section:nth-last-child(1) {} /* 選擇最后一個(gè) <section> */
article:nth-last-child(1) {} /* 選擇最后一個(gè) <article> */
section:nth-last-child(2) {} /* 選擇倒數(shù)第二個(gè) <section> */
article:nth-last-child(2) {} /* 選擇倒數(shù)第二個(gè) <article> */
使用更多的方式選擇指定元素
另一種選擇HTML5中指定元素(如header、section和footer)的方法就是利用”:only-of-type”選擇器的優(yōu)勢(shì)。由于這些HTML5元素通常會(huì)在很多地方出現(xiàn)不止一次,所以當(dāng)我們想定位那種在父元素下僅出現(xiàn)過一次的標(biāo)簽時(shí)這種方法很方便。例如,我們要選擇的是在某元素中有切僅有的唯一一個(gè)元素,如以下代碼:
<section>
<section></section>
<section>
<section>定位這個(gè)section元素</section>
</section>
<section>
<section>定位這個(gè)section元素</section>
</section>
<section>
<section>但不定位這個(gè)section元素</section>
<section>和這個(gè)section元素</section>
</section>
<section></section>
</section>
我們可以僅使用以下一行選擇器:
section>section:only-of-type {}
再次嘮叨,你可以固執(zhí)的為每個(gè)元素添加ID屬性,但你會(huì)失去代碼的可擴(kuò)展性、維護(hù)性和絕對(duì)簡潔的結(jié)構(gòu)與表現(xiàn)相分離。CSS3的確能讓我們可快速更方便的定位幾乎所有沒有ID和class屬性的頁面元素。
相關(guān)下載:CSS3.0參考手冊(cè)下載
使用一個(gè)唯一的日志(post)ID定位所有日志
wordpress提供給我們一種包含了ID的每篇日志的源代碼輸出。這種信息通常用于導(dǎo)航和/或了解資料的意圖,不過CSS3可以利用這些唯一的ID來定義這些日志的樣式。當(dāng)然,你還可以像往常那樣為每篇日志添加class=”post”這樣的屬性,但這就與我們練習(xí)的意圖相沖突了(再加上它沒有一點(diǎn)樂趣所在)。使用”子字符串匹配選擇器”,我們就可以像下面這樣定位所有日志和它們的不同元素了。
article[id*=post-] {} /* 定位所有日志 */
article[id*=post-] header h1 {} /* 定位所有日志中的h1標(biāo)簽 */
article[id*=post-] section p {} /* 定位所有日志中的p標(biāo)簽 */
我沒仍然可以使用同樣的方式定位評(píng)論的元素和它們的子元素。
article[id*=comment-] {} /* 定位所有評(píng)論 */
article[id*=comment-] header h1 {} /* 定位所有評(píng)論中的h1標(biāo)簽 */
article[id*=comment-] section p {} /* 定位所有評(píng)論中的p標(biāo)簽 */
定位一些指定的區(qū)域(section)或文章(article)
有很多博客的日志量和評(píng)論量都相當(dāng)大,HTML 5 會(huì)將它們由<section>或<article>元素組成。為了定位哪些指定的<section>或<article>元素,我們就要轉(zhuǎn)而使用強(qiáng)大的“:nth-child”選擇器了:
section:nth-child(1) {} /* 選擇第一個(gè) <section> */
article:nth-child(1) {} /* 選擇第一個(gè) <article> */
section:nth-child(2) {} /* 選擇第二個(gè) <section> */
article:nth-child(2) {} /* 選擇第二個(gè) <article> */
同樣,我們可以使用“:nth-last-child”選擇器定位反序的一些元素。
section:nth-last-child(1) {} /* 選擇最后一個(gè) <section> */
article:nth-last-child(1) {} /* 選擇最后一個(gè) <article> */
section:nth-last-child(2) {} /* 選擇倒數(shù)第二個(gè) <section> */
article:nth-last-child(2) {} /* 選擇倒數(shù)第二個(gè) <article> */
使用更多的方式選擇指定元素
另一種選擇HTML5中指定元素(如header、section和footer)的方法就是利用”:only-of-type”選擇器的優(yōu)勢(shì)。由于這些HTML5元素通常會(huì)在很多地方出現(xiàn)不止一次,所以當(dāng)我們想定位那種在父元素下僅出現(xiàn)過一次的標(biāo)簽時(shí)這種方法很方便。例如,我們要選擇的是在某元素中有切僅有的唯一一個(gè)元素,如以下代碼:
復(fù)制代碼
代碼如下:<section>
<section></section>
<section>
<section>定位這個(gè)section元素</section>
</section>
<section>
<section>定位這個(gè)section元素</section>
</section>
<section>
<section>但不定位這個(gè)section元素</section>
<section>和這個(gè)section元素</section>
</section>
<section></section>
</section>
我們可以僅使用以下一行選擇器:
section>section:only-of-type {}
再次嘮叨,你可以固執(zhí)的為每個(gè)元素添加ID屬性,但你會(huì)失去代碼的可擴(kuò)展性、維護(hù)性和絕對(duì)簡潔的結(jié)構(gòu)與表現(xiàn)相分離。CSS3的確能讓我們可快速更方便的定位幾乎所有沒有ID和class屬性的頁面元素。
相關(guān)文章
使用CSS3的appearance屬性改變?cè)氐耐庥^的方法
大家都知道每個(gè)瀏覽器對(duì)HTML元素渲染都不一樣,比如說button,在chrome和ff中,渲染出來的效果都是不盡相同的。這樣一來就有了今天這個(gè)思路,利用瀏覽器的對(duì)元素的默認(rèn)渲染2015-12-12基于jquery+css3實(shí)現(xiàn)的元素顫抖特效源碼
jquery+css3實(shí)現(xiàn)元素顫抖特效是一款基于css3實(shí)現(xiàn)的抖動(dòng)效果,各種鬼畜般的抖動(dòng)2015-01-14CSS3 重置iphone瀏覽器按鈕input,select等表單元素的默認(rèn)樣式
之前寫了一個(gè)登錄表單頁面,再iphone上測(cè)試遇到了一些奇怪的問題:表單中的input[type="submit"]按鈕在iPhone的safari瀏覽器下會(huì)出現(xiàn)圓角的情況;input[type="text"]文本輸2014-10-11- 無論是偽類還是偽元素,都屬于CSS選擇器的范疇。所以它們的定義可以在CSS標(biāo)準(zhǔn)的選擇器章節(jié)找到。分別是 CSS2.1 Selectors 和 CSS Selector Level 3,兩者都已經(jīng)是推薦標(biāo)準(zhǔn)2014-09-04
css3設(shè)置box-pack和box-align讓div里面的元素垂直居中
只要設(shè)置元素的box-pack和box-align即可,這兩個(gè)屬性當(dāng)前只有webkit和moz支持,要設(shè)置垂直居中的話只需要將這兩個(gè)屬性的值都設(shè)置為center即可,需要的朋友可以參考下2014-09-01- 網(wǎng)頁制作Webjx文章簡介:CSS 3增加了大量的結(jié)構(gòu)偽類,利用文檔結(jié)構(gòu)樹來實(shí)現(xiàn)表現(xiàn),從而可以減少頁面內(nèi)class屬性和ID屬性的定義,使得文檔更加簡潔。 相關(guān)閱2009-04-02
- 網(wǎng)頁制作Webjx文章簡介:網(wǎng)頁教學(xué)網(wǎng)將在這篇文章向大家展示CSS中的5個(gè)有趣的新技術(shù):圓角、個(gè)別圓角、不透明度、陰影和調(diào)整元素大小. CSS是眾所周知且應(yīng)用2009-04-02
css3實(shí)現(xiàn)多個(gè)元素依次顯示效果
在css3中,我們使用animation與keyframes結(jié)合,可以給元素添加各種各樣的動(dòng)畫效果。這篇文章主要介紹了css3實(shí)現(xiàn)多個(gè)元素依次顯示效果,需要的朋友可以參考下2017-12-12