function scale() {
$('.scaled').each(function() {
var scaled = $(this),
parent = scaled.parent(),
ratio = (parent.width()/scaled.width()),
padding = scaled.height() * ratio;
scaled.css({
'transform': 'scale(' + ratio + ')',
'transform-origin': 'top left'
});
parent.css('padding-top', padding); // keeps the parent height in ratio to child resize
})
}
scale();
$(window).resize(function() {
scale();
});
.test {
border: 1px solid red;
width: 30%;
position: relative;
}
.scaled {
/* needs to be positioned absolutey otherwise the parent takes the child original height */
position: absolute;
top: 0;
left: 0;
}
.scaled,
.not-scaled {
width: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">
<div class="scaled">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer feugiat quis magna in tempus. Vivamus magna metus, consequat at mollis sit amet, vulputate et eros. Phasellus ut mauris faucibus, ultrices mauris at, mollis eros. In hac habitasse platea
dictumst. Cras placerat pretium dui. Nullam quis lacinia nunc. Quisque est lectus, maximus at vehicula et, accumsan non nisi. Proin ac purus eget neque fermentum fringilla. Sed lectus mauris, pulvinar et venenatis ut, gravida quis nibh. Interdum et
malesuada fames ac ante ipsum primis in faucibus. In dapibus purus facilisis consequat aliquam. Donec mattis orci fermentum laoreet scelerisque. Aliquam pretium urna tortor, quis viverra lacus posuere eu. Maecenas posuere mauris in sapien gravida,
sed placerat purus efficitur.
</div>
</div>
<div class="not-scaled">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer feugiat quis magna in tempus. Vivamus magna metus, consequat at mollis sit amet, vulputate et eros. Phasellus ut mauris faucibus, ultrices mauris at, mollis eros. In hac habitasse platea
dictumst. Cras placerat pretium dui. Nullam quis lacinia nunc. Quisque est lectus, maximus at vehicula et, accumsan non nisi. Proin ac purus eget neque fermentum fringilla. Sed lectus mauris, pulvinar et venenatis ut, gravida quis nibh. Interdum et
malesuada fames ac ante ipsum primis in faucibus. In dapibus purus facilisis consequat aliquam. Donec mattis orci fermentum laoreet scelerisque. Aliquam pretium urna tortor, quis viverra lacus posuere eu. Maecenas posuere mauris in sapien gravida, sed
placerat purus efficitur.
</div>
アスペクト比を維持したまま? – Roberrrt
ありがとう - 更新された質問 – cronoklee
その場合: http://stackoverflow.com/questions/1495407/maintain-the-aspect-ratio-of-a-div-with-css – Roberrrt