如何使用CSS绘制一个响应式的矩形

简介: 背景: 最近因为需要用到绘制类似九宫格的需求,所以研究了一下响应式矩形的实现方案。 有如下几种方案: 使用js来设置元素的高度 使用vw单位  div {width: 50vw; height: 50vw;}  使用伪元素设置padding的方式来实现正方形(也就是本次使用的方式) 实现一个正方形 1 .

背景:

最近因为需要用到绘制类似九宫格的需求,所以研究了一下响应式矩形的实现方案。

有如下几种方案:

  1. 使用js来设置元素的高度
  2. 使用vw单位  div {width: 50vw; height: 50vw;} 
  3. 使用伪元素设置padding的方式来实现正方形(也就是本次使用的方式)

实现一个正方形

1 .square
2   position: relative
3   width: 100%
4 
5   &::before
6     content: ''
7     display: block
8     padding-top: 100%
1 <div class="square"></div>

 

我们的做法就是使用伪元素的 padding-top: 100% 来撑开元素本身。

因为 pading-top 与 padding-bottom 的百分比取值来自于元素的宽度,所以,设置值为100%就实现了我们想要的功能。

实现更多的功能

想要实现更多比例的形状,其实就是修改 ::before 中的 pading-top 或者 padding-bottom 的值即可。

 1 // 16: 9
 2 .square::before
 3   padding-top: (9 / 16 * 100%)
 4 
 5 // 4: 3
 6 .square::before
 7   padding-top: (3 / 4 * 100%)
 8 
 9 // 1: 2
10 .square::before
11   padding-top: 200%

 

当然,上边的实现都只是一个简单的矩形,如果你的矩形里边还要有一些内容的话,需要给元素添加以下几个属性:

1 .content
2   position: absolute
3   top: 0
4   right: 0
5   bottom: 0
6   left: 0

 

1 <div class="square">
2   <div class="content">
3     Awesome
4   </div>
5 </div>

 

要注意的有以下几点:

  1. IE7-不支持
  2. 元素不要设置 height 以及 overflow: hidden 

参考资料

w3-padding

目录
相关文章
|
2月前
|
编解码 前端开发 JavaScript
|
4月前
|
前端开发 JavaScript
❤️使用 HTML、CSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️
❤️使用 HTML、CSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️
54 0
❤️使用 HTML、CSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️
|
10月前
|
移动开发 前端开发 Shell
使用CSS来写一个响应式表格
使用CSS来写一个响应式表格
77 0
|
11月前
|
Web App开发 存储 前端开发
CSS躬行记(11)——管理后台响应式改造
CSS躬行记(11)——管理后台响应式改造
|
JavaScript
用HTML+CSS跟简单的js操作完成响应式星巴克首页
用HTML+CSS跟简单的js操作完成响应式星巴克首页
366 0
用HTML+CSS跟简单的js操作完成响应式星巴克首页
|
前端开发 iOS开发
实训-利用HTML+CSS做响应式项目网页
实训-利用HTML+CSS做响应式项目网页
120 0
实训-利用HTML+CSS做响应式项目网页
|
前端开发 JavaScript
HTML+CSS+JAVASCRIPT实现——响应式登录注册表单
本篇文章,主要讲解一下如何创建一个响应式登录注册表单
163 0
HTML+CSS+JAVASCRIPT实现——响应式登录注册表单
|
前端开发
HTML+CSS实现——响应式卡片页面
本篇文章,主要讲解一下如何创建一个响应式卡片页面
476 0
HTML+CSS实现——响应式卡片页面
|
前端开发 JavaScript
手把手用 CSS 绘制一个忽闪忽闪的可爱小幽灵
通过几个 div 的拼接,和 css 的样式加成,便可制作出这样一个可爱的小幽灵。下面一起看下制作过程吧。