CSS布局

一栏布局

定宽+水平居中
html:

<div>demo</div>

css:

div{
  height: 50px;
  width: 90vw;
  background-color: red;
  margin: 0 auto;
}

双栏布局

特点: 一栏固定宽度, 另外一栏自适应撑满
浮动元素 + 普通元素margin
html:

<div class="content">
      <div class="right">demo1</div>
      <div class="left">demo2</div>
      <div style="height:50px;background:green;">123</div>
</div>

css:

//不清楚浮动的话父元素无法包裹子元素
.content::after{
  content: '';
  display: block;
  clear: both;
}
.left{
  height: 50px;
  width: 10vw;
  background-color: red;
  float: left;
}
.right{
  height: 100px;
  margin-left: 0vw;
  background-color: blue;
}

浮动元素一定要在普通元素的前面,因为当元素设置浮动之后,会脱离当前文档流,使之后的元素占领他本来的位置,如果浮动元素写在了块级元素后面,脱离文档流就没有任何意义。


三栏布局

特点: 左右两栏固定宽度, 中间主要区块自适应撑满
思路与两栏布局相似,两个浮动元素,一个普通元素,普通元素在两个浮动元素后面
html:

<div class="content">
      <div class="left">demo1</div>
      <div class="right">demo2</div>
      <div class="main">main</div>
</div>

css:

.content::after{
  content: '';
  display: block;
  clear: both;
}
.left{
  height: 100px;
  width: 10vw;
  background-color: red;
  float: left;
}
.right{
  height: 100px;
  width: 10vw;
  margin-left: 0vw;
  background-color: blue;
  float: right;
}
.main{
  height: 200px;
  background: green;
  margin: 0 11vw 0 11vw;
}

使用flex布局

两栏布局和三栏布局都可以使用flex布局,十分简单
以三栏布局为例
html:

<div class="main">
      <div>1</div>
      <div>2</div>
      <div>3</div>
</div>

css:

.main{
  display: flex;
  justify-content: space-between;  //两端对齐,项目之间的间隔都相等。
}
.main>div{
  width: 30vw;
  height: 50px;
  background: red;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,090评论 5 15
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 一般而言,一个静态web页面的呈现需要通过html和css配合实现。html相当于页面的骨架,规定了文档的结构。c...
    夏木与晴空阅读 4,724评论 0 3
  • 前言 温馨提示:本文较长,图片较多,本来是想写一篇 CSS 布局方式的,但是奈何 CSS 布局方式种类太多并且实现...
    sunshine小小倩阅读 8,340评论 0 59
  • 前言 现在,我们被称为前端工程师。然而,早年给我们的称呼却是页面仔。或许是职责越来越大,整体的前端井喷式的发展,使...
    Calvin李阅读 3,421评论 0 0