CSS中可以設置src屬性值嗎? 在大多數情況下,我們這樣使用它:
<img src="pathTo/myImage.jpg" />
我希望它是這樣的
<img class="myClass" />
.myClass {
some-src-property: url("pathTo/myImage.jpg");
}
我想知道是否有一種不使用CSS中的背景或背景圖像屬性的方法。
# # #使用內容:URL(& quot;image.jpg & quot).
完整的工作解決方案(現場演示):
<!doctype html>
<style>
.MyClass123{
content:url("http://imgur.com/SZ8Cm.jpg");
}
</style>
<img class="MyClass123"/>
# # #有一個解決方案是我今天發現的(在IE6+,FF,Opera,Chrome都可以用):
<img src='willbehidden.png'
style="width:0px; height:0px; padding: 8px; background: url(newimage.png);">
工作原理:
圖像縮小,直到不再可見的寬度& amp身高。 然后,您需要用填充“重置”圖像大小。這 一個給出16x16的圖像。當然可以用padding-left / 填充頂部以制作矩形圖像。 最后,使用背景將新圖像放在那里。 如果新的背景圖片太大或者太小,我推薦使用background-size例如:background-size:cover;這使你的圖像適合分配的空間。 它也適用于提交-輸入-圖像,它們保持可點擊。
觀看現場演示:http://www.audenaerde.org/csstricks.html#imagereplacecss
盡情享受吧!
###CSS2的:after偽元素或較新的語法::after from CSS3以及content: property:
第一個W3C推薦標準:級聯樣式表,第2級 CSS2規范1998年5月12日 最新的W3C推薦標準:選擇器級別3 W3C推薦標準2011年9月29日
該方法在元素的文檔樹內容之后追加內容。
注意:一些瀏覽器實驗性地將內容屬性直接呈現在一些元素選擇器上,甚至無視最新的W3C推薦標準,該標準定義了:
適用于::before和:after偽元素
CSS2語法(向前兼容):
.myClass:after {
content: url("somepicture.jpg");
}
CSS3選擇器:
.myClass::after {
content: url("somepicture.jpg");
}
默認呈現:原始大小(不依賴于顯式大小聲明)
這個規范沒有完全定義:before和:after與替換元素的交互(比如HTML中的IMG)。這將在未來的規范中更詳細地定義。
但是即使在撰寫本文的時候,帶有& ltIMG & gt;標簽仍然沒有被定義,盡管它可以以黑客攻擊和不符合標準的方式使用,但使用& ltimg & gt不推薦!
偉大的候選方法,見結論...
**CSS1**的[` background-image:`](http://www . w3 . org/TR/REC-CSS1-961217 # background-image)屬性: 第一個W3C推薦標準:級聯樣式表,第1級,1996年12月17日
此屬性設置元素的背景圖像。當設置背景圖像時,還應該設置圖像不可用時使用的背景顏色。當圖像可用時,它會覆蓋在背景顏色之上。
這個屬性從CSS開始就存在了,盡管如此,它還是值得一提。
默認渲染:原始大小(不能縮放,只能定位)
然而,
CSS3的background-size:屬性通過允許多種縮放選項得到了改進:
最新W3C狀態:候選人推薦CSS背景和邊框模塊級別3 2014年9月9日
[長度& gt| & lt百分比& gt|自動]{1,2} |封面|包含
但是即使有這個屬性,它也依賴于容器大小。
仍然是一個很好的候選方法,見結論...
CSS2的list-style:屬性以及display: list-item:
第一個W3C推薦標準:級聯樣式表,第2級 CSS2規范1998年5月12日
list-style-image:屬性設置將用作列表項標記(項目符號)的圖像
列表屬性描述了列表的基本可視格式:它們允許樣式表指定標記類型(圖像、字形或數字)
display: list-item —該值導致一個元素(例如& lt李& gt以生成主塊框和標記框。
.myClass {
display: list-item;
list-style-position: inside;
list-style-image: url("someimage.jpg");
}
速記CSS:(& lt;列表樣式類型& gt& lt列表樣式位置& gt& lt列表樣式圖像& gt)
.myClass {
display: list-item;
list-style: square inside url("someimage.jpg");
}
默認呈現:原始大小(不依賴于顯式大小聲明)
限制:
-
繼承會將OL和UL元素中的“列表樣式”值轉移到LI元素中。這是指定列表樣式信息的推薦方式。
它們不允許作者指定獨特的樣式(顏色、字體、對齊方式等)。)或調整其位置
這種方法也不適合& ltimg & gt標簽,因為元素類型之間不能進行轉換,這里有一個有限的、不兼容的攻擊,在Chrome上不起作用。
好的候選方法,見結論...
CSS3的邊框圖像:屬性推薦:
最新W3C狀態:候選人推薦CSS背景和邊框模塊級別3 2014年9月9日
一種背景類型的方法,依賴于以一種非常特殊的方式指定大小(沒有為這個用例定義)和后退邊框屬性(例如,邊框:實心):
請注意,即使它們從不會導致滾動機制,一開始 圖像仍可能被祖先或視口剪裁。
此示例說明了僅作為右下角裝飾合成的圖像:
.myClass {
border: solid;
border-width: 0 480px 320px 0;
border-image: url("http://i.imgur.com/uKnMvyp.jpg") 0 100% 100% 0;
}
適用于:除內部表格元素外的所有元素
仍然不能改變一個& ltimg & gts標簽src(但這里有一個hack),相反我們可以修飾它:
.myClass {
border: solid;
border-width: 0 96px 96px 0;
border-image: url("http://upload.wikimedia.org/wikipedia/commons/9/95/Christmas_bell_icon_1.png")
0 100% 100% 0;
}
<img width="300" height="120"
src="http://fc03.deviantart.net/fs71/f/2012/253/b/0/merry_christmas_card_by_designworldwide-d5e9746.jpg"
class="myClass"
# # #我使用了空的div解決方案,這個CSS:
#throbber {
background-image: url(/Content/pictures/ajax-loader.gif);
background-repeat: no-repeat;
width: 48px;
height: 48px;
min-width: 48px;
min-height: 48px;
}
HTML:
<div id="throbber"></div>
# # #我發現了一個比提議的解決方案更好的方法,但它確實使用了背景圖像。 兼容方法(無法確認IE6) 學分:http://www.kryogenix.org/code/browser/lir/
<img src="pathTo/myImage.jpg"/>
CSS:
img[src*="pathTo/myImage.jpg"] {
background-image: url("mynewimg.jpg"); /* lets say 20x20 */
width: 20px;
display:inline-block;
padding: 20px 0 0 0;
height: 0px !important;
/* for IE 5.5's bad box model */
height /**/:20px;
}
舊形象不見,新形象如所料見。
以下簡潔的解決方案僅適用于webkit
img[src*="pathTo/myImage.jpg"] {
/* note :) */
content:'';
display:inline-block;
width: 20px;
height: 20px;
background-image: url("mynewimg.jpg"); /* lets say 20x20 */
}
# # #他們是對的。IMG是一個內容元素,CSS是關于設計的。 但是,當您出于設計目的使用一些內容元素或屬性時呢? 我有IMG在我的網頁上,如果我改變樣式(CSS),必須改變。
這是一個用CSS樣式定義IMG展示的解決方案。
創建1x1透明gif或png。 將IMG的屬性“src”分配給該映像。 用CSS樣式中的“背景-圖像”定義最終演示文稿。 它就像一個魔咒:)
# # #這里有一個非常好的解決辦法->http://css-tricks.com/replace-the-image-in-an-img-with-css/ 贊成和反對意見: (+)處理具有相對寬度/高度的矢量圖像(RobAu的答案沒有處理這個問題) (+)是跨瀏覽器的(也適用于IE8+) (+)它只用CSS。因此不需要修改img src(或者如果您沒有訪問權限/不想更改已經存在的img src屬性)。 (-)不好意思,確實用了后臺css屬性:)
# # #不可以。您不能通過CSS設置圖像src屬性。如你所說,你能得到的最接近的是背景或背景圖像。我不建議那樣做,因為這有點不合邏輯。
但是,如果您的目標瀏覽器能夠使用CSS3,那么您可以使用它。使用Pacerier的回答中描述的內容:url。你可以在下面的其他答案中找到其他跨瀏覽器的解決方案。
# # #您可以在HTML代碼中定義2個圖像,并使用display:none;來決定哪一個是可見的。
# # #將幾個圖像放在一個“控制”容器中,然后更改容器的類。在CSS中,根據容器的類添加規則來管理圖像的可見性。這將產生與改變單個圖像的img src屬性相同的效果。
HTML:
<span id="light" class="red">
<img class="red" src="red.png" />
<img class="yellow" src="yellow.png" />
<img class="green" src="green.png" />
</span>
CSS:
#light { ... }
#light * { display: none; } // all images are hidden
#light.red .red { display: inline; } // show red image when #light is red
#light.yellow .yellow { display: inline; } // .. or yellow
#light.green .green { display: inline; } // .. or green
請注意,它將預加載所有圖像,就像CSS backround-images一樣,但不像通過JS更改img src。
# # #有些數據我會留在HTML中,但最好在CSS中定義src:
<img alt="Test Alt text" title="Title text" class="logo">
.logo {
content:url('../images/logo.png');
}
# # #或者你可以這樣做,這是我在網上找到的。
https://robau . WordPress . com/2012/04/20/override-image-src-in-CSS/
<img src="linkToImage.jpg" class="egg">
.egg {
width: 100%;
height: 0;
padding: 0 0 200px 0;
background-image: url(linkToImage.jpg);
background-size: cover;
}
因此有效地隱藏了圖像并填充了背景。哦,這是一個很好的方法,但是如果你想要一個IMG標簽,它有可選的文本和背景,不需要使用JavaScript就可以縮放?
在我正在做的一個項目中,我創建了一個英雄塊樹枝模板
<div class="hero">
<img class="image" src="{{ bgImageSrc }}"
alt="{{ altText }}" style="background-image: url({{ bgImageSrc }});">
</div>
# # #替代方式
.myClass {
background: url('/img/loading_big.gif');
}
<div class="myClass"></div>
據我所知,你不能。CSS是關于風格,圖像的src是內容。
# # #重申之前的解決方案,并強調這里的純CSS實現是我的答案。
如果您從另一個站點獲取內容,那么就需要一個純粹的CSS解決方案,這樣您就無法控制交付的HTML。在我的例子中,我試圖移除授權源內容的品牌,這樣被授權者就不必為他們購買內容的公司做廣告。因此,我去掉了他們的標志,同時保留了其他的東西。我應該指出,這是在我的客戶的合同這樣做。
{ /* image size is 204x30 */
width:0;
height:0;
padding-left:102px;
padding-right:102px;
padding-top:15px;
padding-bottom:15px;
background-image:url(http://sthstest/Style%20Library/StThomas/images/rhn_nav_logo2.gif);
}
###我知道這是一個很老的問題,但是沒有答案能提供合理的理由來解釋為什么這永遠不可能。雖然你可以“做”你正在尋找的東西,但你不能以一種有效的方式去做。為了有一個有效的img標簽,它必須有src和alt屬性。
因此,任何給出不使用src屬性的img標簽實現這一點的答案都是在提倡使用無效代碼。
簡而言之:你要找的東西在語法結構中是不合法的。
來源:W3驗證程序
# # #如果你不想設置背景屬性,那么你不能只使用CSS來設置圖像的src屬性。
或者,您可以使用JavaScript來做這樣的事情。
# # #用CSS,做不到。但是,如果您使用的是JQuery,類似下面這樣的代碼就可以解決問題:
$("img.myClass").attr("src", "http://somwhere");
# # #可以用JS轉換:
$('.image-class').each(function(){
var processing = $(this).attr('src');
$(this).parent().css({'background-image':'url('+processing+')'});
$(this).hide();
});
# # #如果您試圖基于項目的上下文動態地在按鈕中添加圖像,您可以使用?根據結果引用源。這里我使用mvvm設計讓我的模型。Phases[0] value根據燈光相位的值確定我是否希望我的按鈕填充燈泡打開或關閉的圖像。
不知道這是否有幫助。我用的是JqueryUI,Blueprint,和CSS。類定義應該允許你根據自己的喜好來設計按鈕的樣式。
<button>
<img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>
<img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>
<img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>
# # #我要補充的是:背景圖像也可以用背景位置:x y;(x水平y垂直)。(..) 我的案例,CSS:
(..)
#header {
height: 100px;
background-image: url(http://.../head6.jpg);
background-position: center;
background-repeat: no-repeat;
background-color: grey;
(..)
}
(...)
###HTMl代碼:
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="css destination" />
</head>
<body>
<!-- click-able pic with link -->
<a href="site you want">
<!-- Take the off if you don't want click-able link -->
<h1 id(or class)="nameOfClassorid">
<span>Text that is not important</span>
</h1>
</a>
</body>
</html>
Css代碼:
span {
display: none;
}
h1 id or class {
height: of pic;
width: of pic;
/* Only flaw (so far) read bottom */
background-image:url(/* "image destination" */);
}
h1 id or class:hover {
/* Now the awesome part */
background-image:url(/* 'new background!!!' */);
}
放學后學了幾天html,想知道怎么做這個。找出背景,然后把2和2放在一起。 這工程100%我檢查,如果不是,請確保您填寫必要的東西!!! 我們需要指定高度,因為沒有它就什么都沒有了!!! 我將留下這個基本的shell,您可以添加它。
示例:
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css" />
</head>
<body>
<a href="http:localhost">
<h1>
<span>Text that is not important</span>
</h1>
</a>
</body>
</html>
span {
display: none;
}
h1 {
height: 100px;
width: 100px;
background-image:url("http://linuxlog.org/wp-content/uploads/2011/01/Ubuntu-Desktop-@-2011-01-11-191526-300x225.png");
}
h1:hover {
height: 300px;
width: 300px;
background-image:url("http://cdn.css-tricks.com/images/ads/wufoo-600x600-red.png");
}
是的,我是一個Linux用戶;)
# # #當用戶在禁用“打印背景顏色和圖像”的情況下打印文檔時,任何基于背景或背景圖像的方法都可能失敗。 不幸的是,這是典型瀏覽器的默認設置。
這里唯一的打印友好和跨瀏覽器兼容的方法是Bronx提出的方法。
# # #就用HTML5:)
<picture>
<source srcset="smaller.jpg" media="(max-width: 768px)">
<source srcset="default.jpg">
<img srcset="default.jpg" alt="My default image">
</picture>