CSS布局

作者: 小废柴JH | 来源:发表于2019-05-01 11:22 被阅读0次

1. 两栏布局

两栏布局的特征是侧栏固定宽度,主栏自适应宽度。

实现方法:

float + margin:
<body>
  <div class="left">定宽</div>
  <div class="right">自适应</div>
</body>
.left{
  width: 200px;
  height: 200px;
  background: red;
  float: left;
  text-align: center;
  line-height: 600px;
  color: #fff;
}
.right{
  margin-left: 210px;
  height: 200px;
  background: black;
  text-align: center;
  line-height: 600px;
}

也可以使用绝对定位来实现两栏布局。

2. 三栏布局

三列布局的特征是两侧两列固定宽度,中间列自适应宽度。

实现方法:

float+margin
<div id="content">
    <div class="sub">sub</div>
    <div class="extra">extra</div>
    <div class="main">main</div>
</div>
.sub{
    width: 100px;
    float: left;
}
.extra{
    width: 200px;
    float: right;
}
.main{
    margin-left: 100px; 
    margin-right: 200px;
}
position+margin
.sub, .extra {
    position: absolute;
    top: 0; 
    width: 200px;
}
.sub { 
    left: 0;
}
.extra { 
    right: 0; 
}
.main { 
    margin: 0 200px;
}

3. 水平居中

实现方式:

(1) 行内元素:对父元素设置text-align:center;
(2) 定宽块级元素: 设置左右margin值为auto;
(3) 不定宽块级元素: 设置子元素为display:inline,然后在父元素上设置text-align:center;
(4) 通用方案: flex布局,对父元素设置display:flex;justify-content:center。

4. 垂直居中

实现方式:

(1) 父元素一定,子元素为单行内联文本:设置父元素的height等于行高line-height;
(2) 父元素一定,子元素为多行内联文本:设置父元素的display:table-cell或inline-block,再设置vertical-align:middle;
(3) 块状元素:设置子元素position:absolute 并设置top、bottom为0,父元素要设置定位为static以外的值,margin:auto;
(4) 通用方案: flex布局,给父元素设置{display:flex; align-items:center;}。

5. 定位

定位的概念就是它允许你定义一个元素相对于其他正常元素的位置,它应该出现在哪里,这里的其他元素可以是父元素,另一个元素甚至是浏览器窗口本身。position六个属性值:static、relative、absolute、fixed、sticky和inherit。

6. 盒子模型

每个元素,都会形成一个矩形块,主要包括四部分:margin(外边距)+border(边框)+padding(内边距)+content(内容)

css中存在两种不同的盒子模型,可以通过box-sizing设置不同的模型。两种盒子模型,主要是width的宽度不同。如图:

这是标准盒子模型,可以看到width的长度等于content的宽度;而当将box-sizing的属性值设置成border-box时,盒子模型的width=border+padding+content的总和。

相关文章

网友评论

      本文标题:CSS布局

      本文链接:https://www.haomeiwen.com/subject/uxxynqtx.html