下面這些CSS進階技巧
# 使用 :not() 在選單上套用/取消套用邊框
為body新增一行高
所有一切都垂直居中
逗號分隔的清單
使用負的 nth-child 選擇項目
# 對圖示使用SVG
最佳化顯示文字
# 對純CSS滑桿使用 max-height
# 繼承 box-sizing
# 表格單元格等寬
# 用Flexbox擺脫外邊距的各種hack
使用屬性選擇器用於空白連結
使用 :not() 在選單上套用/取消套用邊框
先給每一個選單項目新增邊框
/* add border */ .nav li { border-right: 1px solid #666; }
……然後再除去最後一個元素……
# //* remove border */
.nav li:last-child { border-right: none; }
....可以直接使用 :not() 偽類別來應用元素:
.nav li:not(:last-child) { border-right: 1px solid #666; }
這樣程式碼就乾淨,易讀,易於理解了。
當然,如果你的新元素有兄弟元素的話,也可以使用通用的兄弟選擇符(~):
# ..nav li:first-child ~ li {
border-left: 1px solid #666; }
給 body新增一行高
你不需要分別加上 line-height 到每個
,
body { line-height: 1; }
這樣文字元素就可以很容易地從 body 繼承。
所有一切都垂直居中
要將所有元素垂直居中,太簡單了:
html, body { height: 100%; margin: 0; } body { -webkit-align-items: center; -ms-flex-align: center; align-items: center; display: -webkit-flex; display: flex; }
看,是不是很簡單。
註:在IE11中要小心flexbox。
逗號分隔的清單
讓HTML列表項目看起來像是真正的,用逗號分隔的清單:
ul > li:not(:last-child)::after { content: ","; }
最後一個列表項目使用 :not() 偽類別。
使用負的 nth-child 選擇項目
在CSS中使用負的 nth-child 選擇項目1到項目n。
li { display: none; } /* select items 1 through 3 and display them */ li:nth-child(-n+3) { display: block; }
就是這麼容易。
對圖示使用SVG
我們沒有理由不對圖示使用SVG:
.logo { background: url("logo.svg"); }
SVG對所有的解析度類型都具有良好的擴充性,並支援所有瀏覽器都回歸到IE9。這樣可以避開.png、.jpg或.gif檔了。
優化顯示文字
有時,字體並不能在所有裝置上達到最佳的顯示,所以可以讓裝置瀏覽器來幫助你:
html { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
註:請負責任地使用 optimizeLegibility。此外,IE /Edge沒有 text-rendering 支援。
對純CSS滑桿使用 max-height
使用 max-height 和溢出隱藏來實現只有CSS的滑桿:
.slider ul { max-height: 0; overlow: hidden; } .slider:hover ul { max-height: 1000px; transition: .3s ease; }
繼承 box-sizing
# 讓 box-sizing 繼承 html:
html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; }
這樣在插件或槓桿其他行為的其他元件中就能更容易改變 box-sizing 了。
表格單元格等寬
表格工作起來很麻煩,所以務必盡量使用 table-layout: fixed 來保持單元格的等寬:
.calendar { table-layout: fixed; }
用Flexbox擺脫外邊距的各種hack
當需要使用到列分隔符號時,透過flexbox的 space-between 屬性,你就可以擺脫nth-,first-,和 last-child 的hack了:
.list { display: flex; justify-content: space-between; } .list .person { flex-basis: 23%; }
現在,清單分隔符號就會在均勻間隔的位置出現。
使用屬性選擇器用於空連結
當 元素沒有文字值,但 href 屬性有連結的時候顯示連結:
a[href^="http"]:empty::before { content: attr(href); }
相當方便。
支持
這些高級技巧在Chrome、Firefox、Safari、Edge的當前版本,以及IE11中都能有效運作。
以上是分享12個CSS牛逼的技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

當他們在2013年去Chrome時,我們失去了歌劇。與Edge今年早些時候也進行了同樣的交易。邁克·泰勒(Mike Taylor)稱這些變化為“減少

在本週的綜述中,Apple進入Web組件,Instagram如何插入腳本以及一些思考的食物,以進行自託管關鍵資源。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器