精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CSS 實現(xiàn)頭像名稱首字符自動占位

開發(fā) 前端
現(xiàn)代瀏覽器(Chrome、Firefox) img 標(biāo)簽都支持偽元素了,不過只有當(dāng)圖片加載失敗的時候才能看到

在 web 中經(jīng)常會見到這樣的設(shè)計,很多 UI 組件庫也稱之為 Avator 組件,也就是頭像的意思,當(dāng)頭像未設(shè)置時,會顯示名稱的首字符充當(dāng)默認(rèn)頭像,如下所示:

實際效果可以查看底部「原文鏈接」,那么如何通過 CSS 實現(xiàn)這一效果呢?

一、圖片加載失敗時的占位

現(xiàn)代瀏覽器(Chrome、Firefox) img 標(biāo)簽都支持偽元素了,不過只有當(dāng)圖片加載失敗的時候才能看到。

<img class="avator" src="https://tva1.sinaimg.cn/large/008i3skNgy1grgo8qjty1j30e80e8aad.jpg">
<img class="avator" src="">
.avator::before{
content: '我是偽元素';
color: red;
}

效果如下:

有了偽元素,要做一些事情就很方便了,比如將默認(rèn)的“占位圖”擠出去,設(shè)置偽元素高度為100%就行了,同時設(shè)置超出隱藏。

.avator{
width: 40px;
height: 40px;
overflow: hidden; /*記得超出隱藏*/
}
.avator::before{
content: '';
display: flex;
background: bisque;
height: 100%;
}

效果如下:

二、alt 首字符占位

一般在使用 img 標(biāo)簽時都推薦加上 alt 屬性,用來描述圖片信息,也非常符合語義化。

<img class="avator" src="" alt="xboxyan">

然后在圖片加載失敗時,可以通過 attr獲取到完整的 alt 信息。

.avator::before{
content: attr(alt); /* 獲取 alt 屬性 */
color: rgb(250, 84, 28);
}

為了方便演示,這里暫時把超出隱藏打開。

那么,如何只顯示第一個字符呢?

嘗試了一下::first-letter,發(fā)現(xiàn)不起作用,偽元素里面不能再用偽元素了;

.avator::before::first-letter{
/*無效*/
}

需要換一種思路,比如增加字符間距,讓其余字符都處于容器之外;

.avator::before{
/**/
letter-spacing: 40px;
}

效果如下:

這樣一來,首字符“x”確實處于視線之中了。

不過新問題也來了,如何讓首字符水平垂直居中呢?

三、首字符水平垂直居中

垂直居中比較好辦。設(shè)置行高就行了。

.avator::before{
/**/
line-height: 40px;
}

水平居中貌似有些棘手,不過發(fā)揮你的奇思妙想,問題還是可以解決的!

首先,由于寬度限制,可以把所有的字符強制換行,保證每個字符都處于單獨一行,首行也不另外。

.avator::before{
/**/
word-break: break-all; /*換行*/
}

前面我們加了一個字符間距,但是字符間距是跟隨在字符后面的,所以第一個字符的前面是沒有間距的。為了保持首行左右平衡,所以手動加上同樣的間距,這里采用text-indent來實現(xiàn)。

.avator::before{
/**/
text-indent: 40px; /*首行縮進(jìn)*/
}

這樣對于首行來說,其實是左右邊距是一樣的。接下來,通過 flex 布局居中就可以了。

.avator::before{
/**/
display: flex;
justify-content: center; /*水平居中*/
}

對于英文字母來說,可能需要轉(zhuǎn)成大寫;

.avator::before{
/**/
text-transform: capitalize; /*首字母大寫*/
}

然后超出隱藏看看效果吧!

四、特殊符號的影響

后來測試中,發(fā)現(xiàn)了另外一個問題,當(dāng) alt 中有一些特殊標(biāo)點符號時,首字符會消失不見。

<img class="avator" src="" alt="xboxyan(測試)">

打開隱藏其實是這樣的:

是不是看著一團(tuán)糟?其實就是一些閉尾標(biāo)點惹的禍!比如這里的(,默認(rèn)情況下是不允許出現(xiàn)在一行的末尾的,所以強制換到了下一行,導(dǎo)致整個布局錯亂。為了解決這個問題,可以使用一個比較冷門的 CSS 屬性 line-break - CSS(層疊樣式表) | MDN (mozilla.org)[1] 來解決,有興趣的可以參考張鑫旭的這篇文章:CSS line-break屬性與中文標(biāo)點換行 [2]。

.avator::before{
/**/
line-break: anywhere; /*任意地方都換行*/
}

這下就沒問題了,都是整整齊齊的換行~

下面整理一下,附上完整代碼:

<ul class="list">
<li class="item">
<img class="avator" src="https://tva1.sinaimg.cn/large/008i3skNgy1grgo8qjty1j30e80e8aad.jpg" alt="xboxyan">
xboxyan
</li>
<li class="item">
<img class="avator" src="" alt="xboxyan">
xboxyan
</li>
<li class="item">
<img class="avator" src="" alt="前端偵探">
前端偵探
</li>
<li class="item">
<img class="avator" src="" alt="體驗設(shè)計部">
體驗設(shè)計部
</li>
</ul>
.list{
list-style: none;
padding: 0;
}
.avator{
width: 40px;
height: 40px;
border-radius: 8px;
overflow: hidden;
background: bisque;
}
.avator::before{
content: attr(alt);
display: flex;
width: 100%;
height: 100%;
background-color: bisque;
text-transform: uppercase;
line-height: 40px;
letter-spacing: 40px;
text-indent: 40px;
justify-content: center;
text-align: center;
/* word-break: break-all; */
line-break: anywhere;
color: rgb(250, 84, 28);
}
.item{
display: flex;
align-items: center;
gap: 15px;
height: 64px;
font-size: 18px;
}

效果如文章開頭所示,有需要的可以直接用起來了;

或者訪問線上鏈接 CSS avator(codepen.io)[3] 或者 CSS avator (juejin.cn)[4]。

五、總結(jié)一下

以上就是本文的全部內(nèi)容了,非常簡單實用的一個小功能,下面簡單總結(jié)一下:

現(xiàn)代瀏覽器支持 img 偽元素了,并且只有在資源加載失敗時才可用,利用這一點可以設(shè)置圖片占位符。

偽元素通過 attr 屬性可以獲取 img 標(biāo)簽屬性,推薦使用 alt

偽元素不能再使用偽元素了。

增加字符的行間距可以在可視范圍內(nèi)僅看到一個字符。

垂直居中可以通過行高來實現(xiàn)。

水平居中可以通過首行縮進(jìn) 和 flex 居中實現(xiàn)。

部分特殊符號由于“避尾”或者“避首”特性,導(dǎo)致?lián)Q行布局錯亂。

line-break 可以打破以上規(guī)則

唯一的遺憾就是 Safari 不支持圖片偽元素,不過沒關(guān)系,不影響功能,也可以學(xué)到一些你可能不知道的小技巧。

參考資料

[1]line-break - CSS(層疊樣式表) | MDN (mozilla.org): https://developer.mozilla.org/zh-CN/docs/Web/CSS/line-break

[2]CSS line-break屬性與中文標(biāo)點換行 : https://www.zhangxinxu.com/wordpress/2021/02/css-line-break/

[3]CSS avator(codepen.io): https://codepen.io/xboxyan/pen/KKZjqrZ

[4]CSS avator (juejin.cn): https://code.juejin.cn/pen/7090835301370691620

責(zé)任編輯:武曉燕 來源: 前端偵探
相關(guān)推薦

2022-10-24 17:57:06

CSS容器查詢

2015-04-24 10:05:15

HTML+CSS阿童木頭像

2022-03-21 15:29:35

CSSHarmonyOS鴻蒙

2010-09-13 16:04:27

CSS控制自動換行

2010-09-08 09:54:16

CSS自動換行CSS

2012-05-24 10:15:48

PHP

2024-05-09 00:00:00

CSS標(biāo)簽JavaScript

2023-10-30 09:18:28

CSSColumns布局

2024-04-15 09:22:48

CSS鎖定overflow

2021-10-15 11:37:44

反爬蟲破解

2010-10-14 16:45:54

MySQL查詢

2023-09-29 11:32:07

2010-09-01 15:28:11

CSSexpression

2024-08-29 08:13:58

2021-10-19 22:23:47

CSSBeautiful按鈕

2009-07-30 09:42:29

CSS實現(xiàn)文字旋轉(zhuǎn)

2022-12-12 11:11:05

2010-10-25 10:20:33

ORACLE函數(shù)

2017-04-27 14:05:59

CSS動畫前端

2010-09-14 09:18:28

DIVCSS
點贊
收藏

51CTO技術(shù)棧公眾號

成人黄色小视频在线观看| 男的插女的下面视频| 亚洲熟妇av日韩熟妇在线| 加勒比一区二区| 成人亚洲综合天堂| 黄瓜视频成人app免费| 日韩在线卡一卡二| 这里只有精品免费| 狠狠色综合欧美激情| xxxx日本黄色| 18加网站在线| 丝袜亚洲精品中文字幕一区| 9191成人精品久久| 欧美日韩激情四射| 日韩在线播放中文字幕| 综合久久av| 91在线观看下载| 色99之美女主播在线视频| 97超碰在线视| 天堂中文网在线| 日韩欧美1区| 午夜视频久久久久久| 欧美h视频在线| 制服丨自拍丨欧美丨动漫丨| 在线高清av| 国产91精品一区二区麻豆网站| 亚洲视频免费一区| 亚洲国产成人精品无码区99| 精品无人乱码| 国产美女一区| 欧美不卡一区二区三区| 亚洲国产精品一区二区第四页av| 999av视频| 欧美日韩国产免费观看视频| 精品国产91久久久久久老师| 成人做爰www免费看视频网站| 成人无码av片在线观看| 999国产精品一区| 一区二区高清在线| 98国产高清一区| 欧美人妻一区二区| 欧美日本三级| 亚洲一区二区三区视频在线| 日韩av大全| 久久久久人妻一区精品色欧美| 免费日韩一级片| 四虎影院在线域名免费观看| 一本色道久久综合亚洲精品酒店 | 欧美激情中文字幕一区二区| 欧美巨猛xxxx猛交黑人97人| 亚洲中文字幕久久精品无码喷水| 欧美色视频免费| 亚洲一区久久| 亚洲第一男人av| 久久成人福利视频| 国产一二区在线| 国产欧美日韩在线观看| 精品在线视频一区二区| 高潮毛片7777777毛片| 精品一区二区三区免费播放 | 国产三级视频在线看| 永久免费看片直接| 性xxxx视频播放免费| 韩日成人av| 日韩亚洲欧美一区| 91香蕉视频网址| av 一区二区三区| 蜜桃久久久久久| 色婷婷综合成人| 国产毛片久久久久久久| 日韩美女毛片| 色综合久久久久久久久久久| 欧美久久久久久| 波多野结衣高清视频| 亚洲美女15p| 日韩av影视综合网| 国产xxxxx在线观看| 免费在线小视频| 91色.com| 91久久精品美女高潮| 99成人精品视频| 欧美wwwww| 色婷婷综合久久久久| jizz日本在线播放| 国产探花一区二区| 亚洲福利在线看| 成年人在线观看av| 男人天堂资源网| 美女国产在线| 国产在线不卡视频| 成人国产精品免费视频| 国产性一乱一性一伧一色| 欧美激情第8页| 国内精品伊人久久| 国产肥白大熟妇bbbb视频| 网红女主播少妇精品视频| 亚洲精选在线观看| 日本高清一区二区视频| 99精品视频在线免费播放| 91精品国产福利在线观看| 欧美性受xxxxxx黑人xyx性爽| 国产一区二区在线观| 一区二区三区在线观看动漫| 日本熟妇人妻xxxx| 在线手机中文字幕| 欧美日韩在线不卡| 色欲色香天天天综合网www| 深夜av在线| 天天操天天干天天综合网| 精品少妇人欧美激情在线观看| 成人性教育av免费网址| 欧美绝品在线观看成人午夜影视 | 日韩不卡一区| 欧美区在线播放| 精品人妻一区二区三区免费看 | 欧美性受xxx| 午夜黄色福利视频| 亚洲清纯自拍| 国产精自产拍久久久久久| 亚洲av无码片一区二区三区 | 国产免费av一区| 欧美丝袜在线观看| 成人短视频软件网站大全app| 首页亚洲中字| 日本韩国欧美三级| 久久久久久久高清| 亚洲区小说区图片区qvod| 久久视频在线看| aaaaaav| 精品黄色一级片| 久久97久久97精品免视看| 亚洲午夜18毛片在线看| 国产精品自拍av| 日韩激情视频| √8天堂资源地址中文在线| 欧美在线色视频| 呦呦视频在线观看| 99成人在线视频| 夜夜嗨av色综合久久久综合网 | 成人小视频在线| 先锋在线资源一区二区三区| 2020日本在线视频中文字幕| 91精品国产欧美日韩| 久久精品三级视频| 清纯唯美日韩| 中文字幕在线视频日韩| 在线看成人av| 国产九色精品成人porny| 亚洲精品国产精品国自产观看| 蜜臀久久精品| 亚洲国产精品久久久久秋霞不卡| 色在线观看视频| 久国产精品韩国三级视频| 日韩高清专区| 性欧美gay| 亚洲欧美日韩精品久久奇米色影视| 九九热这里有精品视频| 麻豆91小视频| 激情成人在线观看| 蜜桃视频在线观看播放| 精品嫩草影院久久| 五月天av网站| 欧美亚洲在线日韩| 97在线观看视频国产| 久久久国产精华液| 亚洲人成电影网站色…| 久久人妻无码一区二区| 激情久久99| 亚洲综合另类小说| 五月天婷婷影视| 香蕉综合视频| 高清欧美电影在线| 国产超碰人人模人人爽人人添| 中文字幕亚洲一区二区av在线| 麻豆传媒网站在线观看| 99视频有精品高清视频| 久久综合av| 亚洲激情视频在线| 国产一级免费av| 成人免费黄色在线| 黄色成人在线看| 午夜精品福利影院| 日本精品久久久久影院| 国产午夜精品一区理论片| 91搞黄在线观看| av在线免费播放网址| 狠狠色丁香婷综合久久| 777久久精品一区二区三区无码| 伊人久久影院| 亚洲国产成人精品女人久久久 | 亚洲精品在线观看网站| 粉嫩av懂色av蜜臀av分享| 亚洲精品少妇| 欧美精品一区在线| 色诱色偷偷久久综合| 欧美xxxx做受欧美.88| 色网站免费观看| 欧美综合天天夜夜久久| 久久精品在线观看视频| 国产精品一区二区不卡| 男人添女人下面高潮视频| 日本a级不卡| 成人午夜电影在线播放| 桃子视频成人app| 九九热这里只有在线精品视| 四虎精品在永久在线观看 | 浮妇高潮喷白浆视频| 狠狠操综合网| 99久久精品久久久久久ai换脸| 精精国产xxxx视频在线野外| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产精品av久久久久久无| 国产一区二区h| 成人免费在线小视频| 国产精品二区不卡| 精品一区二区日本| 精品视频在线播放一区二区三区| 97在线看福利| 国产传媒在线播放| 亚洲欧美精品中文字幕在线| av网站免费播放| 91国偷自产一区二区三区观看| 久久久久久久久久91| 日本一二三四高清不卡| 免费黄色三级网站| 国产美女精品在线| 日韩在线第三页| 在线播放精品| 久久最新视频| 亚洲不卡1区| 免费看日产一区二区三区| 欧美亚洲第一区| 天堂亚洲精品| 欧美一区二区成人| 香蕉影院在线观看| 夜夜操天天操亚洲| 老司机深夜福利网站| 久久综合九色综合97婷婷| 九九九久久久久久久| 欧美a一区二区| 亚洲一区二区在线免费观看| 另类ts人妖一区二区三区| 成人精品视频久久久久| 91精品国产66| 日韩免费高清在线观看| 国产白浆在线免费观看| 欧美激情2020午夜免费观看| 麻豆91在线| 神马久久桃色视频| 成人性生交大片免费看午夜| 亚洲乱码国产乱码精品精| 深爱激情五月婷婷| 精品日韩99亚洲| www男人的天堂| 欧美一区二区三区免费大片| 亚洲图片中文字幕| 日韩一区欧美小说| 国精品人伦一区二区三区蜜桃| 久久精品免视看| 亚洲最大成人网站| 久久综合久久鬼色| 国产精品815.cc红桃| 久久综合色天天久久综合图片| 久久久久亚洲AV成人无码国产| 99久久精品免费看国产免费软件| caopor在线| 亚洲免费观看| 国产美女在线一区| 亚洲人妖在线| 日本男女交配视频| 一道本一区二区三区| y111111国产精品久久婷婷| 一区二区三区四区视频免费观看| 97超碰资源| 成人爽a毛片| 精品亚洲第一| 国产精品亚洲片在线播放| 日韩一二三区不卡在线视频| 色狮一区二区三区四区视频| 一区二区三区日韩视频| 女生裸体视频一区二区三区| 青青草国产免费| 性欧美暴力猛交另类hd| 亚洲五月天综合| 国产一区欧美日韩| 欧美图片自拍偷拍| 久久久精品国产免大香伊| 免费观看精品视频| 成人一区不卡| 日韩在线视频在线| 亚洲经典三级| 久久精品一区二| 蜜臀av性久久久久蜜臀aⅴ| 国产三级生活片| 无码国模国产在线观看| 久久色精品视频| 色综合久久久久久| 日韩av在线最新| 高清av电影在线观看| 日韩视频在线免费观看| 欧美wwww| 国产成人精品久久二区二区| 亚洲成人高清| 国模精品娜娜一二三区| 日本不卡二三区| 国产激情片在线观看| 亚洲欧美网站| caoporm在线视频| 久久综合九色综合97婷婷女人| 在线观看黄网址| 都市激情亚洲色图| 国产在线拍揄自揄拍| 色香色香欲天天天影视综合网| 91亚洲国产成人久久精品麻豆| 亚洲成人久久久| 午夜在线播放| 97婷婷大伊香蕉精品视频| 日韩黄色在线| 久久99影院| 综合视频在线| 一区二区三区入口| zzijzzij亚洲日本少妇熟睡| 久久久久久久麻豆| 日韩欧美高清视频| 亚洲成人一级片| 最新91在线视频| 超碰超碰人人人人精品| 成人自拍网站| 亚洲一区欧美| 亚洲少妇第一页| 99re热这里只有精品视频| 手机在线免费看毛片| 一本一道综合狠狠老| 丰满人妻av一区二区三区| 日韩专区在线观看| 欧美123区| 久久久影院一区二区三区| 欧美久久影院| 成人不卡免费视频| 欧美激情综合在线| 日韩人妻精品中文字幕| 亚洲国产又黄又爽女人高潮的| jizz性欧美| 成人激情免费在线| 日韩影院二区| 999在线免费视频| 久久久久综合网| 西西44rtwww国产精品| 精品三级在线看| 日本在线观看高清完整版| 91九色视频在线| 日韩综合精品| av免费网站观看| 成人午夜精品在线| 中文字幕av久久爽av| 717成人午夜免费福利电影| 成年人在线观看视频| 欧美亚洲另类视频| 美女午夜精品| aa在线观看视频| 99国产精品久久久久久久| 999久久久精品视频| 亚洲欧洲韩国日本视频| 一区二区三区播放| 久久精品91久久久久久再现| 色综合一区二区日本韩国亚洲| 日韩高清专区| 精品夜夜嗨av一区二区三区| 亚洲AV无码国产成人久久| 欧美色视频一区| 免费高清在线观看| 99免费在线观看视频| 亚洲一级网站| 黄色国产在线观看| 欧美色综合天天久久综合精品| 超碰在线国产| 91传媒免费看| 在线免费高清一区二区三区| 日批视频免费看| 久久综合色天天久久综合图片| www毛片com| 色偷偷888欧美精品久久久| 三级成人在线| 亚洲精品乱码久久久久久蜜桃91| 日韩精品一级二级| 欧亚精品中文字幕| 在线视频观看国产| 999视频在线观看| 亚洲麻豆视频| 亚洲做受高潮无遮挡| 欧美在线免费视屏| 成人直播在线| 精品久久精品久久| 免费成人在线影院| 青青草激情视频| 亚洲老头同性xxxxx| 婷婷精品久久久久久久久久不卡| 99久久久精品视频| 国产性天天综合网| 亚洲爱情岛论坛永久|