在 CSS 中定义图像,而不是在 HTML 中
Define image in CSS, not in HTML
我遇到了问题,我不确定到底出了什么问题。
我有一个 HTML 页面,我的图片目前是这样链接的。
<span class="tribar" onclick="openNav()"><img src="url_here"></span>
我试图从 HTML 源代码中删除所有图像 url,并将它们放在 css 中。这是我试过的。
<span class="tribar" onclick="openNav()"></span> // HTML
.tribar {
display: inline-block;
background-image: url("image_url") no-repeat top left;
width: 220px;
height: 220px;
}
但我的 HTML 跨度出现空白,我似乎无法弄清楚。
这应该是一个简单的错误。
我建议使用 <button>
:
function opennav() {
alert("Hello!");
}
.nav-button {
border: none;
background: none;
font-size: 0; /*hide alt text*/
}
.nav-button:before {
display: inline-block;
content: url(http://placekitten.com/220/220);
width: 220px;
height: 220px;
cursor: pointer;
}
<button class="nav-button" onclick="opennav()">Alt text for screen readers</button>
另见 CodePen。
您不能在 "background-image:" 属性 中使用 "no-repeat" 值。
您应该在 CSS 样式中添加这两行:
background-position: top left;
background-repeat: no-repeat;
如果你想在一行中完成,你应该使用"background:" 属性:
background: url("image_url") no-repeat top left;
参考
https://www.w3schools.com/cssref/pr_background-image.asp
https://www.w3schools.com/cssref/css3_pr_background.asp
只要link的url或按钮的代码保留在页面上,css就可以保留图像源。
我推荐这种方式:
a {
display: block;
width: 220px;
height: 220px;
}
.tribar {
display: block;
background-image: url("https://jobadder.com/wp-content/uploads/whosebug.com-300.jpg");
background-size: contain;
width: 100%;
height: 100%;
}
<a href="#"><span class="tribar" /></a>
我遇到了问题,我不确定到底出了什么问题。
我有一个 HTML 页面,我的图片目前是这样链接的。
<span class="tribar" onclick="openNav()"><img src="url_here"></span>
我试图从 HTML 源代码中删除所有图像 url,并将它们放在 css 中。这是我试过的。
<span class="tribar" onclick="openNav()"></span> // HTML
.tribar {
display: inline-block;
background-image: url("image_url") no-repeat top left;
width: 220px;
height: 220px;
}
但我的 HTML 跨度出现空白,我似乎无法弄清楚。
这应该是一个简单的错误。
我建议使用 <button>
:
function opennav() {
alert("Hello!");
}
.nav-button {
border: none;
background: none;
font-size: 0; /*hide alt text*/
}
.nav-button:before {
display: inline-block;
content: url(http://placekitten.com/220/220);
width: 220px;
height: 220px;
cursor: pointer;
}
<button class="nav-button" onclick="opennav()">Alt text for screen readers</button>
另见 CodePen。
您不能在 "background-image:" 属性 中使用 "no-repeat" 值。 您应该在 CSS 样式中添加这两行:
background-position: top left;
background-repeat: no-repeat;
如果你想在一行中完成,你应该使用"background:" 属性:
background: url("image_url") no-repeat top left;
参考
https://www.w3schools.com/cssref/pr_background-image.asp
https://www.w3schools.com/cssref/css3_pr_background.asp
只要link的url或按钮的代码保留在页面上,css就可以保留图像源。
我推荐这种方式:
a {
display: block;
width: 220px;
height: 220px;
}
.tribar {
display: block;
background-image: url("https://jobadder.com/wp-content/uploads/whosebug.com-300.jpg");
background-size: contain;
width: 100%;
height: 100%;
}
<a href="#"><span class="tribar" /></a>