歡迎光臨
每天分享高質量文章

幾個CSS的黑科技

作者:JellyBool(@JellyBool)

網址:http://www.alloyteam.com/2015/07/update-your-gulp/

昨天由於某些原因沒有寫部落格,之前說好的每天一篇的,這篇是為了補昨天的了。然後我就要當一次標題黨了。這裡的黑科技其實就是一些CSS中不怎麼為人所知但在解決某些問題的時候很溜的屬性。

border-radius

很多開發者估計都沒有正確認識這個border-radius,因為基本上很多人都是這麼用的:

.box {

border-radius: 4px;

}

稍微高階一點的是這樣的:

.box {

border-radius: 4px 6px 6px 4px;

}

然而,終極黑科技是這樣用的:

.box {

border-radius: 5px 5px 3px 2px / 5px 5px 1px 3px;

}

對,它可以賦8個值,沒見過?不著急,具體的解釋是這樣的:

斜線前面的影響的是水平方向,斜線後面影響的是垂直方向,各個數字就分別代表四個不一樣的方向。

outline-offset

相信很多開發者在寫CSS的時候對下麵的陳述句會很熟悉:

input {

outline : none;

}

input:focus {

outline : none;

}

這就是將input輸入框去掉預設的藍線框的方法。其實,這裡還有說一個就是,CSS中還有一個outline-offset屬性,在這個屬性中,你可以設定預設線框的距離;像這樣

input {

outline-offset: 4px ;

}

調節該屬性值的大小你就可以看到outline的距離變化了。

類的宣告

對於下麵的類的宣告,可能大家都很熟悉:

.col-8 {

}

這當然沒什麼,但是如果你這樣寫呢:

.♥ {

color: hotpink;

}

.★ {

color: yellow;

}

嗯,看起來怎麼樣,你是可以這麼用的:

只要是Unicode的,你都可以這麼來宣告你的類。

選中連續的幾個元素

ol li:nth-child(n+7):nth-child(-n+14) {

background: lightpink;

}

/** Or Safari Way **/

ol li:nth-child(-n+14):nth-child(n+7) {

background: lightpink;

}

上面的這種寫法其實就可以達到選中ol下麵的第七到第十四個li元素。

偽類設定單標簽

html中有幾個常見的單標簽:
,


等。具體可以檢視這裡:

http://www.w3.org/TR/html5/syntax.html#void-elements

下麵的示例是實現對


的修飾。

hr:before {

content: “♪♪”;

}

hr:after {

content: ” This is an


element”;

}

沒錯,關鍵就是使用 :before 和 :after 這兩個偽類。在這裡,順便說一點就是,其實你還可以用這兩個偽類來修飾 ,不過這個前提是,你把這兩個的 display 屬性設定為:

display: block

屬性區分大小寫

假如我們在寫html的時候有類似下麵的程式碼:

然後我們用屬性選擇器進行CSS修飾:
div[class="box"] { color: blue; } input[type="email"] { border: solid 1px red; }

這樣的宣告方式毫無疑問地就會生效。然而,如果我們宣告成下麵這個樣子,結果會是怎麼樣的呢:

div[class=”BOX”] {

color: blue;

}

input[type=”EMAIL”] {

border: solid 1px red;

}

這變成了大寫之後,第一個 class=”BOX” 並不會影響到

,而第二個 type=”EMAIL” 還是會正常修飾 。所以在使用屬性選擇器的時候,註意大小寫問題。

目前就只覺得這些CSS黑科技需要提醒自己一下,有可以補充。

Happy Hacking

贊(0)

分享創造快樂