好程式設計師web前端分享12個CSS高階技巧彙總
好程式設計師
web前端分享
下面這些
CSS高階技巧,一般人我可不告訴他哦。
使用
:not() 在選單上應用/取消應用邊框
給
body新增行高
所有一切都垂直居中
逗號分隔的列表
使用負的
nth-child 選擇專案
對圖示使用
SVG
最佳化顯示文字
對純
CSS滑塊使用 max-height
繼承
box-sizing
表格單元格等寬
用
Flexbox擺脫外邊距的各種hack
使用屬性選擇器用於空連結
使用
:not() 在選單上應用/取消應用邊框
先給每一個選單項新增邊框
1. <p><font size="3">
2. </font></p>
3. <p><font size="3"> /* add border */</font></p>
4. <p><font size="3"> .nav li {</font></p>
5. <p><font size="3"> border-right: 1px solid #666;</font></p>
6. <p><font size="3"> }</font></p>
……然後再除去最後一個元素……
//* remove border */
1. <p><font size="3"> .nav li:last-child {</font></p>
2. <p><font size="3"> border-right: none;</font></p>
3. <p><font size="3"> }</font></p>
4. <p><font size="3"> ……可以直接使用 :not() 偽類來應用元素:</font></p>
5. <p><font size="3"> .nav li:not(:last-child) {</font></p>
6. <p><font size="3"> border-right: 1px solid #666;</font></p>
7. <p><font size="3"> }</font></p>
這樣程式碼就乾淨,易讀,易於理解了。
當然,如果你的新元素有兄弟元素的話,也可以使用通用的兄弟選擇符
(~):
..nav li:first-child ~ li {
1. <p><font size="3"> border-left: 1px solid #666;</font></p>
2. <p><font size="3"> }</font></p>
給
body新增行高
你不需要分別新增
line-height 到每個
,等。只要新增到
body 即可:
body {
1. <p><font size="3"> line-height: 1;</font></p>
2. <p><font size="3"> }</font></p>
這樣文字元素就可以很容易地從
body 繼承。
所有一切都垂直居中
要將所有元素垂直居中,太簡單了:
1. <p><font size="3">
2. </font></p>
3. <p><font size="3"> html, body {</font></p>
4. <p><font size="3"> height: 100%;</font></p>
5. <p><font size="3"> margin: 0;</font></p>
6. <p><font size="3"> }</font></p>
7. <p><font size="3"> body {</font></p>
8. <p><font size="3"> -webkit-align-items: center;</font></p>
9. <p><font size="3"> -ms-flex-align: center;</font></p>
10. <p><font size="3"> align-items: center;</font></p>
11. <p><font size="3"> display: -webkit-flex;</font></p>
12. <p><font size="3"> display: flex;</font></p>
13. <p><font size="3"> }</font></p>
看,是不是很簡單。
注:在
IE11中要小心flexbox。
逗號分隔的列表
讓
HTML列表項看上去像一個真正的,用逗號分隔的列表:
1. <p><font size="3">
2. </font></p>
3. <p><font size="3"> ul > li:not(:last-child)::after {</font></p>
4. <p><font size="3"> content: ",";</font></p>
5. <p><font size="3"> }</font></p>
對最後一個列表項使用
:not() 偽類。
使用負的
nth-child 選擇專案
在
CSS中使用負的 nth-child 選擇專案1到專案n。
li {
1. <p><font size="3"> display: none;</font></p>
2. <p><font size="3"> }</font></p>
3. <p><font size="3"> /* select items 1 through 3 and display them */</font></p>
4. <p><font size="3"> li:nth-child(-n+3) {</font></p>
5. <p><font size="3"> display: block;</font></p>
6. <p><font size="3"> }</font></p>
就是這麼容易。
對圖示使用
SVG
我們沒有理由不對圖示使用
SVG:
1. <p><font size="3"> .logo {</font></p>
2. <p><font size="3"> background: url("logo.svg");</font></p>
3. <p><font size="3"> }</font></p>
SVG對所有的解析度型別都具有良好的擴充套件性,並支援所有瀏覽器都回歸到IE9。這樣可以避開.png、.jpg或.gif檔案了。
最佳化顯示文字
有時,字型並不能在所有裝置上都達到最佳的顯示,所以可以讓裝置瀏覽器來幫助你:
1. <p><font size="3">
2. </font></p>
3. <p><font size="3"> html {</font></p>
4. <p><font size="3"> -moz-osx-font-smoothing: grayscale;</font></p>
5. <p><font size="3"> -webkit-font-smoothing: antialiased;</font></p>
6. <p><font size="3"> text-rendering: optimizeLegibility;</font></p>
7. <p><font size="3"> }</font></p>
注:請負責任地使用
optimizeLegibility。此外,IE /Edge沒有 text-rendering 支援。
對純
CSS滑塊使用 max-height
使用
max-height 和溢位隱藏來實現只有CSS的滑塊:
.slider ul {
1. <p><font size="3"> max-height: 0;</font></p>
2. <p><font size="3"> overlow: hidden;</font></p>
3. <p><font size="3"> }</font></p>
4. <p><font size="3"> .slider:hover ul {</font></p>
5. <p><font size="3"> max-height: 1000px;</font></p>
6. <p><font size="3"> transition: .3s ease;</font></p>
7. <p><font size="3"> }</font></p>
1. <p><font size="3"> 繼承 box-sizing</font></p>
2. <p><font size="3"> 讓 box-sizing 繼承 html:</font></p>
3. <p><font size="3"> html {</font></p>
4. <p><font size="3"> box-sizing: border-box;</font></p>
5. <p><font size="3"> }</font></p>
6. <p><font size="3"> *, *:before, *:after {</font></p>
7. <p><font size="3"> box-sizing: inherit;</font></p>
8. <p><font size="3"> }</font></p>
這樣在外掛或槓桿其他行為的其他元件中就能更容易地改變
box-sizing 了。
表格單元格等寬
表格工作起來很麻煩,所以務必儘量使用
table-layout: fixed 來保持單元格的等寬:
1. <p><font size="3"> .calendar {</font></p>
2. <p><font size="3"> table-layout: fixed;</font></p>
3. <p><font size="3"> }</font></p>
用
Flexbox擺脫外邊距的各種hack
當需要用到列分隔符時,透過
flexbox的 space-between 屬性,你就可以擺脫nth-,first-,和 last-child 的hack了:
1. <p><font size="3"> .list {</font></p>
2. <p><font size="3"> display: flex;</font></p>
3. <p><font size="3"> justify-content: space-between;</font></p>
4. <p><font size="3"> }</font></p>
5. <p><font size="3"> .list .person {</font></p>
6. <p><font size="3"> flex-basis: 23%;</font></p>
7. <p><font size="3"> }</font></p>
現在,列表分隔符就會在均勻間隔的位置出現。
使用屬性選擇器用於空連結
當
[url=]元素沒有文字值,但 href 屬性有連結的時候顯示連結:[/url]
[url=]
a[href^="http"]:empty::before {
1. <p> content: attr(href);</p>
2. <p> }</p>
相當方便。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2642821/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端教程分享CSS技巧!程式設計師Web前端CSS
- 好程式設計師Web前端分享前端CSS篇程式設計師Web前端CSS
- 好程式設計師web前端分享CSS元素型別程式設計師Web前端CSS型別
- 好程式設計師web前端分享CSS基礎篇程式設計師Web前端CSS
- 好程式設計師web前端培訓分享九個JavaScript小技巧程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享kbone高階-事件系統程式設計師Web前端事件
- 好程式設計師web前端分享H5高階工程師學習思路程式設計師Web前端H5工程師
- 好程式設計師Web前端教程分享JavaScript開發技巧程式設計師Web前端JavaScript
- 好程式設計師web前端分享css初始化程式碼程式設計師Web前端CSS
- 好程式設計師web前端分享主流CSS image比較程式設計師Web前端CSS
- 好程式設計師web前端分享CSS3 漸變程式設計師Web前端CSSS3
- 好程式設計師web前端技術分享css盒模型程式設計師Web前端CSS模型
- 好程式設計師web前端培訓分享怎樣學好css?程式設計師Web前端CSS
- 好程式設計師web前端教程分享web中CSS絕對定位程式設計師Web前端CSS
- 好程式設計師web前端培訓系列分享css偽元素的實用技巧程式設計師Web前端CSS
- 好程式設計師web前端乾貨之web前端開發框架彙總程式設計師Web前端框架
- 好程式設計師web前端分享CSS不同元素margin的計算程式設計師Web前端CSS
- 好程式設計師web前端培訓分享CSS定位的教程程式設計師Web前端CSS
- 好程式設計師web前端分享CSS3彈性盒程式設計師Web前端CSSS3
- 好程式設計師web前端分享css常用屬性縮寫程式設計師Web前端CSS
- 好程式設計師web前端教程分享HTML5面試技巧程式設計師Web前端HTML面試
- 好程式設計師Web前端分享無法忽視的JavaScript技巧程式設計師Web前端JavaScript
- 好程式設計師web前端分享CSS基礎知識之position程式設計師Web前端CSS
- 好程式設計師web前端分享CSS屬性組成及作用程式設計師Web前端CSS
- 好程式設計師web前端分享CSS學習:HSLA顏色模式程式設計師Web前端CSS模式
- 7個Web前端程式設計師必須會用CSS技巧Web前端程式設計師CSS
- 好程式設計師web前端分享18個用CSS製作出來的東西程式設計師Web前端CSS
- 好程式設計師web前端分享應該怎樣學好web前端?程式設計師Web前端
- 好程式設計師web前端分享web前端入門知識程式設計師Web前端
- 好程式設計師分享Web前端開發工具程式設計師Web前端
- 好程式設計師web前端分享Cookie知識程式設計師Web前端Cookie
- 好程式設計師web前端分享CSS Bug、CSS Hack和Filter學習筆記程式設計師Web前端CSSFilter筆記
- 好程式設計師web前端分享CSS檔案引用的最優方法程式設計師Web前端CSS
- 好程式設計師web前端培訓分享HTML/CSS部分面試題程式設計師Web前端HTMLCSS面試題
- 好程式設計師web前端分享Css3的概念和優勢程式設計師Web前端CSSS3
- 好程式設計師web前端分享前端 javascript 練習題程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享web前端基礎知識程式設計師Web前端
- 好程式設計師web前端教程分享CSS預編譯器的再次理解程式設計師Web前端CSS編譯