溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

css實現(xiàn)寬度自適應的方法

發(fā)布時間:2020-05-19 15:31:05 來源:億速云 閱讀:1517 作者:栢白 欄目:web開發(fā)

如今的網(wǎng)頁布局是需要適應于各種屏幕的,因此就需要來實現(xiàn)自適應使得網(wǎng)頁中的內容來完全的顯示,所以,今天的這篇文章就來給大家介紹一下關于css寬度自適應的內容。詳細的說一說css自適應布局中css寬度自適應該如何實現(xiàn)。

我們經(jīng)常會看到這樣的頁面,左側(或者右側)為固定的導航或者菜單欄,另一側將會隨著瀏覽器的縮放而自適應改變其大小,這其實就是寬度自適應的實現(xiàn)。

css寬度自適應中最常見的實現(xiàn)方法有兩種,一種是兩列布局,另一種是三列布局

下面我們就來對這兩種方法分別簡單介紹一下。

一. css寬度自適應之兩列布局:

我們以右側寬度固定,左側寬度自適應為例:

1、固定寬度區(qū)浮動,自適應區(qū)不設寬度而設置 margin

<div id="wrap">
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定寬度區(qū)</div>
  <div id="content" style="height:500px;background:#000;color:#fff;">自適應區(qū)</div>
</div>
#sidebar {
  float: right; width: 300px;
}#content {
  margin-right: 300px;
}

注意:

右側一直固定不動,左側根據(jù)屏幕的剩余大小自適應。

但實際上這個方法是有局限性的,那就是html結構中sidebar必須在content之前才行。

2、float與margin配合使用

<div id="wrap">
  <div id="content" style="height:500px;background:#000;color:#fff;">
    <div class="contentInner">
       自適應區(qū)    </div>
  </div>
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定寬度區(qū)</div>
</div>
#content {
  margin-left: -300px; float: left; width: 100%;
}#content .contentInner{
  margin-left:300px;
}#sidebar {
  float: right; width: 300px;
}

說明:這樣實現(xiàn),contentInner的實際寬度就是屏幕寬度-300px。

3、固定寬度區(qū)使用絕對定位,自適應區(qū)設置margin

<div id="wrap">
  <div id="content" style="height:500px;background:#000;color:#fff;">我現(xiàn)在的結構是在前面</div>
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定寬度區(qū)</div>
  </div>
#wrap{
  position:relative;
}#content {
  margin-right:300px;
}#sidebar {
  position:absolute;
  width:300px;
  right:0;
  top:0;
}

4、使用display:table實現(xiàn)

<div id="wrap">
  <div id="content" style="height:500px;background:#000;color:#fff;">我現(xiàn)在的結構是在前面</div>
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定寬度區(qū)</div>
</div>
#wrap{
  display:table;
  width:100%;
}#content {
  display:table-cell;
}#sidebar {
 width:300px;
  display:table-cell;
}

注意:這一種方法在IE7以及以下瀏覽器不兼容,因為IE7設置display為table不識別。

二. css寬度自適應之三列布局:

1、固定寬度三列布局

    <div class="div0">
        <div class="left">left</div>
        <div class="middle">middle</div>
        <div class="right">right</div>
    </div>
*{
    padding: 0;
    margin: 0;
}
.div0{
    width: 800px;
    height: 500px;/*設置高度只為結果更直觀,高度可根據(jù)內容自適應*/
    margin: 50px auto;
    border: 2px solid #E51414;/*添加邊框只為結果更直觀*/
}
.left{
    width: 200px;
    height: 500px;/*設置高度只為結果更直觀,高度可根據(jù)內容自適應*/
    background: #6E6C8A;
    float: left;/*設為左浮動*/
    text-align: center;
}
.middle{
    width: 430px;
    height: 500px;/*設置高度只為結果更直觀,高度可根據(jù)內容自適應*/
    background: #806155;
    float: left;/*設為左浮動*/
    margin: 0 10px 0 10px;/*左右各加10px使得三列之間有間隙*/
    text-align: center;
}
.right{
    width: 150px;
    height: 500px;/*設置高度只為結果更直觀,高度可根據(jù)內容自適應*/
    background: #8F9068;
    float: right;/*設為右浮動*/
    text-align: center;
}

2、左右固定寬度、中間自適應寬度的三列布局

 <!--<div class="div0">-->
 <div class="left">left</div>
        <div class="middle">middle</div>
        <div class="right">right</div>
<!--</div>-->
*{
    padding: 0;    
    margin: 0;}
    /*.div0{
    width: 800px;
    height: 500px;
    margin: 50px auto;
    position: relative;
    border: 2px solid #E51414;
}
可以不要這個父元素div0(即默認父元素為body),如果有,需將這個父元素設置為相對定位*/
.left{
    width: 200px;    
    height: 500px;    
    background: #6E6C8A;    
    position: absolute;    
    top: 0;    l
    eft: 0;
    /*設為絕對定位并且與其父元素的top、left距離都為0*/
    text-align: center;
    }
.middle{
    height: 500px;    
    background: #806155;    
    margin: 0 160px 0 210px;
    /*左右各加10px使得三列之間有間隙*/
    text-align: center;
    }
    .right{
        width: 150px;    
        height: 500px;    
        background: #8F9068;    
        position: absolute;    
        top: 0;    
        right: 0;
        /*設為絕對定位并且與其父元素的top、right距離都為0*/
    text-align: center;
    }

說明:當左右兩個div寬度固定,中間的div寬度未知時,使用浮動不能實現(xiàn)三列布局。使用絕對定位才能實現(xiàn)三列布局:需要將左邊和右邊的元素設置為絕對定位,將中間的元素margin值的左右分別設置為右邊元素和左邊元素的寬度。不需要父元素的包裹,即可實現(xiàn)三列布局,如果有父元素,需要將父元素設置為相對定位。(關于定位的內容可以參考css手冊)

以上就是css實現(xiàn)寬度自適應的方法的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

css
AI