【发布时间】:2017-01-18 23:33:00
【问题描述】:
我正在做一个简单的画廊。它只是一些减少照片的迷你 div,其中有 8 个。当您单击其中一个时,会出现一个带有静态宽度(484px)和静态高度的大 div,但我希望高度为 AUTO,但是,当我设置它时,不会出现 div,只有一行边框,仅此而已。
<div class="box_1">
<div class="box_1_header">Header</div>
<div class="box_1_content">
<div class="baza_big_photo"></div>
<div class="br2"></div>
<div class="baza_zdjecia" id="tn_galeria01" onclick="changePhoto(this.id)"></div>
<div class="baza_zdjecia" id="tn_galeria02" onclick="changePhoto(this.id)"></div>
<div class="baza_zdjecia" id="tn_galeria03" onclick="changePhoto(this.id)"></div>
<div class="baza_zdjecia" id="tn_galeria04" onclick="changePhoto(this.id)"></div>
<div class="baza_zdjecia" id="tn_galeria05" onclick="changePhoto(this.id)"></div>
<div class="baza_zdjecia" id="tn_galeria06" onclick="changePhoto(this.id)"></div>
<div class="baza_zdjecia" id="tn_galeria07" onclick="changePhoto(this.id)"></div>
<div class="baza_zdjecia" id="tn_galeria08" onclick="changePhoto(this.id)"></div>
</div>
</div>
一些传说:我的大 div 应该出现宽度为 484px 和高度自动的照片,但不会出现 - 是 baza_big_photo,带有可点击 imgs 的小 div 是 baza_zdjecia。
CSS:
.baza_big_photo {
width: 484px;
height: auto;
box-sizing: border-box;
border: 1px solid black;
display: block;
background-repeat: no-repeat;
background-position: center center;
background-size: 100% 100%;
margin: 3px;
overflow: hidden;
}
.baza_zdjecia {
width: 118px;
height: 86px;
margin: 2px;
box-sizing: border-box;
border: 1px solid black;
overflow: hidden;
float: left;
}
JS:
function changePhoto(id) {
var y = document.getElementById("baza_big_photo");
y.style.display = "block";
var z = "url('./assets/galeria_images/" + id + ".jpg')";
y.style.backgroundImage = z;
console.log(z);
}
【问题讨论】:
-
显示您的 JS 代码,可能您正在更改背景图像而不是替换
img标签。这就是为什么 div 没有高度(因为浏览器不知道你的背景图片有多高)。 -
.baza_big_photo是 0px 高度,因为块元素的默认高度已经是auto,这意味着高度将基于元素内部的内容。所以这个元素的高度是0,因为它没有内容。 -
函数 changePhoto(id) { var y = document.getElementById("baza_big_photo"); y.style.display = "块"; var z = "url('./assets/galeria_images/" + id + ".jpg')"; y.style.backgroundImage = z;控制台.log(z); }
-
这就是我的想法,背景图片,有一种方法可以仅在 CSS 中解决此问题,但您的所有图片必须具有相同的纵横比。
-
那么,有什么解决办法吗?