这里介绍7种方法,仅供参考。

1、vm单位

<div class="square-shape">这是一个可以自适应的正方形,此法适用于移动端web页面。</div>
.square-shape {
  width: 50%;
  height: 50vw;
  border: 1px solid #f00;
}

2、padding-top实现

<div class="square-shape">这是一个可以自适应的正方形,设置高度避免被内容撑开多余的高度。奇怪的是,内容在框框外面。</div>
.square-shape {
  width: 50%;
  height: 0;
  padding-top: 50%;
  border: 1px solid #f00;
}

3、padding-bottom实现

<div class="square-shape">这是一个可以自适应的正方形,此法很好用,有内容也是正方形。</div>
.square-shape {
  width: 30%;
  height: 0;
  padding-bottom: 30%;
  border: 1px solid #f00;
}

4、伪元素的margin-top

<div class="square-shape">这里如果有内容,就不是正方形喽,限制height也没有用。</div>
.square-shape {
  width: 100%;
  overflow: hidden;
  border: 1px solid #f00;
}
.square-shape:after {
  content: '';
  display: block;
  margin-top: 100%;
}

5、伪元素的padding-top

<div class="square-shape">这里如果有内容,就不是正方形喽。</div>
.square-shape {
  width: 30%;
  max-width: 200px;
  border: 1px solid #f00;
}
.square-shape:after {
  content: '';
  display: block;
  padding-top: 100%;
}

6、子元素margin-top

<div class="square-shape">
  <div class="content">这是一个可以自适应的正方形</div>
</div>
.square-shape{
  overflow: hidden;
  width: 50%;
  background-color: black;
}
.content{
  margin-top: 100%;
}

7、伪元素的padding-bottom,内嵌absolute元素

<div class="square-shape">
    <div class="content">这是一个可以自适应的正方形</div>
</div>
.square-shape {
  width: 50%;
  border: 1px solid #f00;
}
.square-shape:after {
  content: '';
  display: block;
  padding-bottom: 100%;
}
.content {
  position: absolute;
  width: 100%;
  height: 100%;
}

css实现自适应正方形的更多相关文章

  1. css实现自适应正方形的多种方法实现

    方案一:CSS3 vw 单位 CSS3 中新增了一组相对于可视区域百分比的长度单位vw.vh.vmin.vmax.其中vw是相对于视口宽度百分比的单位,1vw = 1% viewport width, ...

  2. css实现自适应正方形的方法

    页面布局中,我们经常需要用百分比来实现宽度自适应,但是如果这时候高度要跟宽度呈固定比例变化,该怎么办呢? 很简单,我们可以利用元素的padding或margin的百分比值是参照父元素的宽度这一特性来实 ...

  3. CSS 实现自适应正方形

    在处理移动端页面时,我们有时会需要将banner图做成与屏幕等宽的正方形以获得最佳的体验效果,比如,商品详情页, 方法1.CSS3 vw单位 CSS3 中新增了一组相对于可视区域百分比的长度单位 vw ...

  4. CSS实现三角形、梯形、平行四边形、圆形、椭圆形、对话框、自适应正方形

    本文篇幅较长,希望能坚持看完,转载请注明出处,如果觉得好文请给个赞吧 CSS实现梯形 CSS实现三角形和梯形主要是依靠border是梯形的特性来做的,有点像相框的那种感觉. 首先我们先给一个正方形设置 ...

  5. div等比例缩放-------纯CSS实现自适应浏览器宽度的正方形

    摘自:https://blog.csdn.net/u010513603/article/details/78200207 1.方案一:CSS3 vw 单位 CSS3 中新增了一组相对于可视区域百分比的 ...

  6. 常见css垂直自适应布局(css解决方法)

    css3的盒模型, css3中添加弹性盒模型,最新弹性盒模型是flex,之前为box <!DOCTYPE html> <html > <head> <titl ...

  7. 常见css水平自适应布局

    左右布局,左边固定,右边自适应布局 BFC方法解决 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  8. css实现自适应屏幕高度;

    css实现自适应屏幕高度: <!DOCTYPE html><html lang="en"><head> <meta charset=&qu ...

  9. 移动端 css实现自适应正圆 ( 宽高随着手机屏幕宽度自适应 )

    序言:应朋友要求随手写了一下移动端 css实现自适应正圆 ( 宽高随着手机屏幕宽度自适应 ) ,以备后用 LESS代码: .adaptive-circle { margin: 50px auto 0; ...

随机推荐

  1. OpenStack 计算服务 Nova介绍和控制节点部署(七)

    介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点nova-c ...

  2. Java基础-比较运算符Compare Operators

    Java基础-比较运算符Compare Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关系运算符 关系运算符包括: 1>.大于(>) 2> ...

  3. POJ-1459 Power Network(最大流)

    https://vjudge.net/problem/POJ-1459 题解转载自:優YoU http://user.qzone.qq.com/289065406/blog/1299339754 解题 ...

  4. 20155338 2016-2017-2 《Java程序设计》第7周学习总结

    20155338 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 本周学习了第十二章和第十三章的内容,我重点学习了第十三章时间与日期的相关内容. 时间的度量: ...

  5. 第10月第1天 storyboard uitableviewcell

    1. 如图,我们在Cell的属性界面对其进行了注册,identifier 为"TableViewCell" 不需要在 ViewDidLoad 对其进行注册了,如果进行注册的话,则对 ...

  6. [转]Centos 安装Sublime text 3

    本文简单介绍在CentOS上安装Sublime text 3, 转自:Centos 安装Sublime text 3 Step 1 :建立软件安装目录 # mkdir /opt # cd /opt S ...

  7. 在xampp与phpstorm环境下安装xdebug[转]

    XDebug是什么 很多PHP程序员调试使用echo.print_r().var_dump().printf()等,虽然对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中 ...

  8. ESXi 6.5 总是会话超时

    ESXi 6.5 客户端Web界面会话超时 在VMware ESXi 6.5中,主机客户端Web界面会话每15分钟自动超时一次,然后您必须再次重新登录ESXi主机客户端Web界面. 要避免这种繁琐的情 ...

  9. google closure 笔记-SOY template

    一 使用js模板 closure template 目前支持Java和js.但是模板语法的设计不依赖于任何现成的语言,所以理论上可以支持任何语言,只是暂时只有java编译器. 使用js模板:编写模板文 ...

  10. Promise初探

    在JavaScript的世界中,所有代码都是单线程执行的. 由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行.异步执行可以用回调函数实现: function ru ...