gpt4 book ai didi

javascript - 如果使用 css 加载图像,如何防止显示图像替代文本

转载 作者:可可西里 更新时间:2023-11-01 15:01:56 26 4
gpt4 key购买 nike

我正在通过 css background 属性加载图像,而不是使用 src 属性。但在那种情况下,alt 文本也会出现。如何停止显示 alt 文本并仅在未加载图像时显示它

.test {
display: block;
width: 200px;
height: 82px;
background-size: 200px 82px;
background-image: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQJr81CRJeZGFiBsA9_AOyyxegiIPctdcbNfHThnpnclmFH-mJwoQ");
}
<img class="test" alt="My background image">

最佳答案

如果图像没有 src 属性(或者它是空的),您可以做一些小技巧,将“文本”隐藏在图像中。

(你可以通过多种方式隐藏文本我选择一种)

.test {
display: block;
width: 200px;
height: 82px;
background-size: 200px 82px;
background-image: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQJr81CRJeZGFiBsA9_AOyyxegiIPctdcbNfHThnpnclmFH-mJwoQ");
}

img:not([src]) {
font-size: 0;
position: relative;
}

img:not([src]):after {
font-size: 18px;
border: 1px solid black;
box-sizing: border-box;
content: attr(alt);
z-index: -1;
height: 100%;
width: 100%;
position: absolute;
top: 0;
left: 0
}
<img class="test" alt="My background image">

@Ihazkode 收到的 css 完成(:after 部分) .

为了在图像加载后显示alt,您可以先加载(使用javascript)图像,然后将其放入图像并显示alt。 (基于 this 答案)

$('[data-image]').each(function() {
var $this = $(this);
var alt = $this.attr('alt');
var src = $(this).attr('data-image');
$this.removeAttr('alt');

$('<img/>').attr('src', src).on('load', function() {
$(this).remove();
// simulate the delay for heavy image
setTimeout(function(){
$this.css('background', 'url(' + src + ')').attr('alt', alt);
}, 1000);
}).on('error', function() {
$this.attr('alt', alt);
});
});
.test {
display: block;
width: 200px;
height: 82px;
background-size: 200px 82px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img class="test" alt="My background image" data-image="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQJr81CRJeZGFiBsA9_AOyyxegiIPctdcbNfHThnpnclmFH-mJwoQ">

关于javascript - 如果使用 css 加载图像,如何防止显示图像替代文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com