本次我寫的是關于CSS布局的一些方法,CSS布局就類似于排版脂新,也是最基礎的一項工作熙含,想要寫的文章讓讀者看的有耐心我覺得布局是必不可少的。下面我就列出一些css最基礎的布局方式割粮。
1.css的左右布局
左右布局很常見盾碗,簡單來說就是左邊一個容器右邊一個容器,哪里都會看到它的身影舀瓢,就比如我現(xiàn)在在簡書里寫的markdown里面的預覽模式一樣廷雅,它也是左右布局的模式;但是通常我都會用
div
這個塊級元素來創(chuàng)造我的模塊,這時候問題就來了航缀,<div>
這個塊級元素是獨自霸占一行的商架,它的左右只有它自己這個時候如果你在加一個<div>
它只會出現(xiàn)在上一個<div>
的下面一行是不會出現(xiàn)在上一個<div>
的左邊的,那么如何是這兩個<div>
變成左右布局的呢? 下面有請我們的黑科技float:left
float:left
顧名思義是一種屬性芥玉,它的加入給了塊級元素浮動的效果 例:
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div class="all clearfix">
<div class="one"></div>
<div class="two"></div>
</div>
</body>
</html>
CSS:
.one{
width:100px;
height:100px;
background: black;
float:left;
}
.two{
width:100px;
height:100px;
background: red;
float:left;
}
我在兩個子元素里加了
float:left
之后它們脫離了文檔流 蛇摸,就像內(nèi)聯(lián)元素一樣可以在一行里顯示了,自然也變成了左右布局灿巧。
2.css的水平居中
什么叫水平居中?就是一個子容器在自己的父容器中處于水平中間的位置赶袄。以文檔流的形式來看就是一段文字處在這一行的最中間的位置。那如何實現(xiàn)它們的水平居中呢? 我們可以用
margin:0 auto
或者可以使用text-align:center
方法一:使用
margin:0 auto
從而獲得水平居中 例:
.one{
width:100px;
height:100px;
background: black;
margin:0 auto;
}
方法二 脫離文檔流從而獲取水平居中
給目標設置一個父元素 然后給目標div
變成脫離文檔流狀態(tài)( 可以使用display:inline-block
來實現(xiàn)脫離文檔流) 然后我們把text-align:center
寫在父元素上 這樣我們就也是先了水平居中狀態(tài)
.all{
border:1px solid red;
text-align: center;
}
.one{
width:100px;
height:100px;
background: black;
display:inline-block;
}
水平居中和垂直居中的區(qū)別 :
水平居中:文字的左右兩邊的間距是一樣的抠藕,
垂直居中:文字的上邊和下邊的間距是一樣的饿肺。
3.垂直居中
垂直居中相信看了上面的圖片大家就明白它和水平居中的區(qū)別了那么如何做到垂直居中呢?我是這樣做的 :
.all{
width:500px;
height:500px;
border:1px solid red;
text-align: center;
position: relative;
}
.one{
width:100px;
height:100px;
background: black;
margin: auto;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
}
1在普通文檔流里,
margin: auto;
的意思是設置元素的margin-top和margin-bottom為0;
2.設置了position: absolute; 的元素會變成塊元素盾似,并脫離普通文檔流唬格。而文檔的其余部分照常渲染,元素像是不在原來的位置一樣颜说。
3.設置了top: 0; left: 0; bottom: 0; right: 0; 樣式的塊元素會讓瀏覽器為它包裹一層新的盒子购岗,因此這個元素會填滿它相對父元素的內(nèi)部空間,這個相對父元素可以是是body標簽门粪,或者是一個設置了position: relative; 樣式的容器喊积。
4.css的其它小技巧
1.使用
border:1px solid red
來顯示所包裹的物體的具體位置及大小往往是很有用的。
2.比如說在做一個導航欄你想給每個鏈接下面鼠標羅上去都會出現(xiàn)一個下邊框時玄妈,如果你直接加一個
hover
然后你面給一個border-bottom:1px solid black
時乾吻,當你去點擊這些<a>
標簽時雖然會出現(xiàn)下劃線但是你的導航欄會抖動 那么如何解決呢?很簡單你只要在原來的<a>
標簽上協(xié)商這樣一段代碼border-bottom:1px solid transparent
這樣的原理呢是在原來的<a>
標簽上加上一個同名的下劃線來占位 這樣當我們鼠標點擊的時候就不會再出現(xiàn)位置不足而抖動的情況了