成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

attr()、counter()和calc()在css中的使用

2013-03-04 11:35:11來(lái)源:開(kāi)源中國(guó)作者:

各種瀏覽器之間的競(jìng)爭(zhēng)的白熱化意味著越來(lái)越多的人現(xiàn)在開(kāi)始使用那些支持最新、最先進(jìn)的W3C Web標(biāo)準(zhǔn)的設(shè)備,以一種更具交互性的方式來(lái)訪問(wèn)互聯(lián)網(wǎng)。這意味著我們終于能夠利用更強(qiáng)大更靈活的CSS來(lái)創(chuàng)造更簡(jiǎn)潔,更好維護(hù)的

各種瀏覽器之間的競(jìng)爭(zhēng)的白熱化意味著越來(lái)越多的人現(xiàn)在開(kāi)始使用那些支持最新、最先進(jìn)的W3C Web標(biāo)準(zhǔn)的設(shè)備,以一種更具交互性的方式來(lái)訪問(wèn)互聯(lián)網(wǎng)。這意味著我們終于能夠利用更強(qiáng)大更靈活的CSS來(lái)創(chuàng)造更簡(jiǎn)潔,更好維護(hù)的瀏覽器前端代碼。現(xiàn)在讓我們來(lái)看一看一些也許你還不知道的讓人興奮的CSS 功能。

在CSS中用attr()顯示HTML屬性值

attr()功能早在CSS 2.1標(biāo)準(zhǔn)中就已經(jīng)出現(xiàn),但現(xiàn)在才開(kāi)始普遍流行。它提供了一個(gè)巧妙的方法在CSS中使用HTML標(biāo)簽上的屬性,在很多情況下都能幫你省去了以往需要Javascript處理的過(guò)程。

要想使用這個(gè)功能,你需要用到三種元素:一個(gè):before 或 :after CSS偽類(lèi)樣式, .content屬性,和一個(gè)帶有你想使用的HTML屬性名稱(chēng)的attr()表達(dá)式。例如,想去顯示<h3>標(biāo)題上的data-prefix屬性的值,你可以寫(xiě)成這樣:

h3:before {
    content: attr(data-prefix) " ";
    }

    <h3 data-prefix="Custom prefix">This is a heading</h3>

顯然,這個(gè)例子并沒(méi)有展示它有多大用處,只是展示了它的基本用法。讓我們來(lái)試一個(gè)更有用的例子,attr()的一個(gè)極好的應(yīng)用就是當(dāng)用戶(hù)打印頁(yè)面時(shí)將頁(yè)面鏈接顯示出來(lái)。為了實(shí)現(xiàn)這個(gè),你可以這樣寫(xiě):

@media print {
    a:after {
    content: " (link to " attr(href) ") ";
    }
    }

    <a href="http://example.com">Visit our home page</a>

一旦你知道了這個(gè)技巧,你就會(huì)吃驚于很多時(shí)候它能給你的工作帶來(lái)的方便!

提示:在新版的CSS3標(biāo)準(zhǔn)中,attr()功能被擴(kuò)展,可以用在各種CSS標(biāo)記中。

使用counter()在列表中自動(dòng)添加序號(hào)

另外一個(gè)在CSS 2.1在就已經(jīng)支持的功能是counter(),使用它,你能方便的在頁(yè)面標(biāo)題,區(qū)塊和其它各種連續(xù)出現(xiàn)的頁(yè)面內(nèi)容上添加序號(hào)。有了它,你就不必限制于只能使用<ol>來(lái)實(shí)現(xiàn)這個(gè)效果,你可以更靈活的在頁(yè)面上使用自定義數(shù)字序列。

關(guān)鍵就是它真的很簡(jiǎn)單:在:before偽類(lèi)里的content屬性加入counter():

body {
    counter-reset: heading;
    }

    h4:before {
    counter-increment: heading;
    content: "Heading #" counter(heading) "."; 
    }

如果你想知道更多關(guān)于這個(gè)counter歸零和自增方法的知識(shí),請(qǐng)參考關(guān)于這個(gè)主題的Mozilla
Developer Network
頁(yè)面。里面有個(gè)極好的如何使用嵌套counter的例子。

使用calc()做算術(shù)

最后,但不是最不重要的,讓我們來(lái)說(shuō)說(shuō)calc()功能。這個(gè)函數(shù)能讓你執(zhí)行簡(jiǎn)單的算術(shù)計(jì)算,例如計(jì)算元素的長(zhǎng)寬,免去了你寫(xiě)不易維護(hù)的Javascript代碼。這個(gè)函數(shù)支持所有簡(jiǎn)單的基本算術(shù)運(yùn)算,包括加減乘除。

比方說(shuō),你想創(chuàng)建一個(gè)元素,使它的寬度占滿(mǎn)它的父元素,但還要留出一部分像素寬做其它用處:

.parent {
    width: 100%;
    border: solid black 1px;
    position: relative;
    }

    .child {
    position: absolute;
    left: 100px;
    width: calc(90% - 100px);
    background-color: #ff8;
    text-align: center;
    }

漂亮吧,不是嗎?更詳細(xì)的介紹請(qǐng)參考W3C CSS calc 規(guī)范

我們可以越來(lái)越清楚的發(fā)現(xiàn),CSS已經(jīng)成熟到在某些方法可以替代javascript,極大的簡(jiǎn)化了web開(kāi)發(fā)人員的工作。如果你還不開(kāi)始利用這些功能,那只能說(shuō)是在犯傻。

關(guān)鍵詞:css

贊助商鏈接:

主站蜘蛛池模板: 河间市| 张北县| 宜宾市| 简阳市| 仪征市| 蚌埠市| 沈丘县| 久治县| 吐鲁番市| 广汉市| 芒康县| 武邑县| 贺兰县| 临夏市| 仁布县| 曲阳县| 凌海市| 蓬溪县| 德兴市| 平昌县| 临泽县| 商丘市| 香港| 祁连县| 云和县| 内江市| 廊坊市| 龙陵县| 庆阳市| 扎赉特旗| 阳江市| 静宁县| 乌拉特前旗| 大城县| 阳原县| 新田县| 青海省| 宁海县| 肥东县| 扶余县| 漳平市|