使用 padding-bottom 设置高度基于宽度的自适应

我们在做移动端列表,通常会做到图文列表,列表是自适应的。当列表中有图片,图片的宽度是随着列表宽的变化而变化,我们为了在图片宽度变化的时候做到图片的不变形,所有采用以下办法。

本文章只讲语法

html 结构

<div class='detail'>
<div class="person-pic-wrap">
<img :src='studentDetailDto.headPhoto'>
</div>
 <div class="person-list>
  <ul>文字</ul>
</div>
</div>
给大家说一下核心思路,大家就明白了
detail 父级弹性盒子,宽度100%
person-pic-wrap 图片容器 30%宽度
img宽度高度100%
padding-bottom 值和宽度一致, 就生成一个宽高1比1的容器
css代码
方法1
.detail{
width: 100%;
height:120px;
position: absolute;
display: flex;
justify-content: space-around;
bottom: 0;
background: darkgoldenrod;
}
.person-pic-wrap{
width: 30%;
padding-bottom: 30%;
}
.person-pic-wrap>img{
width: 100%;
}

方法2 使用伪类
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    img {
      width: 100%;
      height: 100%;
      max-height: 100%;
      max-width: 100%;
    }

    .box {
      width: 100%;
      display: flex;
      background: blue;
    }

    .content {
      width: 30%;
      position: relative;
    }

    .content:after {
      content: '';
      display: block;
      padding-bottom: 30%;
    }

    .text {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      color: white;
      padding: 20px;
      box-sizing: border-box;
      border: 1px solid red;
      display: flex;
      justify-content: center;
      align-items: center;
    }
  </style>
</head>
<body>
<div class="box">
  <div class="content">
    <img src="https://goss.veer.com/creative/vcg/veer/612/veer-146053959.jpg">
    <p class="text">随着消费水平的提升,居民消费结构显著升级,健康消费也成为新的热点,作为人们日常生活的重要构成,健康人居备受关注,同时,其相关产业也呈现出显著的健康化趋势。</p>
  </div>
</div>
</body>
</html>
技巧十分简单。




posted @ 2018-03-06 13:54  含笑半步·颠  阅读(5753)  评论(0编辑  收藏  举报