何爲技巧,意指表如今文學、工藝、體育等方面的巧妙技能。代碼做爲一門現代高級工藝,推進着人類科學技術的發展,同時猶如文字同樣承託着人類文化的進步。css
每寫好一篇文章,都會使用大量的寫做技巧。烘托、渲染、懸念、鋪墊、照應、伏筆、聯想、想象、抑揚結合、點面結合、動靜結合、敘議結合、情景交融、首尾呼應、陪襯對比、白描細描、比喻象徵、借古諷今、卒章顯志、承上啓下、開門見山、動靜相襯、虛實相生、實寫虛寫、託物寓意、詠物抒情
等,這些應該都是咱們從小到大寫文章而接觸到的寫做技巧。html
做爲程序猿的咱們,寫代碼一樣也須要大量的寫做技巧。一份良好的代碼能讓人耳目一新,讓人容易理解,讓人舒服天然,同時也讓本身成就感滿滿(哈哈,這個纔是重點)。所以,我整理下三年來本身使用到的一些CSS開發技巧,但願能讓你寫出耳目一新、容易理解、舒服天然的代碼。前端
既然寫文章有這麼多的寫做技巧,那麼我也須要對CSS開發技巧整理一下,起個易記的名字。git
備註github
CodePen
進行保存,點擊在線演示便可查看/* 基於UI width=750px DPR=2的頁面 */
html {
font-size: calc(100vw / 7.5);
}
複製代碼
:nth-child()
篩選指定的元素設置樣式writing-mode
調整文本排版方向text-align-last:justify
設置文本兩端對齊object-fit
使圖像脫離background-size
的約束,使用<img>
來標記圖像背景尺寸flexbox
或inline-block
的形式橫向排列元素,對父元素設置overflow-x:auto
橫向滾動查看text-overflow:ellipsis
對溢出的文本在末端添加...
letter-spacing
設置負值字體間距將文本倒序非body元素
的滾動操做會很是卡(Android不會出現此狀況),經過overflow-scrolling:touch
調用Safari原生滾動來支持彈性滾動,增長頁面滾動的流暢度-webkit-overflow-scrolling
body {
-webkit-overflow-scrolling: touch;
}
.elem {
overflow: auto;
}
複製代碼
.elem {
transform: translate3d(0, 0, 0); /* translateZ(0)亦可 */
}
複製代碼
pointer-events:none
禁用事件觸發(默認事件、冒泡事件、鼠標事件、鍵盤事件等),至關於<button>
的disabled
focus
和blur
事件後往父元素進行冒泡,在父元素上經過:focus-within
捕獲該冒泡事件來設置樣式max-height
定義收起的最小高度和展開的最大高度,設置二者間的過渡切換background-attachment:fixed
或transform
讓多層背景以不一樣的速度移動,造成立體的運動效果transform-delay
或animation-delay
設置負值時延保留動畫起始幀,讓動畫進入頁面不用等待便可運行border
沒有定義border-color
時,設置color
後,border-color
會被定義成color
.elem {
border: 1px solid;
color: #f66;
}
複製代碼
::selection
根據主題顏色自定義文本選擇顏色linear-gradient
設置背景漸變色,配合background-clip:text
對背景進行文本裁剪,添加濾鏡動畫caret-color
根據主題顏色自定義光標顏色scrollbar
的scrollbar-track
和scrollbar-thumb
等屬性來自定義滾動條樣式mask
爲圖像背景生成蒙層提供遮罩效果box-shadow
生成投影,且模糊半徑和負的擴張半徑一致,使投影偏向一側box-shadow
模擬蒙層實現中間鏤空寫到最後總結得差很少了,後續若是我想起還有哪些CSS開發技巧遺漏的,會繼續在這篇文章上補全,同時也但願各位朋友對文章裏的要點進行補充或者提出本身的看法。歡迎在下方進行評論或補充喔,喜歡的點個贊或收個藏,保證你在開發時用得上。web
最後送你們一個鍵盤!segmentfault
(_=>[..."`1234567890-=~~QWERTYUIOP[]\\~ASDFGHJKL;'~~ZXCVBNM,./~"].map(x=>(o+=`/${b='_'.repeat(w=x<y?2:' 667699'[x=["Bs","Tab","Caps","Enter"][p++]||'Shift',p])}\\|`,m+=y+(x+' ').slice(0,w)+y+y,n+=y+b+y+y,l+=' __'+b)[73]&&(k.push(l,m,n,o),l='',m=n=o=y),m=n=o=y='|',p=l=k=[])&&k.join` `)()
複製代碼
原文:請戳這裏
做者:JowayYoung
倉庫:Github
博客:掘金、思否、知乎
公衆號:Uzero
聯繫我:關注公衆號後有個人微信喲瀏覽器
《靈活運用》系列性能優化
《依賴彙總》系列微信
《必備工具》系列
《隨筆》系列
關注公衆號Uzero
,更多前端小乾貨等着你喔!我是JowayYoung
,喜歡分享前端技術和生活紀事,學習與生活不落下,天天進步一點點,與你們相伴成長