負數給人總是一種消極、否定、拒絕之感,不過有時利用負margin可以達到奇妙的效果,今天就表一表負值在頁面布局中的應用。這裡說的負值主要指的是負margin。
關於負margin的原理建議大家看看這篇文章:
本文不講原理,主要展示幾個應用。
此例適用於左右欄寬度固定,中間欄寬度自適應的布局。由於網頁的主體部分一般在中間,很多網頁都需要中間列優先載入,而這種布局剛好滿足此需求。
html:
<css:div
class
="main"
>
<
div
class
="main_body"
>main
div>
div>
<
div
class
="left"
>left
div>
<
div
class
="right"
>right
div>
body.main.main_body.left,.right.left.right效果:
專案中經常會使用浮動列表展示資訊,為了美觀通常為每個列表之間設定一定的間距(margin-right),當父元素的寬度固定式,每一行的最右端的li元素的右邊距就多餘了,去除的方法通常是為最右端的li新增class,設定
margin-right:0;
這種方法需要動態判斷為哪些li元素新增class,麻煩!!!利用負margin就可以實現下面這種效果:
html:
<css:div
id="test"
>
<
ul>
<
li>子元素1
li>
<
li>子元素2
li>
<
li>子元素3
li>
<
li>子元素4
li>
<
li>子元素5
li>
<
li>子元素6
li>
ul>
div>
body,ul,liul,li#test#test ul#test ul li效果:
使用絕對定位將div定位到body的中心,然後使用負margin(content寬高的一半),將div的中心拉回到body的中心,已到達水平垂直居中的效果。
html:
<css:div
id="test"
>
div>
body#test效果:
列表中我們經常會新增border-bottom值,最後乙個li的border-bottom往往會與外邊框重合,視覺上**觀,往往要移除。
html:
<css:ul id
="test"
>
<
li>test
li>
<
li>test
li>
<
li>test
li>
<
li>test
li>
<
li>test
li>
ul>
body,ul,liul,li#test#test li效果:
此例關鍵是給每個框設定大的底部內邊距,然後用數值相似的負外邊距消除這個高度。這會導致每一列溢位容器元素,如果把外包容器的overflow屬性設為hidden,列就在最高點被裁切。
html:
<css:div
id="wrap"
>
<
div
id="left"
>
<
p style
="height:50px"
>style="height:50px"
p>
div>
<
div
id="center"
>
<
p style
="height:100px"
>style="height:100px"
p>
div>
<
div
id="right"
>
<
p style
="height:200px"
>style="height:200px"
p>
div>
div>
body,p#wrap#left,#center,#right#left #center #right p效果:
(負值) margin在頁面布局中的應用
此例適用於左右欄寬度固定,中間欄寬度自適應的布局。由於網頁的主體部分一般在中間,很多網頁都需要中間列優先載入,而這種布局剛好滿足此需求。專案中經常會使用浮動列表展示資訊,為了美觀通常為每個列表之間設定一定的間距 margin right 當父元素的寬度固定式,每一行的最右端的li元素的右邊距就多餘了...
CSS中margin值為負對布局的影響
一 首先是對自身的影響 1.margin left,margin right會增加元素自身寬度。m 當自身元素寬度未設定或width auto時,margin為負值會增加元素自身的寬度 如圖 width auto時 如圖 width auto時且設定了margin left 40px 2.margi...
數學之美 系列七 資訊理論在資訊處理中的應用
我們已經介紹了 資訊熵,它是資訊理論的基礎,我們這次談談資訊理論在自然語言處理中的應用。先看看資訊熵和語言模型的關係。我們在 系列一中 談到語言模型時,沒有講如何定量地衡量乙個語言模型的好壞,當然,讀者會很自然地想到,既然語言模型能減少語音識別和機器翻譯的錯誤,那麼就拿乙個語音識 別系統或者機器翻譯...