神奇的CSS實現(xiàn)自動補全字符串_第1頁
神奇的CSS實現(xiàn)自動補全字符串_第2頁
神奇的CSS實現(xiàn)自動補全字符串_第3頁
神奇的CSS實現(xiàn)自動補全字符串_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第神奇的CSS,實現(xiàn)自動補全字符串!很多時候都會碰到字符串補全的需求,典型的例子就時間或者日期中的補零操作,例如

2025-12-31

2025-03-03

通常的做法是

if(num10){

num=0+num

}

后來,JS中出現(xiàn)了原生的補全方法padStart()和padEnd(),如下

3.padStart(2,0)

//結(jié)果是03

12.padStart(2,0)

//結(jié)果是12

其實呢,在CSS中也是可以實現(xiàn)這樣的效果的,并且有多種方案,下面一起看看吧,相信能有不一樣的體會。

一、flex-end對齊

先介紹一個比較容易理解的方案,也非常簡單,假設HTML是這樣的

span2/span

span28/span

一般情況下,還會設置等寬字體,看起來更加協(xié)調(diào)、美觀

span{

font-family:Consolas,Monaco,monospace;

}

我們需要在數(shù)字前用偽元素生成一個0

span::before{

content:0

}

接下來,給元素設置一個固定寬度,這里由于是等寬字體,所以可以直接設置為2ch,注意這個ch單位,它表示字符0的寬度(有興趣的可以參考這篇文章:等寬字體在web布局中應用以及CSS3ch單位嘿嘿),然后設置右對齊就行了

span{

/**/

display:inline-flex;

width:2ch;

justify-content:flex-end;

}

原理很簡單,在2個字符寬度的空間里放置3個字符,以右對齊的方式,是不是就自動把最左邊的0給擠出去了?然后超出隱藏就可以了

完整代碼如下

span::before{

content:0

span{

display:inline-flex;

width:2ch;

justify-content:flex-end;

overflow:hidden;

}

二、CSS變量動態(tài)計算

由于CSS無法獲取標簽的文本內(nèi)容,所以這里需要構(gòu)建一個CSS變量傳遞下去,如下

span>

通過var(--num)拿到變量以后,就可以進行一系列的邏輯判斷了,那么,如何在小于10的情況下自動補零呢?

同樣我們需要在數(shù)字前用偽元素生成一個0

span::before{

content:0

}

然后,只需要根據(jù)CSS變量動態(tài)隱藏這個偽元素就行了,先設置透明度,如下

span::before{

/**/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論