web饥人谷技术博客

CSS 布局与居中

2019-01-03  本文已影响6人  养乐多__

一、常见布局

1. 浮动布局

可以通过盒模型的 float 属性实现浮动布局,使元素脱离文档流,浮动起来。
(1)使所有子元素浮动起来:float: left;float: right;
(2)给父元素添加 clearfix 类清除浮动(加在类名后面,与类名用空格隔开),例:

<div class="picture clearfix">
  ······
<div>

(3)在 css 文件中添加以下代码:

.clearfix::after{           
  content: '';             
  display: block;
  clear: both;
}
2. 定位布局

通过 position 属性来进行定位,确定盒模型的位置。

h2.pos-left{
  position: relative;
  left: -20px;
}

相对定位元素经常被用来作为绝对定位元素的容器块。

h2{
  position: absolute;
  left: 100px;
  top: 150px; 
}

(1)脱离文档流:使元素的位置与文档流无关,因此不占据空间。
(2)absolute 定位的元素和其它元素重叠。

二、两种布局的应用

1. 左右布局
2. 左中右布局

三、设置居中

1. 垂直居中
.a{
    height: 50px;
    line-height: 50px;
}
.parent{
    height: 200px;
    position: relative;
}
.a{
    heihght: 1000px;
    margin-top: -50px;    
    position: absolute;
    top: 50%;
}
2. 水平居中
.parent{
    text-align: center;
}
a.{
    margin: 0 auto;
}
.parent{
    text-align: center;
}
.a{
    display: inline-block;
}

四、其他小技巧

  1. 若外面父 div 高度是固定的,里面的子 div 高度可写为 height:100%;
  2. CSS 中相同的代码段,可以通过 "inherit" 继承关系,使其继承父元素的定义:
div{
    color: red; 
}
div a{
    color: inherit; 
}
  1. content-boxborder-box 的区别:
  1. 给 div 加 padding 会使 div 变大,所以应该把 div 里面的内容另外打包成一个新的 div,然后给它加 padding.

  2. li 标签不能包裹住 a 标签,给 a 标签一个 display:block 就可以消除 bug。

  3. 块状元素显示为内联元素时,最好用vertical-align防止其产生bug:

.a{
    display: inline-block;  
    vertical-align: top; 
}  
上一篇下一篇

猜你喜欢

热点阅读