首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Div没有高度

Div没有高度
EN

Stack Overflow用户
提问于 2017-01-19 07:33:00
回答 2查看 1.2K关注 0票数 0

我正在做一个简单的画廊。这只是一些减少照片的迷你div,有8个。当你点击它们中的一个时,一个带有静态宽度(484px)和静态高度的大div出现,但我希望高度是自动的,但当我设置它时,div不会出现,只有一行边框和这个。

代码语言:javascript
代码运行次数:0
运行
复制
<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,小的div与可点击的图片是baza_zdjecia

CSS:

代码语言:javascript
代码运行次数:0
运行
复制
.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:

代码语言:javascript
代码运行次数:0
运行
复制
      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);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-19 07:45:07

div高度为0的原因是块元素默认高度为0,如果没有指定的高度,只能与其中的内容一样高。由于您的div没有内容,因此高度为0。

要在该div中使用img标记,这将为其提供与img标记匹配的内容和高度,请向该div添加一个img标记,为该标记指定一个ID,以便您可以使用JS轻松地将其作为目标,并在JS中设置src

代码语言:javascript
代码运行次数:0
运行
复制
 function changePhoto(id) {
     var y = document.getElementById("baza_big_photo_img");
     var z = "/assets/galeria_images/" + id + ".jpg";
     y.src = z;
 }
代码语言:javascript
代码运行次数:0
运行
复制
.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;
}
代码语言:javascript
代码运行次数:0
运行
复制
<div class="box_1">
    <div class="box_1_header">Header</div>
    <div class="box_1_content">
        <div class="baza_big_photo"><img src="" id="baza_big_photo_img"></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>

票数 0
EN

Stack Overflow用户

发布于 2017-01-19 07:55:42

虽然其他人说要使用img标签,但我知道一种方法,可以在使用背景图像的同时做到这一点:

代码语言:javascript
代码运行次数:0
运行
复制
<div>

    <p class = "hiddentext">Some Text Some Text Some Text Some Text Some Text</p>
    <p class = "hiddentext">Some Text Some Text Some Text Some Text Some Text</p>
    <p class = "hiddentext">Some Text Some Text Some Text Some Text Some Text</p>
    <p class = "hiddentext">Some Text Some Text Some Text Some Text Some Text</p>

</div>

然后将隐藏文本设置为不可见,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
.hiddentext {
   visibility: hidden;
}

这样,div将具有一定的高度,同时客观上是空的。也避免使用img标记。希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41731319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档