摘要:,當(dāng)僅使用擴(kuò)展時(shí),添加可以使用子像素的偽邊框。文本文本環(huán)形旋轉(zhuǎn)器創(chuàng)建可用于指示內(nèi)容加載的圓環(huán)微調(diào)器彈跳加載中反彈加載程序動(dòng)畫自定義文本選擇更改文本選擇的樣式截?cái)辔谋揪鶆蚍植嫉淖釉卦诟冈刂芯鶆蚍植甲釉亍?/p>
包含塊
定位參考框或者定位坐標(biāo)參考系.
元素一旦定義了定位屬性(相對(duì),絕對(duì),固定),就具有了包含塊性質(zhì)
所包含的定位元素都將以該包含塊為坐標(biāo)系進(jìn)行定位和調(diào)整
原理:
一個(gè)元素盒子的位置和大小有時(shí)候是通過相對(duì)于一個(gè)特定的長(zhǎng)方形來計(jì)算的,這個(gè)長(zhǎng)方形就稱之為元素的containing block(包含塊)
用戶代理選擇根元素作為包含塊(稱之為初始 containing block)
對(duì)于其它元素,除非元素使用的是絕對(duì)位置,包含塊由最近的塊級(jí)祖先元素盒子的內(nèi)容邊界組成
如果元素有屬性position: fixed,包含塊由視口決定
如果元素有屬性position: absolute,包含塊由最近的position不是static 的祖先建立(子絕父相,子絕父絕)
如果沒有祖先,根元素盒子的內(nèi)容邊界確定為包含塊
使用CSS3開啟GPU硬件解決Chrome動(dòng)畫"卡頓"的辦法:
為動(dòng)畫DOM元素添加CSS3樣式-webkit-transfrom: transition3d(0, 0, 0)或-webkit-transfrom: translateZ(0) 這兩個(gè)屬性都會(huì)開啟GPU硬件加速模式.
原理: 為了渲染3D模式. (設(shè)置值為0后,并沒有真正使用3D效果,但瀏覽器卻因此開啟GPU硬件加速模式)
開啟GPU硬件加速可能觸發(fā)的問題:
通過-webkit-transform: transition3d/translateZ開啟GPU硬件加速之后,有些時(shí)候可能會(huì)導(dǎo)致瀏覽器頻繁閃爍或抖動(dòng),可以添加屬性嘗試解決:
-webkit-backface-visibility: hidden // 背面元素是否可見 -webkit-perspective: 1000 // 合適的景深數(shù)值
過度使用產(chǎn)生的結(jié)果(需要合理使用DOM元素?cái)?shù)量):
大量消耗設(shè)備電量,降低電池壽命
為元素提供一個(gè)邊框,寬度等于1個(gè)本地設(shè)備像素,可以顯得非常清晰和清晰。
text
.hairline-border { box-shadow: 0 0 0 1px; } @media (min-resolution: 2dppx) { .hairline-border { box-shadow: 0 0 0 0.5px; } } @media (min-resolution: 3dppx) { .hairline-border { box-shadow: 0 0 0 0.33333333px; } } @media (min-resolution: 4dppx) { .hairline-border { box-shadow: 0 0 0 0.25px; } }
box-shadow,當(dāng)僅使用擴(kuò)展時(shí),添加可以使用子像素*的偽邊框。
使用@media (min-resolution: ...) 為了檢查器件像素比(1dppx 等于96 DPI ),將box-shadow的分布設(shè)置為1/dppx
Chrome不支持上的子像素值border 。safari不支持上的子像素值box-shadow 。Firefox支持兩者的子像素值。
懸停下劃線動(dòng)畫當(dāng)文本懸停在上面時(shí)創(chuàng)建動(dòng)畫下劃線效果。
文本文本
.hover { display: inline-block; position: relative; color: #0087ca; } .hover::after { content: ""; position: absolute; width: 100%; transform: scaleX(0); height: 2px; bottom: 0; left: 0; background-color: #0087ca; transform-origin: bottom right; transition: transform 0.25s ease-out; } .hover:hover::after { transform: scaleX(1); transform-origin: bottom left; }環(huán)形旋轉(zhuǎn)器
創(chuàng)建可用于指示內(nèi)容加載的圓環(huán)微調(diào)器
@keyframes donut-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .donut { display: inline-block; border: 4px solid rgba(0, 0, 0, 0.1); border-left-color: #7983ff; border-radius: 50%; width: 30px; height: 30px; animation: donut-spin 1.2s linear infinite; }彈跳加載中
反彈加載程序動(dòng)畫
@keyframes bouncing-loader { from { opacity: 1; transform: translateY(0); } to { opacity: 0.1; transform: translateY(-1rem); } } .bouncing-loader { display: flex; justify-content: center; } .bouncing-loader > div { width: 1rem; height: 1rem; margin: 3rem 0.2rem; background: #8385aa; border-radius: 50%; animation: bouncing-loader 0.6s infinite alternate; } .bouncing-loader > div:nth-child(2) { animation-delay: 0.2s; } .bouncing-loader > div:nth-child(3) { animation-delay: 0.4s; }自定義文本選擇
更改文本選擇的樣式
::selection { background: aquamarine; color: black; } .custom-text-selection::selection { background: deeppink; color: white; }截?cái)辔谋?/b>
.truncate-text { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 200px; }均勻分布的子元素
在父元素中均勻分布子元素。
Item1
Item2
Item3
.evenly { display: flex; justify-content: space-between; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/116630.html
摘要:局部樣式通過,部分解決的模塊化的問題。全局樣式的特點(diǎn),導(dǎo)致難以維護(hù),所以需要一種局部樣式的解決方案。也就是徹底的模塊化,進(jìn)來的模塊,需要隱藏自己的內(nèi)部作用域。 css 局部樣式 sass、less 通過 @import ,部分解決的 css 模塊化的問題。 由于 css 是全局的,在被引入的文件和當(dāng)前文件出現(xiàn)重名的情況下,前者樣式就會(huì)被后者覆蓋。在引入一些公用組件,或者多人協(xié)作開發(fā)同一...
摘要:預(yù)處理器最大的好處就是可以支持模塊引入,用的方式來編寫,解決了部分混亂以及代碼冗余的問題,但是也不能完全避免。為什么引入CSS Modules 或者可以這么說,CSS Modules為我們解決了什么痛點(diǎn)。針對(duì)以往我寫網(wǎng)頁樣式的經(jīng)驗(yàn),具體來說可以歸納為以下幾點(diǎn): 全局樣式?jīng)_突 過程是這樣的:你現(xiàn)在有兩個(gè)模塊,分別為A、B,你可能會(huì)單獨(dú)針對(duì)這兩個(gè)模塊編寫自己的樣式,例如a.css、b.css,看...
摘要:參考的文章最權(quán)威的初認(rèn)識(shí)一個(gè)不錯(cuò)的東西理解等插件解析技術(shù)大漠的系列文章,應(yīng)用型很強(qiáng),推薦一個(gè)年齡差不多的開發(fā)者的解釋一篇稍微理論化解釋的文章一個(gè)開發(fā)模式簡(jiǎn)單的優(yōu)劣比較大家也可以直接閱讀我的博客 前言 最近大漠前輩在群里發(fā)關(guān)于PostCSS的系列文章,但是耗子姐姐又說看了有點(diǎn)云里霧里的感覺,所以這篇文章將按一個(gè)思考的角度來理解一下 PostCSS 到底是一個(gè)什么東西。 showImg(h...
摘要:為什么引入全局樣式?jīng)_突進(jìn)行打包時(shí),將所有文件導(dǎo)入到入口文件中,樣式也會(huì)統(tǒng)一加載到入口中,根據(jù)的規(guī)則,后面的樣式會(huì)覆蓋掉前面的樣式聲明,造成全局樣式的覆蓋問題。 CSS Modules 為什么引入CSS Modules (1)全局樣式?jīng)_突 webpack進(jìn)行打包時(shí),將所有js文件導(dǎo)入到入口App.js文件中,樣式也會(huì)統(tǒng)一加載到入口中,根據(jù)css的layout規(guī)則,后面的樣式會(huì)覆蓋掉前...
摘要:為什么引入全局樣式?jīng)_突進(jìn)行打包時(shí),將所有文件導(dǎo)入到入口文件中,樣式也會(huì)統(tǒng)一加載到入口中,根據(jù)的規(guī)則,后面的樣式會(huì)覆蓋掉前面的樣式聲明,造成全局樣式的覆蓋問題。 CSS Modules 為什么引入CSS Modules (1)全局樣式?jīng)_突 webpack進(jìn)行打包時(shí),將所有js文件導(dǎo)入到入口App.js文件中,樣式也會(huì)統(tǒng)一加載到入口中,根據(jù)css的layout規(guī)則,后面的樣式會(huì)覆蓋掉前...
摘要:我們將去探索它的目的和主旨。這到底是什么呢我們?yōu)槭裁匆@么做呢我們很快就進(jìn)行介紹。我們不需要人為處理和文件。我們不寫純,我們需要在一個(gè)類似這樣的文件中取寫我們所有的標(biāo)簽。這就是樣式也有作用域的原因。換句話說消除了特殊性問題。 原文地址:https://css-tricks.com/css-mo...最近我對(duì)CSS Modules比較好奇。如果你曾經(jīng)聽說過他們,那么這篇博客正適合你。我們...
閱讀 1641·2021-09-22 15:25
閱讀 1519·2021-09-07 10:06
閱讀 3195·2019-08-30 15:53
閱讀 1099·2019-08-29 13:12
閱讀 3390·2019-08-29 13:07
閱讀 736·2019-08-28 18:19
閱讀 2278·2019-08-27 10:57
閱讀 995·2019-08-26 13:29