移动端自适应正方形

今天ui姐姐让我给她做这样个图


image.png

这是三个正方形并列一排,我们都知道,宽度可以自适应,但是高度不行。
首先我们说下1个正方形的解决办法

在 CSS 盒模型中,一个比较容易被忽略的就是 margin, padding 的百分比数值计算。按照规定,margin, padding 的百分比数值是相对 父元素 的宽度计算的。由此可以发现只需将元素垂直方向的一个 padding 值设定为与 width 相同的百分比就可以制作出自适应正方形了:

.placeholder {
 width: 100%;
 padding-bottom: 100%;
}

padding的百分比是按照宽度来计算的。
但是padding是不包含盒子内容的,所以我们把盒子高度设置为0

.placeholder {
  height: 0;
}

这时就轻松的完成了。

这时我们来看3个并列的正方形
但是这时我们发现宽高差了几像素


image.png

是因为我使用了flex分成三份,这时我的padding是按照父级的宽度来计算33.3%;但是我们忘了减间距的距离


image.png

这样就成功了

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,351评论 1 92
  • 最近觉得,我学CSS学得太不细致了,margin、padding这些天天都在用的属性,我却没有真正了解它们、掌握它...
    盛夏晚清风阅读 1,710评论 6 9
  • 方案1:CSS3 vw单位 CSS3 中新增了一组相对于可视区域百分比的长度单位 vw, vh, vmin, vm...
    codeice阅读 4,380评论 0 1
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 1,731评论 0 11
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,104评论 0 20