美文网首页
使用padding-top实现响应式背景图片

使用padding-top实现响应式背景图片

作者: praycis | 来源:发表于2018-01-22 16:03 被阅读0次
    hand-holding-up-a-pen.png

    在工作中遇到一个问题:在移动端布局的时候,想设置一个背景图来充当页面的背景。然后页面容器由于不知道高度,所以只设置了宽度,在设置了css:background-size之后,发现页面容器没有被撑开。。。

    解决方案:

    HTML:

    <h3>使用padding-top实现响应性图片(图片的宽度是1024px,高度是316px)</h3>
     <div class="column">
           <div class="figure"></div>
      </div>
    

    CSS:

    .column{
            max-width: 1024px;
     }
     .figure {
             padding-top:30.85%; /* 316 / 1024 */
             background: url("http://images2015.cnblogs.com/blog/561794/201603/561794-20160310002800647-50077395.jpg") no-repeat;
              background-size:cover;
              background-position:center;
        }
    

    实现的基本原理:

    将使用到保持元素的宽高比的技巧,为元素添加垂直方向的padding-top的值,使用百分比的形式,这个值是相对于元素的宽而定的,比如我上面的一张图片的宽度是1024px,高度为316px;那么现在的

    padding-top = (高度 / 宽度 )* 100% = (316 / 1024)* 100% = 30.85%;

    但是仅仅对图片高度和宽度缩放的放还不够,我门还必须添加 background-size:cover, 使这个属性让背景铺满元素的,但是IE8及以下不支持该属性,因此为了兼容IE下面的浏览器,我门还需要再加一个属性 background-position: center ; 同时我门也要保证 图片的宽度最大等于父容器的宽度;

    相关文章

      网友评论

          本文标题:使用padding-top实现响应式背景图片

          本文链接:https://www.haomeiwen.com/subject/tlolaxtx.html