css实现正方形

css实现正方形

如果仅仅是设置width 和 height的话,这个问题就不用说了,这里考虑的问题主要是padding的百分比是相对于谁来说的

元素的padding 和 margin百分比都是想对应父元素的width(父元素必须有width这个值 否则往上查找知道body)来说的, 如下通用的css正方形方案

  1. 相对于父元素width
<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      .container {
        width: 100px;
        height: 100px;
      }
      .square {
        width: 100%;
        padding-bottom: 100%;
        background: red;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="square">
      </div>
    </div>
</body>
</html>
  1. 可以设置高度,利用伪元素
<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      .square {
        width: 100px;
        background: green;
      }
      .square:after {
        content: '';
        display: block;
        padding-bottom: 100%;
      }
    </style>
  </head>
  <body>
      <div class="square">
      </div>
</body>
</html>

设置一个伪元素,伪元素用的是利用 padding-bottom撑起父元素的高度,padding相对高度为 父元素的 width

  1. 不同单位 相对于视口 而且利用vw
<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      .container {
        width: 5%;
        height: 5vw;
        background: red;
      }
    </style>
  </head>
  <body>
    <div class="container">
    </div>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,863评论 1 92
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,526评论 0 20
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,355评论 0 11
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,683评论 0 30
  • 大学里,上西方经济学,第一课叫做经济学的基本假设。其中有一条就是 “People are rational” 人是...
    慢小葵阅读 790评论 0 2