[英]How to get div height based on image height?
I have some flip boxes that need a specific height.我有一些需要特定高度的翻盖盒。 Otherwise, it does not work.
否则,它不起作用。
I gave them height: 220px;
我给了他们
height: 220px;
for testing.用于检测。 But this value shouldn't be
220px
, it always should be the actual proportional image height.但是这个值不应该是
220px
,它应该是实际的比例图像高度。
How is it possible to code that?怎么可能编码呢? Maybe with a jQuery function?
也许用 jQuery function? Like: Get the height of the image, and add it as CSS for the container?
喜欢:获取图像的高度,并将其添加为容器的 CSS?
This is my code:这是我的代码:
body { font-family: Arial, Helvetica, sans-serif; } img { width: 100%; display: block; } #container { display: flex; flex-wrap: wrap; }.flip_box { background-color: transparent; width: 50%; height: 220px; perspective: 1000px; }.flip_box_inner { position: relative; width: 100%; height: 100%; text-align: center; transition: transform 0.8s; transform-style: preserve-3d; }.flip_box:hover.flip_box_inner { transform: rotateY(180deg); }.flip_box_front, .flip_box_back { position: absolute; width: 100%; height: 100%; -webkit-backface-visibility: hidden; backface-visibility: hidden; }.flip_box_front { background-color: #bbb; color: black; }.flip_box_back { background-color: dodgerblue; color: white; transform: rotateY(180deg); }
<div id="container"> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> </div>
You can loop through the containers, search for the image and retrieve the height, then assign it back to the container.您可以遍历容器,搜索图像并检索高度,然后将其分配回容器。
jQuery( window ).on( "load", function($) {
$( ".flip_box" ).each(function( index ) {
let imgHeight = $(this).find('img').height();
$(this).css('height', imgHeight + 'px')
});
});
But note that if images have different heights, it might cause a problem because you are only using the height of a single image from the container但请注意,如果图像具有不同的高度,则可能会导致问题,因为您仅使用容器中单个图像的高度
After a slight delay of waiting for the photos to load, you can iterate over the flip boxes, locate their images, and set their heights to match the image height.在等待照片加载稍有延迟后,您可以遍历翻转框,定位它们的图像,并设置它们的高度以匹配图像高度。
const resizeFlipBoxes = () => { document.querySelectorAll('.flip_box').forEach(flipBox => { flipBox.style.height = `${flipBox.querySelector('img').offsetHeight}px`; }); }; setTimeout(resizeFlipBoxes, 1); window.addEventListener('resize', resizeFlipBoxes);
body { font-family: Arial, Helvetica, sans-serif; } img { width: 100%; display: block; } #container { display: flex; flex-wrap: wrap; }.flip_box { background-color: transparent; width: 50%; perspective: 1000px; }.flip_box_inner { position: relative; width: 100%; height: 100%; text-align: center; transition: transform 0.8s; transform-style: preserve-3d; }.flip_box:hover.flip_box_inner { transform: rotateY(180deg); }.flip_box_front, .flip_box_back { position: absolute; width: 100%; height: 100%; -webkit-backface-visibility: hidden; backface-visibility: hidden; }.flip_box_front { background-color: #bbb; color: black; }.flip_box_back { background-color: dodgerblue; color: white; transform: rotateY(180deg); }
<div id="container"> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> </div>
This can be possible without JavaScript.这可以在没有 JavaScript 的情况下实现。 It's enough to not specify height for
<div>
and it will stretch to the height of the image.不为
<div>
指定高度就足够了,它将拉伸到图像的高度。
body { font-family: Arial, Helvetica, sans-serif; } img { width: 100%; display: block; } #container { display: flex; flex-wrap: wrap; }.flip_box { background-color: transparent; width: 50%; perspective: 1000px; }.flip_box_inner { position: relative; width: 100%; text-align: center; transition: transform 0.8s; transform-style: preserve-3d; }.flip_box:hover.flip_box_inner { transform: rotateY(180deg); }.flip_box_front, .flip_box_back { width: 100%; -webkit-backface-visibility: hidden; backface-visibility: hidden; }.flip_box_front { position: relative; background-color: #bbb; color: black; }.flip_box_back { position: absolute; background-color: dodgerblue; color: white; transform: translate(0, -100%) rotateY(180deg); }
<div id="container"> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> <div class="flip_box"> <div class="flip_box_inner"> <div class="flip_box_front"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> <div class="flip_box_back"> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Nilgai_%28Boselaphus_tragocamelus%29_male.jpg/1000px-Nilgai_%28Boselaphus_tragocamelus%29_male.jpg"> </div> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.