佈局模型

在網頁中,元素有三種佈局模型:
1、流動模型(Flow)
2、浮動模型 (Float)
3、層模型(Layer)

模型有三種形式:

1、絕對定位(position: absolute):

相對於父塊而言,如果沒有就是相對body元素
定位元素加入absolute

2、相對定位(position: relative)

相對於元素之前所在的位置而言
參照定位必須加入relative

3、固定定位(position: fixed)

位置是固定的

水平居中設置-行內元素

text-align:center

水平居中設置-定寬塊狀元素 (設置width屬性值)

margin:20px auto;
/* margin-left 與 margin-right 設置爲 auto */

不定寬度(比如分頁)的塊狀元素有三種方法居中(這三種方法目前使用的都很多):

  • 加入 table 標籤,設置margin左右爲auto屬性
  • 設置 display: inline 方法:與第一種類似,顯示類型設爲行內元素,然後使用 text-align:center 來實現居中效果
  • 設置 position:relative 和 left:50%:利用 相對定位 的方式,將元素向左偏移 50% ,即達到居中的目的

垂直居中-父元素高度確定的單行文本

是通過設置父元素的 height 和 line-height 高度一致來實現的

<style>
.container{
    height:100px;
    line-height:100px;
    background:#999;
}
</style>
<div class="container">
    hi,imooc!
</div>

垂直居中-父元素高度確定的多行文本(方法一)

<style>
table td{
    height:500px;
    background:#ccc;
}
</style>

<body>
<table><tbody><tr><td class="wrap">
<div>
    <p>看我是否可以居中。</p>
</div>
</td></tr></tbody></table>
</body>

說明:

因爲 td 標籤默認情況下就默認設置了 vertical-align 爲 middle,

垂直居中-父元素高度確定的多行文本(方法二)

在 chrome、firefox 及 IE8 以上的瀏覽器下可以設置塊級元素的 display 爲 table-cell(設置爲表格單元顯示),激活 vertical-align 屬性,但注意 IE6、7 並不支持這個樣式, 兼容性比較差。

<style>
.container{
    height:300px;
    background:#ccc;
    display:table-cell;/*IE8以上及Chrome、Firefox*/
    vertical-align:middle;/*IE8以上及Chrome、Firefox*/
}
</style>
<div class="container">
    <div>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
    </div>
</div>

隱性改變display類型

有一個有趣的現象就是當爲元素(不論之前是什麼類型元素,display:none 除外)設置以下 2 個句之一:

  1. position : absolute

  2. float : left 或 float:right

簡單來說,只要html代碼中出現以上兩句之一,元素的display顯示類型就會自動變爲以 display:inline-block(塊狀元素)的方式顯示,當然就可以設置元素的 width 和 height 了,且默認寬度不佔滿父元素。

發佈了81 篇原創文章 · 獲贊 19 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章