css实现宽度与高度成比例

2018-11-09  本文已影响0人  梅格Drum

基础知识


overflow

当你使用绝对的值设置了一个框的大小(如,固定像素的宽/高),允许的大小可能不适合放置内容,这种情况下内容会从盒子溢流。我们使用overflow属性来控制这种情况的发生。它有一些可能的值,但是最常用的是:

盒模型的框


小总结

框模型的widthheight(不是content设置的width,height),框模型content不足以放下内部元素时可以延伸到框的外部,即使content设置的height为0,然而默认溢出是当内容过多时溢流的内容被显示在框外边。
示例1:先看溢出框的情况

<style type="text/css">
html {
    font-size: 50px;
}
.wrapper {
    width: 100%;
    height: 0;
    padding-bottom: 35.81%;
    /*overflow: hidden;*/
}
img {
    width: 100%;
}
</style>
<div class="wrapper">
    <img src="http://img1.qunarzz.com/sight/source/1606/59/996c626596a5f6.jpg_r_640x214_54c8b946.jpg" />
</div>

结果1:


效果1.PNG
盒模型1.PNG

发现img溢出到父容器之外
示例2:溢出框被删减的情况

<style type="text/css">
.wrapper {
    width: 100%;
    height: 0;
    padding-bottom: 35.81%;
    overflow: hidden;
}
效果2.PNG

发现设置完overflow之后img超出父容器的部分被删减了。

CSS实现宽度与高度成比例

<!DOCTYPE html>
<html>
<head>
    <title>css实现图片等比例缩放</title>
<style type="text/css">
    .wrapper {
        width: 100%;
        height: 0;
        padding-bottom: 35.81%;
        overflow: hidden;
    }
    img {
        width: 100%;
    }
</style>
</head>
<body>
    <div class="wrapper">
        <img src="http://img1.qunarzz.com/sight/source/1606/59/996c626596a5f6.jpg_r_640x214_54c8b946.jpg" />
    </div>
</body>
</html>

为什么height设置为0?
因为容器如果去掉这一行的话,img下面会出现一个img大小的空白区域,这个区域是设置padding-bottom导致的,所以设置height=0是为了让父元素没有高度。

上一篇 下一篇

猜你喜欢

热点阅读