框设置为高度:自动不工作
boxes set to height: auto not working
我需要这些框 div 来根据每个内容的长度扩展它们的高度。根据我在这里阅读的内容,高度:自动似乎是解决方案,但无论出于何种原因,属性 目前并未考虑我在每个框中的文本 div。当浏览器 window 缩小时,文本 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)
}
您需要从 .text
中删除 position: absolute;
使用 position: absolute;
定位元素会将该元素从 DOM 元素流中移除,并且它的祖先在增长时不会增长
我需要这些框 div 来根据每个内容的长度扩展它们的高度。根据我在这里阅读的内容,高度:自动似乎是解决方案,但无论出于何种原因,属性 目前并未考虑我在每个框中的文本 div。当浏览器 window 缩小时,文本 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)
}
您需要从 .text
position: absolute;
使用 position: absolute;
定位元素会将该元素从 DOM 元素流中移除,并且它的祖先在增长时不会增长