这里介绍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. python数据分析scipy和matplotlib(三)

    Scipy 在numpy基础上增加了众多的数学.科学及工程常用的库函数: 线性代数.常微分方程求解.信号处理.图像处理.稀疏矩阵等: Matplotlib 用于创建出版质量图表的绘图工具库: 目的是为 ...

  2. 【DS】排序算法之插入排序(Insertion Sort)

    一.算法思想 一般来说,插入排序都采用in-place在数组上实现.具体算法描述如下:1)从第一个元素开始,该元素可以认为已经被排序2)取出下一个元素,在已经排序的元素序列中从后向前扫描3)如果该元素 ...

  3. Struts2_day03

    一.上节回顾 1 在action获取表单提交数据 (1)使用ActionContext类获取 (2)使用ServletActionContext类获取 (3)接口注入 2 结果配置 (1)全局结果页面 ...

  4. CSS-3 RGBA的使用

    由于IE-8及以下都不支持 RGBA(),所以往往大家都不用这个属性,而是用图层叠加的方式去实现我们想要的效果.因为 opacity 这个属性是会影响到子孙元素的. 例如: <div class ...

  5. Linux 并发链接数

    并发数查看   查看 TCP 协议连接数 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' SYN_RECV # ...

  6. ListView position

    在使用listview的时候,我们经常会在listview的监听事件中,例如OnItemClickListener(onItemClick)中,或listview的adapter中(getView.g ...

  7. Socket心跳包机制【转】

    转自:https://blog.csdn.net/xuyuefei1988/article/details/8279812 心跳包的发送,通常有两种技术 方法1:应用层自己实现的心跳包 由应用程序自己 ...

  8. MVC Form验证 登陆和退出Cookies的设定和消除

    红色部分为重点 1.webconfig配置  <system.web>节点下添加 <authentication mode="Forms"> <for ...

  9. php删除非空目录代码实现

    <?php header("Content-type: text/html; charset=utf-8"); $dir='mydir'; function deldir($ ...

  10. .gitkeep

    看一个开源项目中有个.gitkeep文件,不知道是干嘛用的查询知道 git是不允许提交一个空的目录到版本库上的,可以在空的文件夹里面建立一个.gitkeep文件,然后提交去即可. 其实在git中 .g ...