Можно ли изменить атрибут img src с помощью css?
Я пытаюсь изменить img src (не фоновый img src) с помощью css
<img id="btnUp" src="img/btnUp.png" alt="btnUp"/>
#btnUp{
cursor:pointer;
}
#btnUp:hover{
src:img/btnUpHover; /* is this possible ? It would be so elegant way.*/
}
8 ответов
No-CSS можно использовать только для изменения фоновых изображений CSS, а не содержимого HTML.
В общем случае элементы пользовательского интерфейса (не содержимое) должны отображаться с использованием CSS-фона. Классы Swapping могут менять фоновые изображения.
есть еще один способ исправить это: используя CSS box-sizing.
HTML-код :
<img class="banner" src="http://domaine.com/banner.png">
CSS:
.banner {
display: block;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: url(http://domain2.com/newbanner.png) no-repeat;
width: 180px; /* Width of new image */
height: 236px; /* Height of new image */
padding-left: 180px; /* Equal to width of new image */
}
вы можете использовать CSS для a) сделать исходное изображение невидимым, установив его ширину и высоту в 0 или переместив его за пределы экрана и т. д., И b) вставить новое изображение в его ::до или ::после псевдо-элемента.
Это будет хит производительности, хотя, как браузер будет загружать как исходное, так и новое изображение. Но для этого не потребуется Javascript!
вы не можете установить изображение src
атрибут через CSS. вы можете получить, как если бы вы хотели установить use background
или background-image
.
вы можете попробовать что-то вроде этого
<img id="btnUp" src="empty.png" alt="btnUp" />
или
<div id="btnUp" title="btnUp"> <div/>
#btnUp{
cursor:pointer;
width:50px;
height:50px;
float:left;
}
#btnUp{
background-image:url('x.png')
}
#btnUp:hover{
background-image:url('y.png')
}
Вы можете использовать смесь JavaScript и CSS для достижения этого, но вы не можете сделать это только с CSS. <img id="btnUp" src="empty.png" alt="btnUp" onmouseover="change(img)" onmouseout="changeback(img)" />
Вместо img вы бы поставили имя файла без типа файла.
function change(img){
document.getElementById("btnUp").src= img + ".png";
}
function changeback(img){
document.getElementById("btnUp").src= img + ".png";
}
затем вы используете CSS для изменения тега img или id по своему вкусу.
вы можете установить изображение на полностью прозрачное изображение, а затем изменить фоновое изображение следующим образом:
img {
background-image: url("img1.png");
}
//For example, if you hover over it.
img:hover {
background-image: url("img2.png");
}
картинки должны быть одинакового размера. :( Надеюсь, это поможет!