css 如何绘制正方形

前言

如何绘制正方形的问题呢,在这里我先只写一种方式,后续补齐。

正文

写正方形有一个很特殊的地方就在于我们在写html的时候,宽是一定固定的,因为不可能溢出去,但是高就不固定了,因为可能要滑动。
问题就回到了,知道了宽,如何设定高的问题了。

padding 方式

原理:padding的宽度的百分比是根据width来确定的。

.container{
  width: 200px;
  background: yellow;
}
.container::before
{
  content:"";
  padding-top:100%;
  display: block;
}

这样通过befor把元素撑开。
但是呢,里面的元素已经被占用了,那么我们需要书写不是container而是这样。

.container{
  width: 200px;
  background: yellow;
  position: relative;
}
.container::before
{
  content:"";
  padding-top:100%;
  display: block;
}
.ele{
  position: absolute;
  top: 0px;
  left: 0px;
  right: 0px;
  bottom: 0px;
}

html:

<div class="container">
<div class="ele">
  dsda
</div>
</div>

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效