css怎么让两个table并排_关于CSS布局
水平居中
水平居中可能是CSS布局中最常用到的布局,這里介紹幾種水平居中的方式
1、使用inline-block 和 text-align實(shí)現(xiàn)
.parent{text-align: center;} .child{display: inline-block;}優(yōu)點(diǎn):兼容性好;
不足:需要同時(shí)設(shè)置子元素和父元素
2、使用margin:0 auto來實(shí)現(xiàn)
.child{width:200px;margin:0 auto;}優(yōu)點(diǎn):兼容性好
缺點(diǎn): 需要指定寬度
3、使用table實(shí)現(xiàn)
.child{display:table;margin:0auto;}優(yōu)點(diǎn):只需要對自身進(jìn)行設(shè)置
不足:IE6,7需要調(diào)整結(jié)構(gòu)
4、使用絕對定位實(shí)現(xiàn)
.parent{position: relative;} .chlid{position: absolute;}.parent{position:relative;} /*或者實(shí)用margin-left的負(fù)值為盒子寬度的一半也可以實(shí)現(xiàn),不過這樣就必須知道盒子的寬度,但兼容性好*/ .child{position:absolute;left:50%;transform:translate(-50%);}不足:兼容性差,IE9及以上可用
5、使用flex布局實(shí)現(xiàn)
/*第一種方法*/ .parent{display:flex;justify-content:center;} /*第二種方法*/ .parent{display:flex;} .child{margin:0 auto;}缺點(diǎn):兼容性差,如果進(jìn)行大面積的布局可能會影響效率
垂直居中
1、使用vertical-aligin(在使用vertical-align的時(shí)候,由于對齊的基線是用行高的基線作為標(biāo)記,故需要設(shè)置line-height或設(shè)置display:table-cell;)
/*第一種方法*/ .parent{display:table-cell;vertical-align:middle;height:20px;} /*第二種方法*/ .parent{display:inline-block;vertical-align:middle;line-height:20px;}2、絕對定位
.parent{position:relative;} .child{positon:absolute;top:50%;transform:translate(0,-50%);}3、flex
.parent{display:flex;align-items:center;}另外有幾個(gè)水平垂直全部劇中的方式
1、利用vertical-align,text-align,inline-block實(shí)現(xiàn)
.parent{display:table-cell;vertical-align:middle;text-align:center;} .child{display:inline-block;}2、利用絕對定位實(shí)現(xiàn)
.parent{position:relative;} .child{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}3、利用flex實(shí)現(xiàn)
.parent{display:flex;justify-content:center;align-items:center;}多列布局
左右定寬
適用于定寬的一側(cè)為導(dǎo)航,自適應(yīng)的一側(cè)為內(nèi)容的布局
1、利用float+margin實(shí)現(xiàn)
.left{float:left;width:100px;} .right{margin-left;margin-left:100px;}2、利用float+margin(fix)實(shí)現(xiàn)
<div class="parent"><div class="left"></div><div class="right-fix"><div class="right"></div></div> </div> .left{width:100px;float:left;} .right-fix{width:100%;margin-left:-100px;float:right;} .right{margin-left:100px;}3、使用float+overflow實(shí)現(xiàn)
.left{width:100px;float:left;} .right{overflow:hidden;}4、overflow:hidden,觸發(fā)bfc模式,浮動(dòng)無法影響,隔離其他元素,IE6不支持,左側(cè)left設(shè)置margin-left當(dāng)作left與right之間的邊距,右側(cè)利用overflow:hidden 進(jìn)行形成bfc模式
如果我們需要將兩列設(shè)置為等高,可以用下述方法將“背景”設(shè)置為等高,其實(shí)并不是內(nèi)容的等高
.left{width:100px;float:left;} .right{overflow:hidden;} .parent{overflow:hidden;} .left,.right{padding-bottom:9999px;margin-bottom:-9999px;}5、使用table實(shí)現(xiàn)
.parent{display:table;table-layout:fixed;width:100%;} .left{width:100px;} .right,.left{display:table-cell;}6、實(shí)用flex實(shí)現(xiàn)
.parent{display:flex;} .left{width:100px;} .right{flex:1;}利用右側(cè)容器的flex:1,均分了剩余的寬度,也實(shí)現(xiàn)了同樣的效果。而align-items 默認(rèn)值為stretch,故二者高度相等
右列定寬,左列自適應(yīng)
1、實(shí)用float+margin實(shí)現(xiàn)
.parent{background:red;height:100px;margin:0 auto;} .left{background:green;margin-right:-100px;width:100%;float:left;} .right{float:right;width:100px;background:blue;}2、使用table實(shí)現(xiàn)
.parent{display:table;table-layout:fixed;width:100%;} .left{display:table-cell;} .right{width:100px;display:table-cell;}3、實(shí)用flex實(shí)現(xiàn)
.parent{display:flex;} .left{flex:1;} .right{width:100px;}兩列定寬,一列自適應(yīng)
基本html結(jié)構(gòu)為父容器為parent,自容器為left,center,right.其中,left,center定寬,right自適應(yīng)
1、利用float+margin實(shí)現(xiàn)
.left,.center{float:left:width:200px;} .right{margin-left:400px;}2、利用float+overflow實(shí)現(xiàn)
.left,.center{float:left:width:200px;} .right{overflow:hidden;}3、利用table實(shí)現(xiàn)
.parent{display:table;table-layout:fixed;width:100%;} .left,.center,.right{display:table-cell;} .left,.center{width:200px;}4、利用flex實(shí)現(xiàn)
.parent{display:flex;} .left,.center{width:100px;} .right{flex:1}兩側(cè)定寬,中欄自適應(yīng)
1、利用float+margin實(shí)現(xiàn)
.left{width:100px;float:left;} .center{float:left;width:100%;margin-right:-200px;} .right{width:100px;float:right;}2、利用table實(shí)現(xiàn)
.parent{width:100%;display:table;table-layout:fixed} .left,.center,.right{display:table-cell;} .left{width:100px;} .right{width:100px;}3、利用flex實(shí)現(xiàn)
.parent{display:flex;} .left{width:100px;} .center{flex:1;} .right{width:100px;}一列不定寬,一列自適應(yīng)
1、利用float+overflow實(shí)現(xiàn)
.left{float:left;} .right{overflow:hidden;}2、利用table實(shí)現(xiàn)
.parent{display:table;table-layout:fixed;width:100%;} .left{width:0.1%;} .left,.right{display:table-cell;}3、利用flex實(shí)現(xiàn)
.parent{display:flex;} .right{flex:1;}多列等分布局
多列等分布局常出現(xiàn)在內(nèi)容中,多數(shù)為功能的,同階級內(nèi)容的并排顯示等。
HTML結(jié)構(gòu)如下
<div class="parent"><div class="column">1</div><div class="column">1</div><div class="column">1</div><div class="column">1</div> </div>1、實(shí)用float實(shí)現(xiàn)
.parent{margin-left:-20px}/*假設(shè)列之間的間距為20px*/ .column{float:left;width:25%;padding-left:20px;box-sizing:border-box;}2、利用table實(shí)現(xiàn)
.parent-fix{margin-left:-20px;} .parent{display:table;table-layout:fixed;width:100%;} .column{display:table-cell;padding-left:20px;}3、利用flex實(shí)現(xiàn)
.parent{display:flex;} .column{flex:1;} .column+.column{margin-left:20px;}九宮格布局
1、使用table實(shí)現(xiàn)
<div class="parent"><div class="row"><div class="item"></div><div class="item"></div><div class="item"></div></div><div class="row"><div class="item"></div><div class="item"></div><div class="item"></div></div><div class="row"><div class="item"></div><div class="item"></div><div class="item"></div></div></div>2、實(shí)用flex實(shí)現(xiàn)
<div class="parent"> <div class="row"><div class="item"></div><div class="item"></div><div class="item"></div></div> <div class="row"><div class="item"></div><div class="item"></div><div class="item"></div></div> <div class="row"><div class="item"></div><div class="item"></div><div class="item"></div></div> </div>總結(jié)
以上是生活随笔為你收集整理的css怎么让两个table并排_关于CSS布局的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt中QMultiMap获取键值
- 下一篇: html 页面重复度高,html – C