CSS常见布局技巧

1. 三栏布局

如下主要讨论三栏布局,两栏和多栏同理,css

浮动+clear实现

子元素浮动,父元素添加清除浮动,html以下:html

<div class="wrapper clearfix">
    <div class="left">左边栏</div>
    <div class="middle">中间栏中间栏中间栏中间栏中间栏</div>
    <div class="right">右边栏</div>
</div>
复制代码

CSS以下:web

.clearfix::after {
    content: '';
    display: block;
    clear: both;
}
.wrapper{
    max-width: 360px;
    margin: 0 auto;
    border: 1px solid;
}
.left{
    width: 20%;
    float: left;
    background: #1aa;
}
.middle{
    width: 60%;
    float: left;
    background: #77a;
}
.right{
    width: 20%;
    float: left;
    background: #a7a;
}
复制代码

显示效果: 浏览器

table-cell

利用CSS3单元格实现,把left,middle,right类改成以下形式便可。app

.left{
    display: table-cell;
    width: 20%;
    background: #1aa;
}
.middle{
    display: table-cell;            
    background: #77a;
}
.right{
    display: table-cell;
    width: 20%;
    background: #a77;
}
复制代码

显示效果与上相同,而且中栏可自适应窗口。不过table-cell只适用于较新的浏览器,为了适应老浏览器还能够用负边距法。布局

2. 水平居中

行内元素水平居中

适用于文字,连接,及其inline或者inline-block、inline-table和inline-flex。给要居中元素父元素添加:flex

.container{
    text-align:center;
}
复制代码

块状元素的水平居中

给父元素设置width,给居中元素设置以下规则:ui

.block{
    margin:0 auto;
}
复制代码

若父元素宽度未知,则可先设为display: inline-block,再按行内元素方法(tac)居中。spa

3. 垂直居中

行内垂直居中

line-height设置成和height同样高便可。若是有n行文字,那么将行高设为容器高度的n分之一便可。或者设置上下pandding相等code

固定宽高居中

先下移50%,再上移自身高度一半。 结构以下:

<div id="big">
    <div id="small"></div>
</div>
复制代码

样式以下:

#big {
    position:relative;
    height:480px;
}
#small {
    position: absolute;
    top: 50%;
    height: 240px;
    margin-top: -120px;
}
复制代码

4. 小技巧

  1. max-width自适应,而非width(会有滚动条)。
  2. <span>不接受设置宽高。改inline-block,计算padding,从里面作出去。
  3. 子绝父相,在子元素上写p:abs,父元素写p:rel
  4. CSS重置用于取消浏览器的内置样式,可参考YUIEric Meyer的样式表。
  5. 下载东西要新开页面,因此用<a>而非<button>
  6. paddingmargin不改宽度:box-sizing: border-box;
相关文章
相关标签/搜索