CSS3屬性選取器詳解 及 雙色球實戰開發

來源:互聯網
上載者:User

標籤:style   http   color   使用   os   strong   io   2014   

在前面的章節中,我們瞭解了,可以使用行內樣式,ID選取器,類別選取器,以及標籤選取器來給一個元素應用樣式。

如果我們想給定義了那些都定義了某一個屬性的元素應用樣式,這個時候我們該怎麼做呢?

這一節中,我將使用 雙色球案例 和 文件類型提示表徵圖案例 來引入和應用屬性選取器。

雙色球案例:

大家都知道,雙色球共有7個球,6個紅球,1個藍球。首先我們先在頁面上面定義7個span標籤:

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<link rel=”stylesheet” href=”styles_20140705.css”>

<title>CSS3 屬性選取器</title>

</head>

<body>

<div class="container">

<!-- 實戰互連網 http://www.itdriver.cn -->
<div class="balls">
<span title="01" class="blueball redball">01</span><span class="redball" title="02">02</span><span class="redball" title="03">03</span><span class="redball"                            title="04">04</span><span class="redball" title="05">05</span><span class="redball" title="06">06</span><span class="redball blueball" title="07">07</span>
</div>
</div>

</body>

</html>

 

此時運行頁面,我們發現所有數字都連在一起:

 

接著我們在外部樣式表中,通過標籤選取器來調整數字球之間的距離:

.balls span{

margin-left:0.8em;

}

但是我們知道,每個球都有一個圓背景,這個怎麼實現呢,在CSS2中,我們只能通過背景圖片來做,而到了CSS3,我們只需要設定標籤的角的半徑(radius),即可實現。如果大家看不懂下面的代碼,沒關係,後面會有一片專門的文章來講解。現在大家只要記住下面的CSS3樣式代碼是用來設定圓角的就OK了。

我們把上面的樣式代碼做一下改良(紅色字型為新增加的樣式):

.balls span{

margin-left:0.8em; /*設定數字球之間的距離為0.8em*/

display:block; /*將數字球span設為塊,便於調整寬和高*/

float:left; /*使數字球向左浮動,連在一行顯示*/

width:1.4em; /*設定數字球span的寬高*/

height:1.4em;

border:1px solid red;/*設定數字球邊框為紅色,這個是為了便於查看設定的樣式是否已經生效*/

-webkit-border-radius:0.7em;/*設定span圓角半徑,如果半徑為總長度一半,則就形成了圓*/

-moz-border-radius:0.7em;

border-radius:0.7em;

text-align:center; /*使數字球中的字水平置中顯示*/

line-height:1.4em; /*使數字球中的字垂直置中顯示*/

}

此時運行Demo,球體的雛形已經出來了:

有人會問,你樣式怎麼都寫在同一個span標籤選取器裡了,怎麼還沒講到屬性選取器呢?

別急,上面這些樣式都是所有球體共有的屬性樣式,故都寫同一個標籤裡了。我們知道雙色球,前六個為紅球,最後一個為藍球,那這個到底怎麼處理呢?

我們先瀏覽一下知識點,屬性選取器是從CSS2開始引入進來的,下面是CSS2中定義的屬性選取器:

E[attr] 選擇匹配定義了attr屬性的E類型元素。注意,E類型可以省略,直接寫[attr],這就意味著匹配所有定義了attr屬性的元素。
E[attr="value"] 選擇匹配那些attr屬性值設為value的E類型元素。注意,E類型可以省略,直接寫[attr="value"],這就意味著匹配所有attr=”value”的元素。
E[attr~="value"] 選擇匹配那些attr屬性值是列表形式的,且各個值是以空格分開的,且有一個值為value的所有E類型元素。注意E可以省略。
E[attr|="value"] 選擇匹配那些attr屬性值是value或是以value- 開頭的E類型元素。注意,E類型可以省略。
E[attr^="value"] 選擇匹配那些attr屬性值是以value開頭的E類型元素。注意,E標籤選擇符可以省略。
E[attr$="value"] 選擇匹配那些attr屬性值是以value為尾碼的E類型元素。注意,E標籤選擇符可以省略。
E[attr*="value"] 選擇匹配那些attr屬性值包含value的E類型元素。注意E標籤選擇符可以省略。

其實從上表格中,我們可以看出,屬性選取器其實就是給標籤選取器加上屬性限制,它就是標籤選取器的進一步細化。

好了,當我們瞭解了屬性選取器的基本知識之後,就可以給雙色球加背景顏色了:

.balls span{

margin-left:0.8em; /*設定數字球之間的距離為0.8em*/

display:block; /*將數字球span設為塊,便於調整寬和高*/

float:left; /*使數字球向左浮動,連在一行顯示*/

width:1.4em; /*設定數字球span的寬高*/

height:1.4em;

 border:1px solid red;/*設定數字球邊框為紅色,這個是為了便於查看設定的樣式是否已經生效*/

-webkit-border-radius:0.7em;/*設定span圓角半徑,如果半徑為總長度一半,則就形成了圓*/

-moz-border-radius:0.7em;

border-radius:0.7em;

text-align:center; /*使數字球中的字水平置中顯示*/

line-height:1.4em; /*使數字球中的字垂直置中顯示*/

color:#FFFFFF; /*設定span中字型顏色*/

box-shadow:0.15em 0.15em #999; /*給ball應用陰影製作效果,增加立體感*/

}

 

/*給所有的ball應用樣式*/

.balls span[title]{ /*給設定了title屬性的span 應用樣式*/

 background-color:#FF0000;

}

/*給class以blueball為結尾的span元素應用樣式*/

.balls span[class$="blueball"]{

 background-color:#0033CC;

}

此時運行我們的Demo,雙色球就出來了。

細心的網友可能已經發現,在第一個球中,我們同樣設定了blueball樣式,但是它依然是紅色背景, 這就證明了E[attr$="value"]確實是給那些attr屬性值以value為結尾的E元素添加樣式的。

接下來,我們繼續講解文件類型提示表徵圖案例:

首先建立頁面:

<!DOCTYPE html>

<html>

<head>

     <meta charset=”utf-8″>

        <link rel=”stylesheet” href=”styles_2014070502.css”>

        <title>文件類型提示表徵圖</title>

    </head>

    <body>

    <a href="http://www.itdriver.cn">實戰互連網</a>

     <div>

         <dl>

             <dt>文檔推薦列表</dt>

                <dd>

                 <ul>

                     <li><a href=”http://www.baidu.com/doc/css3.pdf”><span></span>CSS3案例開發</a></li>

                        <li><a href=”http://www.baidu.com/doc/css3.ppt”><span></span>CSS3教程分享計劃</a></li>

                        <li><a href=”http://www.baidu.com/doc/css3.doc”><span></span>CSS3相關博文</a></li>

                        <li><a href=”http://www.itdriver.cn”><span></span>作者個人首頁</a></li>

                    </ul>

                </dd>

            </dl>

        </div>

    </body>

</html>

運行頁面Demo,由於暫時未加任何樣式,效果如所示:

現在我們在外部樣式表中應用樣式:

.prefer_docs dd{ /*清除dd 到 dl 邊框的距離*/

margin-left:0px;

}

.prefer_docs ul{/*重新設定ul樣式*/

list-style-type:none;

padding-left:0px;

margin-left:0px;

}

.prefer_docs li{/*調整推薦文檔的上下距離*/

margin-bottom:2px;

}

.prefer_docs a{/*去除文檔超連結底線*/

text-decoration:none;

}

.prefer_docs a:hover{/*給超連結應用滑鼠滑過時的樣式*/

color:red;

text-decoration:underline;

}

.prefer_docs a span{ /*定義文件類型表徵圖顯示地區大小*/

background: no-repeat;

display:block;

height:16px;

width:16px;

float:left;

margin-right:2px;

}

.prefer_docs a span{ /*匯入文件類型背景圖片*/

background-image:url(pkg_icon.png);

}

.prefer_docs a[href$="ppt"] span{/*所有以ppt為結尾的,應用ppt表徵圖*/

background-position:-856px -36px;

}

.prefer_docs a[href*="pdf"] span{/*給連結中包含pdf文字的連結,應用pdf表徵圖*/

background-position:-625px -36px;

}

.prefer_docs a[class|="doc"] span{/*給class以doc或者doc- 開頭的連結,應用doc表徵圖*/

background-position:-877px -36px;

}

.prefer_docs a[class~="net"] span{/* class屬性中,含有net值的連結,應用Internet表徵圖 */

background-position:-520px -36px;

}

最後我們看一下運行效果:

以上即為利用屬性選取器,給文檔下載連結應用相應表徵圖的代碼示範。

當然,還有很多選取器,比如偽類別選取器,以及虛擬元素選取器,這裡不再詳述,在以後的執行個體中,如果用到,會做進一步的詳述。

 

歡迎大家加入互連網技術交流群:62329335

個人申明:所分享博文,絕對原創,并力爭每一個知識點都通過實戰示範來進行驗證。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.