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

CSS 小技巧:如何將 img 轉換成 background-image

開發(fā) 前端
本文的實現(xiàn)都可以通過嵌套一層標簽來實現(xiàn),這里其實針對的是那種 html 結構不方便修改的情況,比如是框架自己生成的,或者在一些富文本編輯器了,嵌套一層會有更多的麻煩。?

一、img vs background-image

大部分注重內容的圖片(比如商品展示、文章配圖)都推薦直接使用img標簽,好處有很多,比如

  1. img支持天然懶加載,設置loading="lazy"
<img src='xxx.png' loading="lazy">
  1. img支持各種JS監(jiān)聽,比如加載成功、加載失敗
<img src='xxx.png' onload="" onerror="">
  1. img支持自定義解碼,同步還是異步
<img src='xxx.png' decoding="sync">
  1. img對SEO更加優(yōu)化,對可訪問性更好
<img src='xxx.png' alt="頭像">

但是,除了上面這些,在視覺表現(xiàn)上,圖片靈活性就不如背景圖片了。

比如img不支持重復平鋪、不支持圖片疊加等等,也不像普通標簽還可以使用偽元素。

這樣就導致很多時候,比如要在img外面嵌套一層容器再額外處理,還是有些不便的,特別是在HTML不方便修改的情況下。

那么,有沒有什么辦法,可以將img轉換成background-image呢? 也就是使用img標簽,但是卻可以使用背景圖的諸多特性。

image-20250822194214247image-20250822194214247

二、img 的層級

img是一個可替換標簽,意思就是這個標簽的渲染內容是由外部決定的。

這樣就導致img和一般標簽有些不同,比如沒有偽元素,而且「資源的層級是高于一些裝飾性屬性的」,例如背景、內陰影等

image-20250823103620523image-20250823103620523

比如,我們給一個img標簽添加一個背景。

<img src="xxx.png" style="background:red">

效果如下:

image-20250823103843453image-20250823103843453

沒有看到任何紅色背景,說明圖片的層級是高于背景的。

如果我們換一個帶透明像素的圖片,就能看到背景了。

image-20250823104022461image-20250823104022461

所以,下面的問題就是,如何把img本身的圖片給隱藏起來?

三、如何隱藏 img 資源?

當然這里說的隱藏并不是直接隱藏整個img標簽,比如:

img {
  opacity: 0 /*????*/
}

這樣的話,整個標簽都看不見了,背景也看不見了,也就失去了轉換的意義。

那還有什么辦法可以隱藏呢?這里有兩種方式。

1. 通過content替換內容

在之前,可以從可替換標簽入手,通過content屬性可以改變可替換元素的內容,就像這樣。

img {
  content: url(xx.png)
}

我們給img標簽一個透明的圖片內容,就可以替換img原本的顯示了,這里可以用1*1像素的透明gif。

img {
  content: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
}

但是,這樣設置以后,圖片完全不可見了。這樣因為,此時的img已經(jīng)被渲染成1*1像素了。

image-20250823111419050image-20250823111419050

所以在用這種方式時,必須手動指定寬高。

img {
  content: url(xxx.png);
  width: 300px;
  height: 300px;
}

為了方便觀察,我們加上邊框。

image-20250823111006597image-20250823111006597

這樣原始的img鏈接已經(jīng)被隱藏了。

2. 通過object-position偏移

上面的方式比較硬核,還可以設置一張錯誤的圖片,讓圖片展示直接出錯,這樣還能使用偽元素。

不過,有個小缺陷是,必須要手動指定圖片寬高,可能存在一定的限制。

下面介紹另一個方式,那就是通過object-positon收到改變圖片的顯示位置。比如:

img {
  object-position: 100px;
}

效果如下:

image-20250823112432629image-20250823112432629

我們只需要給個足夠大的值,圖片就完全移出標簽外了。

img {
  object-position: 100vw; /**足夠大的偏移/
}

這樣也能隱藏圖片的展示,而且也不影響img原本尺寸。

image-20250823111006597image-20250823111006597

注意,這里不能用object-position: 100%來實現(xiàn),和背景位置比較像,100%表示居右了,并不是向右偏移自身的100%。

四、如何通過背景圖片顯示

再回到img標簽本身,有辦法直接通過src屬性直接顯示為背景圖片嗎?

<img src="xxx.png">

在之前這篇文章:原子化的未來?了解一下全面進化的CSS attr函數(shù) 有提到attr的新特性。

但是,出于安全考慮,并不能直接顯示背景圖片。

img{
  background: url(attr(src));
}

其實呢,還可以用image-set來直接渲染字符串格式的資源,寫法如下。

img {
  background: image-set(attr(src));
}

這個技巧是在張鑫旭的這篇文章中學到的:https://www.zhangxinxu.com/wordpress/2025/05/css-attr-function/

效果如下:

image-20250823115359509image-20250823115359509

背景尺寸有些不對,我們調整一下。

img {
  background: image-set(attr(src)) 0 0/100%;
}

這樣就通過背景完美替換了圖片。

image-20250823115545747image-20250823115545747

不過這個需要用過attr的新特性,要求兼容性 chrome 133+。

更常見的做法是通過自定義屬性來實現(xiàn)。

<img src="xxx.png" style="--bg: url(xxx.png)">

然后直接使用這個變量。

img {
  background: var(--bg) 0 0/100%;
}

五、轉換成背景圖片后的好處

費了一番功夫轉換成了背景圖片,有哪些好處呢?下面舉幾個例子。

1. 圖片內邊框

通常我們使用border實現(xiàn)的邊框都是外邊框,無法直接覆蓋在圖片上,有時候需要一種半透明邊框來強化圖片的輪廓,比如下面的書封。

imgimg

這時,我們可以通過內陰影來實現(xiàn)這樣的效果(內陰影的層級高于背景)。

img {
  background: image-set(attr(src)) 0 0/100%;
  border-radius: 8px;
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.1)
}

效果如下:

image-20250823122050743image-20250823122050743

2. 圖片高光或者水印

有時候書封還需要高光或者水印,這樣會更有質感一些,就像這樣。

image-20250823123002130image-20250823123002130

這時,我們可以直接給圖片疊加一層高光素材就行了。

img {
  background: url("https://imgservices-1252317822.image.myqcloud.com/coco/s03272025/e21047d7.v7q5ko.png") 0 0/100% 100%, image-set(attr(src)) 0 0/100%;
}

效果如下:

image-20250823123221252image-20250823123221252

也可以疊加一層平鋪的水印。

img{
  --water: url("data:image/svg+xml,%3Csvg width='150' height='150' style='transform:rotate(-45deg)' xmlns='http://www.w3.org/2000/svg'%3E%3Ctext x='50%25' y='50%25' font-size='14' fill='%23a2a9b6' font-family='system-ui, sans-serif' text-anchor='middle' dominant-baseline='middle'%3E前端偵探%3C/text%3E%3C/svg%3E");
  background: var(--water) 50%/28%, image-set(attr(src)) 0 0/100%;
  box-shadow: inset 0 0 0 4px rebeccapurple;
}

效果如下:

image-20250823123505939image-20250823123505939

3. 圖片縮放效果

可以在不嵌套標簽的情況下實現(xiàn)圖片縮放效果。

img{
  transition: .3s;
}
img:hover{
  background-size: 120%;
}

效果如下:

Kapture 2025-08-23 at 14.01.09Kapture 2025-08-23 at 14.01.09

以上所有 demo 可以查看:https://codepen.io/xboxyan/pen/azvGeOV。

六、更多一種選擇

其實上面的實現(xiàn)都可以通過嵌套一層標簽來實現(xiàn),這里其實針對的是那種 html 結構不方便修改的情況,比如是框架自己生成的,或者在一些富文本編輯器了,嵌套一層會有更多的麻煩。

責任編輯:武曉燕 來源: 前端偵探
相關推薦

2022-07-19 10:53:57

模型算法智能

2023-08-29 09:00:00

人工智能img2prompt

2017-08-10 14:15:31

Windows10Windows文件轉換

2021-08-31 09:12:18

StringIntLong

2023-10-16 09:26:48

CSS類型轉換

2011-03-23 09:54:47

數(shù)據(jù)模型數(shù)據(jù)庫設計

2011-03-22 14:57:52

Oracle數(shù)據(jù)庫普通表分區(qū)表

2023-10-20 08:00:00

人工智能MusicGen

2011-02-25 10:22:03

ibmdwXMLDB2

2011-12-09 21:13:29

iOS

2021-06-07 17:30:23

LinuxASCII圖片轉換

2021-07-14 14:50:08

LinuxASCII圖片

2021-03-15 08:00:00

音頻框架數(shù)據(jù)

2022-10-12 09:55:14

xls文件xlsx文件

2023-12-11 09:00:00

人工智能3D模型

2011-08-02 09:46:04

iOS開發(fā) XML

2019-09-06 08:00:00

開源技術 語音

2011-08-02 10:08:32

IOS開發(fā) XML

2017-06-06 13:10:25

Windows 10Windows音樂格式轉換成

2024-01-04 09:17:03

前端開發(fā)CSV 格式JSON 字符串
點贊
收藏

51CTO技術棧公眾號

成人在线播放免费观看| 亚洲色图欧美自拍| 日本一区高清| 免费av成人在线| 久久综合88中文色鬼| 精品久久久久一区二区| 春暖花开亚洲一区二区三区| 国产精品麻豆视频| 成人免费观看网站| 中文字幕第一页在线播放| 亚洲午夜精品一区 二区 三区| 欧美精品一区二区三区四区 | 色婷婷激情一区二区三区| 亚洲三区视频| 男女污污视频在线观看| 国产一区二区三区美女| 日本成人在线视频网址| 2021亚洲天堂| 日韩中文欧美| 亚洲女人天堂网| 韩国黄色一级片| 成人免费在线观看视频| 精品国产999| av电影一区二区三区| 九一在线视频| 99久久婷婷国产| 亚洲永久在线观看| 自拍偷拍福利视频| 先锋影音久久| 久久久免费精品| 黑鬼狂亚洲人videos| 精品视频网站| 亚洲欧美综合区自拍另类| 国产女主播在线播放| 欧美日韩破处视频| 午夜电影一区二区| 屁屁影院ccyy国产第一页| 久操视频在线| 国产精品蜜臀在线观看| 日韩在线三区| 国产综合在线观看| 久久尤物电影视频在线观看| 成人av影视在线| 99久久国产热无码精品免费| 麻豆成人91精品二区三区| 日韩免费av在线| 国产精品一区无码| 免费久久99精品国产自在现线| 久久久亚洲精品视频| 国产十六处破外女视频| 91成人看片| 久久国产加勒比精品无码| 你懂得在线观看| 93在线视频精品免费观看| 中文字幕视频一区二区在线有码| 欧美大波大乳巨大乳| 精品视频日韩| 日韩视频亚洲视频| 欧美性x x x| 亚洲欧美亚洲| 性色av一区二区三区| 日韩精品视频播放| 亚洲理伦在线| 茄子视频成人在线| 伊人久久中文字幕| 美美哒免费高清在线观看视频一区二区 | 欧美三日本三级三级在线播放| 成人精品视频一区二区| 欧美与亚洲与日本直播| 欧美三级电影在线观看| 亚洲综合伊人久久| 激情视频极品美女日韩| 日韩精品视频在线播放| 精品欧美一区二区久久久| 波多野结衣在线播放一区| 中文字幕在线亚洲| 91人妻一区二区三区蜜臀| 国产一区美女| 国产91精品高潮白浆喷水| 欧美人一级淫片a免费播放| 久久国产婷婷国产香蕉| 亚洲最大福利网| 日韩在线观看视频一区| 国产日本亚洲高清| 青青草影院在线观看| brazzers在线观看| 色噜噜偷拍精品综合在线| 色婷婷.com| 激情亚洲另类图片区小说区| 亚洲欧美日韩第一区| 精品亚洲乱码一区二区 | 久章草在线视频| 亚洲伊人伊成久久人综合网| 精品福利视频一区二区三区| 亚洲最大成人综合网| 午夜精品偷拍| 日韩美女中文字幕| www.蜜桃av.com| 国产三级精品视频| 国产精品videossex国产高清| 中文字幕这里只有精品| 欧美一级国产精品| 永久免费毛片在线观看| 亚洲美女少妇无套啪啪呻吟| 国产日韩欧美在线| 三级国产在线观看| 亚洲精品亚洲人成人网在线播放| 国产超级av在线| 欧美特黄不卡| 在线看片第一页欧美| 精品成人免费视频| 国内一区二区在线| 日本一区视频在线观看| av中文在线资源库| 91精品国产色综合久久| 亚洲国产天堂av| 国产欧美一区二区色老头 | 亚洲柠檬福利资源导航| www日韩在线观看| 欧美精品中文| 欧美福利视频网站| 亚洲欧洲免费无码| 成人免费无码大片a毛片| 国产成人精品999在线观看| 欧美另类高清videos| 久久久久久久久久一级| 97久久精品人人澡人人爽| 男人的天堂视频在线| 国产成人福利夜色影视| 亚洲女人被黑人巨大进入al| 成年人午夜视频| 国产精品影视在线| 中文字幕日韩一区二区三区 | 国产精品国产三级国产aⅴ无密码| 久久久999免费视频| 51vv免费精品视频一区二区| 久久中文字幕国产| 国产精品一二三四五区| 中文成人av在线| 在线观看av日韩| 777av视频| 最新97超碰在线| 日韩欧美国产视频| 性囗交免费视频观看| 一区二区自拍| 91文字幕巨乱亚洲香蕉| 免费人成自慰网站| 亚洲精品第一| 在线不卡国产精品| 日本黄色中文字幕| 国产视频一区二区在线观看| 成人毛片视频网站| 精品中文字幕一区二区三区av| 97色伦亚洲国产| 四虎永久在线精品免费网址| 亚洲国产精品第一区二区| 色狠狠一区二区| 伊人网伊人影院| 久久久国产亚洲精品| 欧美精品在线一区| 美女色狠狠久久| 日韩有码在线电影| a天堂视频在线| 亚洲一区二区三区四区的| 少妇熟女视频一区二区三区 | 国产凹凸在线观看一区二区| 超碰人人爱人人| 91麻豆精品国产91久久久久推荐资源| 欧美精品久久一区二区| 无码国产伦一区二区三区视频 | 亚洲视频中文字幕| 污污视频在线免费| 黄色综合网站| 国产精品国产三级国产| 国产特级淫片高清视频| 欧美激情极品| 国产精品爱啪在线线免费观看| 九色|91porny| 国产aaa精品| 成人77777| 88在线观看91蜜桃国自产| 麻豆精品一区二区三区视频| www.日韩av| 久久久久久久久久久久久国产精品| 国产一区二区三区日韩精品| 成人h视频在线观看播放| 日韩欧美一起| 亚洲一区二区久久久| 国产精品污视频| 韩曰欧美视频免费观看| 日韩欧美黄色网址| 懂色中文一区二区在线播放| 中文字幕乱码人妻综合二区三区 | 少妇熟女一区二区| 国产伦精品一区二区三区在线播放 | 免费成人av在线播放| 国产 国语对白 露脸| 蜜桃tv一区二区三区| 91麻豆国产语对白在线观看| 免费成人在线电影| 久久亚洲精品一区二区| 免费在线视频一级不卡| 51精品国自产在线| 日本天堂网在线| 一区二区视频在线看| 国产三级av在线播放| 成人福利视频网站| 国产成年人视频网站| 久久xxxx精品视频| 亚洲aa中文字幕| 成人免费直播live| 啪啪免费视频一区| 尤物tv国产一区| 黄色片一区二区| 欧美放荡的少妇| 夜夜爽妓女8888视频免费观看| 91久久偷偷做嫩草影院电| 午夜精品久久久久久久男人的天堂 | 97婷婷大伊香蕉精品视频| 毛片在线不卡| 亚洲视频自拍偷拍| 免费观看毛片网站| 欧美一区二区大片| 亚洲无码精品在线播放| 色诱亚洲精品久久久久久| 久久网免费视频| 亚洲美女视频在线| 三级在线观看免费大全| 国产精品毛片高清在线完整版| 中文字幕免费看| www.日韩大片| 国产精品成人无码专区| 国产电影一区二区三区| 999热精品视频| 国产在线一区观看| 亚洲综合欧美在线| 日韩不卡一区二区| 手机在线观看日韩av| 欧美重口另类| 91久久大香伊蕉在人线| 日本午夜精品久久久久| 国产精品wwww| 成人日韩在线| 国产精品igao视频| 性欧美hd调教| 国产成人亚洲综合91| 神马电影网我不卡| 国产99视频在线观看| 欧美成人免费电影| 日韩女优在线播放| 日本韩国欧美| 国产精品美女在线观看| 88xx成人网| 国产一区二区丝袜| 麻豆国产欧美日韩综合精品二区| 欧美自拍资源在线| 偷拍自拍亚洲色图| 精品网站在线看| 综合国产视频| 手机看片福利永久国产日韩| 成人在线免费小视频| 天堂资源在线亚洲视频| 欧美电影免费| 999久久欧美人妻一区二区| 精品成人在线| 亚洲色欲综合一区二区三区| 日韩vs国产vs欧美| 国产精品视频中文字幕| 狠狠色丁香久久婷婷综| 第一页在线视频| 91一区二区三区在线观看| 91制片厂在线| 狠狠狠色丁香婷婷综合久久五月| 黄色小视频免费网站| 激情五月播播久久久精品| 国产成人强伦免费视频网站| 国产91在线看| 日本免费福利视频| 欧美国产1区2区| 一级黄色录像视频| 天天做天天摸天天爽国产一区| 日韩免费av网站| 欧美一区二区三区免费| 亚欧在线观看视频| 日韩在线观看你懂的| 亚洲免费伊人电影| 女人被狂躁c到高潮| 国产亚洲精品bt天堂精选| 黄色精品视频在线观看| 亚洲成人精品一区| 国内av在线播放| 精品国产髙清在线看国产毛片| 玖玖综合伊人| 欧美激情久久久| 88xx成人网| 精品一区久久久| 亚洲国产不卡| 中文字幕欧美人妻精品一区| 国产一区二区美女诱惑| 中文字幕一区二区人妻在线不卡 | 欧美一区二区三级| 秋霞av在线| 欧美激情影音先锋| 99久久伊人| 精品欧美日韩| 在线精品国产| 国产精品人人爽人人爽| 成人av手机在线观看| 女性裸体视频网站| 色综合久久久久综合体| 亚洲大尺度网站| 中文字幕亚洲激情| 少妇视频在线观看| 动漫3d精品一区二区三区| 99国内精品久久久久久久| 免费裸体美女网站| av中文字幕在线不卡| 亚洲色图综合区| 欧美午夜精品一区二区蜜桃| 亚洲欧美日韩免费| 欧美精品第一页在线播放| 99精品国产九九国产精品| 日本一区免费| 国产精品美女久久久浪潮软件| 免费国偷自产拍精品视频| 国产精品高潮呻吟久久| 中文人妻av久久人妻18| 日韩大陆欧美高清视频区| 欧美精品videosex| 3d动漫精品啪啪一区二区三区免费| 精品理论电影| 黄色三级视频片| 国产亚洲欧美一区在线观看| 免费在线不卡视频| 亚洲国产美女精品久久久久∴| 一色桃子av在线| 5566中文字幕一区二区| 影视一区二区| 欧美性受xxxx黒人xyx性爽| 一色桃子久久精品亚洲| 亚洲熟女乱色一区二区三区久久久| 亚洲欧洲日产国码av系列天堂| 日韩欧美精品一区二区三区| 久久精品99| 日韩高清不卡一区二区三区| 国产精品无码久久久久一区二区| 色综合一区二区| 国外av在线| 国产精品一二三在线| 欧美高清视频在线观看mv| 亚洲va综合va国产va中文| 1024成人网色www| 国产精品久久久久久久久久久久久久久久| 色哟哟网站入口亚洲精品| 成人在线精品| av在线免费观看国产| 成人高清av在线| 日韩手机在线视频| 在线观看日韩av| 中文字幕日本一区| 亚洲熟妇无码av在线播放| 成人美女视频在线看| 91视频免费网址| 一区二区三区视频观看| 国内自拍亚洲| 粉嫩av一区二区三区天美传媒 | 亚洲精品91在线| 欧美精选一区二区| 天堂亚洲精品| 美脚丝袜一区二区三区在线观看| 日韩高清在线观看| 丝袜美腿小色网| 日韩电影中文字幕| 成人在线视频观看| 曰韩不卡视频| 成a人片亚洲日本久久| 四虎影院在线免费播放| 亚洲欧美国产中文| 亚洲乱码电影| 宇都宫紫苑在线播放| 一区二区三区高清在线| 天堂网在线免费观看| 日本一区二区综合亚洲| 国产精品毛片一区视频播 | 欧美人xxxx| 国产蜜臀在线| 日本视频一区二区在线观看| 久久国产精品区| 国产成人一区二区三区影院在线| 亚洲色图35p| 日本亚洲视频| 97公开免费视频| 亚洲国产一区在线观看| 91福利在线视频| 加勒比在线一区二区三区观看| 日本色综合中文字幕| 久久伊人成人网| 日韩专区中文字幕| 久久99影视| xfplay5566色资源网站|