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

页面布局中,我们经常需要用百分比来实现宽度自适应,但是如果这时候高度要跟宽度呈固定比例变化,该怎么办呢?

很简单,我们可以利用元素的padding或margin的百分比值是参照宽度的这一特性来实现,

即如果元素的padding或margin值是百分比值,那么,它的值是根据父元素的宽度来计算的。

所以,实现一个自适应的正方形,可以有两种写法:

可以这么写:

1 <style>
2     .box{
3         width: 50%;
4         padding-top: 50%;
5         background-color: black;
6     }
7 </style>
8 <div class="box"></div>

也可以这么写:

 1 <style>
 2         .box{
 3             overflow: hidden;
 4             width: 50%;
 5             background-color: black;
 6         }
 7         .margin{
 8             margin-top: 100%;
 9         }
10     </style>
11     <div class="box">
12         <div class="margin"></div>
13     </div>

两种方法略有不同,大家可以自行比较,也可以脑洞一些其他方法。

收工!

时间: 2024-11-05 21:44:42

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

css实现自适应正方形的方法 http://www.cnblogs.com/dantis/archive/2017/05/12/6846611.html

页面布局中,我们经常需要用百分比来实现宽度自适应,但是如果这时候高度要跟宽度呈固定比例变化,该怎么办呢? 很简单,我们可以利用元素的padding或margin的百分比值是参照宽度的这一特性来实现, 即如果元素的padding或margin值是百分比值,那么,它的值是根据父元素的宽度来计算的. 所以,实现一个自适应的正方形,可以有两种写法: 可以这么写: 1 <style> 2 .box{ 3 width: 50%; 4 padding-top: 50%; 5 background-color

CSS布局自适应高度解决方法

这是一个比较典型的三行二列布局,每列高度(事先并不能确定哪列的高度)的相同,是每个设计师追求的目标,按一般的做法,大多采用背景图填充.加JS脚本的方法使列的高度相同,本文要介绍的是采用容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法来解决列高度相同的问题. 先看代码: 1 #wrap{ 2 overflow: hidden; 3 } 4 5 #sideleft, #sideright{ 6 padding-bottom: 32767px; 7 margin-bottom: -32767px

CSS实现自适应正方形、等宽高比矩形

1.利用vw.vh.vmin.vmax,vw表示的是viewport的宽度,也就是视口的宽度,vh表示的是视口的高度,vmin=min{vw,vh}取的是两者中较小的值,vmax ={vw,vh},1vm = 1% viewport width其他同理,所以利用上诉的单位来定义矩形的宽高即可实现等比变换. 1 div{ 2 width :1vm; 3 height:1vm; 4 } 2.利用垂直方向上的padding值,当容器中的内容超过了容器的宽高时,容器的内容会扩充到padding中,同时p

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

本文篇幅较长,希望能坚持看完,转载请注明出处,如果觉得好文请给个赞吧 CSS实现梯形 CSS实现三角形和梯形主要是依靠border是梯形的特性来做的,有点像相框的那种感觉. 首先我们先给一个正方形设置比较宽的边框.如下. <div id="test1"></div> <style> #test1{ width: 50px; height: 50px; background: purple; border-top: 50px solid red; bo

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

css3的盒模型 <!DOCTYPE html> <html > <head> <title>div + css宽度自适应(液态布局)</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> /*左边栏,设定宽度*/

CSS实现自适应不同大小屏幕的背景大图的两种方法(转自简书)

CSS实现自适应不同大小屏幕的背景大图的两种方法 一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块露白,简而言之,就是实现能自适应屏幕大小又不会变形的背景大图,而且背景图片不会随着滚动条滚动而滚动. 用CSS实现真的很简单很简单,下面我们来看一下第一种方法具体的代码: HTML代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <m

css网页自适应-2

昨天中午Google进行了一次在线讲座,讲述自适应网页设计的概念和方法,维护同一个网页代码,即可使网站在多种浏览设备(从桌面电脑显示器到智能手机或其他移动产品设备)上具有更好的阅读体验,这里我将该讲座内容简要的整理一下. 1.在HTML头部增加viewport标签. 在网站HTML文件的开头,增加viewport meta标签告诉浏览器视口宽度等于设备屏幕宽度,且不进行初始缩放.代码如下: <meta name="viewport" content="width=dev

JQuery 加载 CSS、JS 文件的方法有哪些?

在进行web前端开发(http://www.maiziedu.com/course/web-px/)时,我们可能会需要使用JQuery加载一个外部的css文件或者js文件,加载外部文件的方法有多种,下面具体看看各种加载方法 JS 方式加载 CSS.JS 文件: //加载 css 文件function includeCss(filename) { var head = document.getElementsByTagName('head')[0]; var link = document.cre

CSS z-index 属性的使用方法和层级树的概念

CSS 中的 z-index 属性用于设置节点的堆叠顺序, 拥有更高堆叠顺序的节点将显示在堆叠顺序较低的节点前面, 这是我们对 z-index 属性普遍的认识. 与此同时, 我们总是对堆叠顺序捉摸不透, 将 z-index 的值设得很大也未必能将节点显示在最前面. 本文将通过一些例子对 z-index 的使用方法进行分析, 并且为各位带入 z-index 层级树的概念. 顺序规则 如果不对节点设定 position 属性, 位于文档流后面的节点会遮盖前面的节点. 定位规则 如果将 positio