设置为高度的框:自动不起作用

Posted

技术标签:

【中文标题】设置为高度的框:自动不起作用【英文标题】:boxes set to height: auto not working 【发布时间】:2018-02-13 04:51:03 【问题描述】:

我需要这些盒子 div 根据每个内容的长度扩展它们的高度。根据我在这里阅读的内容,Height: auto 似乎是解决方案,但无论出于何种原因,该属性当前并未考虑我在每个框中的文本 div。当浏览器窗口缩小时,文本 div 会很好地延长,但它对祖先容器没有影响。

html

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>  
</head>
<body>
    <div id = "container">
        <div id="box1" class = "box"><div id="text1" class="text"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies ac est eu egestas. Etiam egestas elit blandit, mollis magna sit amet, consectetur augue. Aliquam quis elit ac ipsum maximus vestibulum vitae ac purus. Pellentesque vestibulum ante diam, vitae convallis urna tristique eu. Suspendisse potenti. Pellentesque pellentesque enim turpis. Integer efficitur lacinia felis eu sodales. Curabitur vestibulum faucibus sagittis. Aenean ut orci sem. Sed vel nisi pulvinar odio ullamcorper fermentum. Duis diam neque, volutpat id efficitur nec, commodo sit amet enim. Nam porta est eu turpis aliquet cursus. Vivamus tempor nisi sed odio rhoncus viverra. Morbi fermentum vitae risus ut porta. Cras scelerisque diam nisi, sed interdum lorem ullamcorper nec. Pellentesque auctor justo non tortor cursus, faucibus consequat ipsum mollis. Cras dui magna, volutpat sed nibh a, fringilla condimentum felis. Quisque facilisis, enim et feugiat eleifend, mauris nisi pulvinar massa, et sodales risus sem et mauris. Sed lacus leo, faucibus eget imperdiet in, dapibus vitae enim.</div>
                <div id="video1" class="video"> <video loop muted><source src=assets/IMG_1353.MOV></video></div>
        </div>
        <div id = "box2" class="box">
                <div id="text2" class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies ac est eu egestas. Etiam egestas elit blandit, mollis magna sit amet, consectetur augue. Aliquam quis elit ac ipsum maximus vestibulum vitae ac purus. Pellentesque vestibulum ante diam, vitae convallis urna tristique eu. Suspendisse potenti. Pellentesque pellentesque enim turpis. Integer efficitur lacinia felis eu sodales. Curabitur vestibulum faucibus sagittis. Aenean ut orci sem. Sed vel nisi pulvinar odio ullamcorper fermentum. Duis diam neque, volutpat id efficitur nec, commodo sit amet enim. Nam porta est eu turpis aliquet cursus. Vivamus tempor nisi sed odio rhoncus viverra. Morbi fermentum vitae risus ut porta. Cras scelerisque diam nisi, sed interdum lorem ullamcorper nec. Pellentesque auctor justo non tortor cursus, faucibus consequat ipsum mollis. Cras dui magna, volutpat sed nibh a, fringilla condimentum felis. Quisque facilisis, enim et feugiat eleifend, mauris nisi pulvinar massa, et sodales risus sem et mauris. Sed lacus leo, faucibus eget imperdiet in, dapibus vitae enim.</div>
                <div id="video2" class="video" > <video loop muted><source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"/></video></div>
        </div>
        <div id = "box3" class="box">
            <div id="text3" class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies ac est eu egestas. Etiam egestas elit blandit, mollis magna sit amet, consectetur augue. Aliquam quis elit ac ipsum maximus vestibulum vitae ac purus. Pellentesque vestibulum ante diam, vitae convallis urna tristique eu. Suspendisse potenti. Pellentesque pellentesque enim turpis. Integer efficitur lacinia felis eu sodales. Curabitur vestibulum faucibus sagittis. Aenean ut orci sem. Sed vel nisi pulvinar odio ullamcorper fermentum. Duis diam neque, volutpat id efficitur nec, commodo sit amet enim. Nam porta est eu turpis aliquet cursus. Vivamus tempor nisi sed odio rhoncus viverra. Morbi fermentum vitae risus ut porta. Cras scelerisque diam nisi, sed interdum lorem ullamcorper nec. Pellentesque auctor justo non tortor cursus, faucibus consequat ipsum mollis. Cras dui magna, volutpat sed nibh a, fringilla condimentum felis. Quisque facilisis, enim et feugiat eleifend, mauris nisi pulvinar massa, et sodales risus sem et mauris. Sed lacus leo, faucibus eget imperdiet in, dapibus vitae enim.</div>
        <div id="video2" class="video" > <video loop muted><source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"/></video></div>
        </div>
    </div>
</body>
<script>
$(document).ready(function()
    $(".box").children(".video").click(function () 
        $(this).siblings(".text").toggleClass("toggle");
        $(this).toggleClass("toggle");
    );
    $(".box").children(".text").click(function() 
        $(this).siblings(".video").toggleClass("toggle");
        $(this).toggleClass("toggle");
    );
);
</script>
<script>
$(document).ready(function () 
    $(".video").hover(function () 
        $(this).children("video")[0].play();
    , function () 
        var el = $(this).children("video")[0];
        el.pause();
    );
);
</script>
</html>

CSS

#container 
    position: relative;
    margin: 10%;


.box 
    position: relative;
    display: inline-block


#box1 
    border: solid 1px;
    position: relative;
    width: 100%;
    height: auto;
    padding: 5%;


#box2 
    border: solid 1px;
    position: relative;
    width: 100%;
    height: auto; 
    padding: 5%;


#box3 
    border: solid 1px;
    position: relative;
    width: 100%;
    height: auto;
    padding: 5%;

.text 
    display: block;
    position: absolute;
    font: .9em courier;
    line-height: 160%;
    padding: 20px;
    border: 1px dashed black;
    color: rgba(0,0,0, .2)


.video 
    display: block;
    padding: 3px;
    border: 1px solid blue;


video 
    display: block;
    height: auto;
    width: 100%;


.toggle.video 
    border: 1px dashed;


.toggle > video 
    opacity: .05;


.toggle.text 
    border: 1px solid blue;
    color: rgba(0,0,0, 1)

【问题讨论】:

【参考方案1】:

您需要从.text 中删除position: absolute;

使用position: absolute; 定位一个元素会将该元素从 DOM 元素流中取出,并且它的祖先不会在它增长时增长

【讨论】:

以上是关于设置为高度的框:自动不起作用的主要内容,如果未能解决你的问题,请参考以下文章

图像高度约束不起作用

UITableViewCell 自动调整高度不起作用

文本为空字符串时,自动布局UILabel的动态高度计算不起作用?

在css中height:100%;不起作用!

反应 ag-grid 行自动高度不起作用

Flex 高度在 Chrome 中不起作用 [重复]