CSS 高級技巧總結

1、用all簡寫來指定所有元素的屬性。 將該值設置爲unset會將元素的屬性更改爲其初始值:
button {
all: unset;
}
2、使用 :not() 選擇器來決定表單是否顯示邊框
先爲元素添加邊框
/* 添加邊框 /
.nav li {
border-right: 1px solid #666;
}
爲最後一個元素去除邊框
/
去掉邊框 /
.nav li:last-child {
border-right:none;
}
不過不要這麼做,使用 :not() 僞類來達到同樣的效果:
.nav li:not(:last-child) {
border-right: 1px solid #666;
}
當然,你也可以使用 .nav li + li,但是 :not() 更加清晰,具有可讀性。
3、爲 body 元素添加行高
不必爲每一個

,<h>元素逐一添加 line-height,直接添加到 body 元素:
body {
line-height: 1.5;
}
文本元素可以很容易地繼承 body 的樣式。
4、垂直居中任何元素
html,
body {
height: 100%;
margin: 0;
}
body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
…還有CSS Grid:
body {
display: grid;
height: 100vh;
margin: 0;
place-items: center center;
}
注意: IE11 對 flexbox 的支持有點 bug。
5、.逗號分隔列表
使列表的每項都由逗號分隔:
ul > li:not(:last-child)::after {
content: “,”;
}
因最後一項不加逗號,可以使用 :not() 僞類。
注意: 這一技巧對於無障礙,特別是屏幕閱讀器而言並不理想。而且複製粘貼並不會帶走CSS生成的內容,需要注意。
6、使用負的 nth-child 來選擇元素
使用負的 nth-child 可以選擇1 至 n 個元素。
li {
display: none;
}
/* 選擇第 1 至第 3 個元素並顯示出來 /
li:nth-child(-n+3) {
display: block;
}
或許你已經掌握瞭如何使用 :not()這個技巧,試下這個:
/
選擇除前3個之外的所有項目,並顯示它們 /
li:not(:nth-child(-n+3)) {
display: none;
}
7、使用 SVG 圖標
沒有理由不使用 SVG 圖標:
.logo {
background: url(“logo.svg”);
}
SVG 在所有分辨率下都可以良好縮放,並且支持所有 IE9 以後的瀏覽器,丟掉你的 .png, .jpg, 或 .gif-jif-whatev 文件吧。
注意: 針對僅有圖標的按鈕,如果 SVG 沒有加載成功的話,以下樣式對無障礙有所幫助:
.no-svg .icon-only::after {
content: attr(aria-label);
}
8、使用 “形似貓頭鷹” 的選擇器
這個名字可能比較陌生,不過通用選擇器 (
) 和 相鄰兄弟選擇器 (+) 一起使用,效果非凡:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章