這裡的黑科技其實就是一些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;}
嗯,看起來怎麼樣,你是可以這麼用的:
<div class=" ★"></div>
只要是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中有幾個常見的單標籤:<br> ,<hr>等。
下面的樣本是實現對<hr>的修飾。
hr:before { content: "♪♪";}hr:after { content: " This is an <hr> element";}
沒錯,關鍵就是使用:before和:after這兩個偽類。在這裡,順便說一點就是,其實你還可以用這兩個偽類來修飾<meta> 和 <link>,不過這個前提是,你把這兩個的display屬性設定為:
display: block
屬性區分大小寫
假如我們在寫html的時候有類似下面的代碼:
<div class="box"></div><input type="email">
然後我們用屬性選取器進行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"並不會影響到<div class="box"></div>,而第二個type="EMAIL"還是會正常修飾<input type="email">。所以在使用屬性選取器的時候,注意大小寫問題。