182tv午夜-182tv午夜福利在线观看-成人入口-成人软件在线观看-狠狠亚洲-狠狠夜夜-免费的黄色小视频-免费的黄网站-日本一区二区精品视频-日本一区二区久久-午夜精品福利一区二区-午夜精品福利在线-在线黄色av-在线黄色av网站-国产精品青草久久久久婷婷-久久/这里只精品热在线获取

網站目錄

css怎么實現兩列布局

有啊網站百科1652024-07-14 02:34:00
方法:1、兩個盒子元素都設置“dislpay:inline-block”;2、兩個盒子元素設置浮動;3、左側定寬元素浮動,右側元素設置margin-left,且值大于定寬元素的寬度;4、浮動+bfc;5、絕對定位+margin-left等。

css怎么實現兩列布局

本教程操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

一、什么是兩列布局

  兩列布局分為兩種,一種是左側定寬、右側自適應,另一種是兩列都自適應(即左側寬度由子元素決定,右側補齊剩余空間)。在CSS面試題里面屬于常考題,也是一個前端開發工程師必須掌握的技能,下面將分別介紹實現方式。

二、左側定寬、右側自適應如何實現?

1.雙inline-block

    原理:兩個元素都設置dislpay:inline-block,為了消除html空格的影響,父元素的font-size需要設置為0,右側自適應元素的寬度使用calc函數計算。如果兩個元素的高度不一樣,可以給元素設置vertical-align:top調整。

    缺點:由于父元素設置了font-size為0,子元素內文字不會顯示

立即學習“前端免費學習筆記(深入)”;

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
           *{
               padding: 0;
               margin: 0;
           }
            .box{
                height: 600px;
                width: 100%;
                font-size:0;
            }
            .left{
                display: inline-block;
                width: 100px;
                height: 200px;
                background-color: red;
                vertical-align: top;
                 
            }
            .right{
                display: inline-block;
                width: calc(100% - 100px);
                height: 400px;
                background-color: blue;
                vertical-align: top;
            }
             
        </style>
    </head>
    <body>
        <div class="box">
            <div class="left">
                <span>1234</span>
            </div>
            <div class="right">
                <span>1234</span>
            </div>
        </div>
    </body>
</html>

2.雙浮動

    原理:兩個元素設置浮動,右側自適應元素寬度使用calc函數計算

    缺點:父元素需要清除浮動

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .box{
                height: 600px;
                width: 100%;
 
            }
            .left{
                float: left;
                width: 100px;
                height: 200px;
                background-color: red;
            }
            .right{
                float: left;
                width: calc(100% - 100px);
                height: 400px;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="left">
                <span>
                    123adadadddddddddddddddddddddddddddddddddddddddd
                </span>
            </div>
            <div class="right"></div>
        </div>
    </body>
</html>

3.浮動+margin

    原理:左側定寬元素浮動,右側自適應元素設置margin-left的值大于定寬元素的寬度即可

    缺點:父元素需要清除浮動

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .box{
                height: 600px;
                width: 100%;
 
            }
            .left{
                float: left;
                width: 100px;
                height: 200px;
                background-color: red;
            }
            .right{
                margin-left: 100px;
                height: 400px;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="left">
                <p>1234</p>
            </div>
            <div class="right">
                <p>1234</p>
            </div>
        </div>
    </body>
</html>

4.浮動+BFC

    原理:父元素設置overflow:hidden,左側定寬元素浮動,右側自適應元素設置overflow:auto創建BFC

    缺點:左側元素的內容如果超過設定寬度會重疊到右側元素上

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .box{
                height: 600px;
                width: 100%;
                overflow: hidden;
            }
            .left{
                float: left;
                width: 100px;
                height: 200px;
                background-color: red;
            }
            .right{
                overflow: auto;
                height: 400px;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="left">111111111111111111111111</div>
            <div class="right">111111111111111111111111111111111111111111111</div>
        </div>
        <div class="right"></div>
    </body>
</html>

5.absolute+margin-left

    原理:父元素相對定位,左側元素絕對定位,右側自適應元素設置margin-left的值大于定寬元素的寬度

    缺點:父元素設置了相對定位

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .box{
                height: 600px;
                width: 100%;
                position: relative;
            }
            .left{
                position: absolute;
                width: 100px;
                height: 200px;
                background-color: red;
            }
            .right{
                margin-left: 100px;
                height: 400px;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="left"></div>
            <div class="right"></div>
        </div>
    </body>
</html>

6.flex布局

    原理:父元素設置display:flex,自適應元素設置flex:1

    缺點:存在兼容性問題,IE10以下不支持

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            .box{
                height: 600px;
                width: 100%;
                display: flex;
            }
            .left{
                width: 100px;
                height: 200px;
                background-color: red;
            }
            .right{
                flex: 1;
                height: 400px;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="left"></div>
            <div class="right"></div>
        </div>
    </body>
</html>

三、左右兩側元素都自適應

嚴格來講,并不算兩個元素都是自適應,只是將上面的定寬改為由子元素撐開而已

1.浮動+BFC

原理和上面一樣,只是左側元素的寬度沒有設置,由子元素撐開

2.table布局

原理:父元素display:table,左側元素外圍用一個div包裹,該div設置display:table-cell,width:0.1%(保證最小寬度),左側元素內部設置margin-right,右側元素設置display:table-cell。

缺點:IE7及以下不支持,當display:table時,padding失效,父元素的line-height屬性失效,當display:table-cell時,margin失效。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            .parent{
                display: table;
                width: 100%;
                 
            }
            .box{
                display: table-cell;
                width: 0.1%;
            }
            .left{
                margin-right: 20px;
                background-color: red;
                height: 200px;
            }   
            .right{
                display: table-cell;
                background-color: blue;
                height: 300px;
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="box">
                <div class="left">126545453dddddddd453453453</div>
            </div>
            <div class="right">12121</div>
        </div>
    </body>
</html>

3.flex布局

    原理、缺點同上面的flex布局

4.grid布局

    原理:父元素設置display:grid,grid-template-columns:auto 1fr;(這個屬性定義列寬,auto關鍵字表示由瀏覽器自己決定長度。fr是一個相對尺寸單位,表示剩余空間做等分)grid-gap:20px(行間距)

    缺點:兼容性太差,IE11都不支持,谷歌57以上才可以

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            .parent{
                display:grid;
                grid-template-columns:auto 1fr;
                grid-gap:20px
            } 
            .left{
                background-color: red;
                height: 200px;
            }
            .right{
                height:300px;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="left">1111111111111111111111111</div>
            <div class="right"></div>
        </div>
    </body>
</html>

(學習視頻分享:css視頻教程)

以上就是css怎么實現兩列布局的詳細內容,更多請關注有啊網站百科其它相關文章!

標簽:css
  • 不喜歡(3
聲明:本文由會員轉載自互聯網、僅供學習交流,內容版權歸原作者所有,如涉作品、版權或其它疑問請聯系本站管理員刪除。

本文鏈接:http://www.yongsung168.cn/ask-css/24960.html

圖片名稱

猜你喜歡

  • css如何實現自適應

    css如何實現自適應

    在css中,可以使用calc()函數來實現自適應,只需要在元素中添加“元素:calc(100%-像素大小);”即可。calc()函數是css3新增的一個功能,通過計算來指定元素的長度,因此不用擔心添加...

    css教程2024-07-14 02:37:36
  • css怎樣實現鼠標懸浮改變圖片

    css怎樣實現鼠標懸浮改變圖片

    在css中,可以使用“:hover”偽類選擇器和background屬性實現鼠標懸浮改變圖片的效果,語法為“圖片元素:hover{background:url(鼠標懸浮后顯示圖片的路徑);}”。本...

    css教程2024-07-14 02:37:00
  • css怎么設置虛線分割線

    css怎么設置虛線分割線

    css設置虛線分割線的方法:1、利用“元素{height:0;}”語句,將元素的高設置為0;2、給高度為0的元素添加border屬性,將元素的邊框樣式設置為虛線即可,語法為“border:粗細值 da...

    css教程2024-07-14 02:36:24
  • css里solid是什么意思

    css里solid是什么意思

    solid的意思為“實心的”,是css border-style屬性的一個屬性值,表示“實線”;將border-style屬性的值設置為“solid”可以定義實線邊框。本教程操作環境:window...

    css教程2024-07-14 02:35:49
  • css怎么去掉輸入框樣式

    css怎么去掉輸入框樣式

    在css中,可以利用“border-style”屬性去掉輸入框的樣式,該屬性用于設置元素的邊框樣式,當屬性的值為“none”時,元素就會去掉邊框樣式,語法為“輸入框元素{border-style:no...

    css教程2024-07-14 02:35:12
  • 純CSS做一個煙花綻放動畫(代碼示例)

    純CSS做一個煙花綻放動畫(代碼示例)

    本篇文章帶大家使用純css做一個煙花綻放動畫,希望對大家有所幫助!最近項目上需要做一個煙花動畫,要求是隨機大小,不同地方出現,先看效果一、選擇合適的動畫什么樣的場景決定使用什么樣的動畫。比如...

    css教程2024-07-14 02:34:36
  • css樣式中有文字描邊嗎

    css樣式中有文字描邊嗎

    在css樣式中,有文字描邊樣式。可以利用“text-stroke”屬性給文字元素設置描邊樣式,該屬性可以設置文字描邊的厚度和顏色,語法為“文字元素{text-stroke:width color;}”...

    css教程2024-07-14 02:33:24
  • 詳解CSS content的使用機制,原來還可以這樣用!

    詳解CSS content的使用機制,原來還可以這樣用!

    本篇文章帶大家了解一下css中的content屬性,介紹一下content的使用場景,希望對大家有所幫助!在開發中遇到類似清除浮動、小圖標、替換內容等場景時不可避免會遇到 content 屬性,一...

    css教程2024-07-14 02:32:48
  • 手把手教你使用css3制作炫酷的導航欄效果(代碼詳解)

    手把手教你使用css3制作炫酷的導航欄效果(代碼詳解)

    之前的文章《教你使用css3給字體添加立體效果(附代碼)》中,給大家介紹了怎么使用css3給字體添加立體效果。下面本篇文章給大家介紹怎么使用css3制作炫酷的導航欄效果,我們一起看看怎么做。炫酷的...

    css教程2024-07-14 02:32:12
  • css文字水平垂直居中怎么設置

    css文字水平垂直居中怎么設置

    css設置文字水平垂直居中的方法:1、給文字元素添加“{align-items:center}”樣式使其水平方向居中;2、給文字元素添加“{justify-content:center}”樣式使其垂直...

    css教程2024-07-14 02:31:36

網友評論

最新文章
隨機文章
最新網址
熱門標簽
關注我們
\"二維碼\"

掃一掃二維碼關注我們的微信公眾號

圖片名稱
182tv午夜-182tv午夜福利在线观看-成人入口-成人软件在线观看-狠狠亚洲-狠狠夜夜-免费的黄色小视频-免费的黄网站-日本一区二区精品视频-日本一区二区久久-午夜精品福利一区二区-午夜精品福利在线-在线黄色av-在线黄色av网站-国产精品青草久久久久婷婷-久久/这里只精品热在线获取
  • <rt id="mug8y"><delect id="mug8y"></delect></rt>
    <li id="mug8y"></li>
  • <rt id="mug8y"><tr id="mug8y"></tr></rt><button id="mug8y"><dl id="mug8y"></dl></button>
    主站蜘蛛池模板: 亚洲人午夜精品免费| 黑人狂躁日本妞一区二区三区| 国产乱人伦真实精品视频| 日本成人免费在线| 国产精品久久久久久久app| 国产99在线|中文| 国产在线久久久| 亚洲国产精彩中文乱码av| 日韩久久免费电影| 精品国产福利在线| 久久久久久久999| 日韩av三级在线观看| 国产精品电影网站| 91免费的视频在线播放| 亚洲欧美日韩中文在线制服| 在线丨暗呦小u女国产精品| 久久成年人视频| 久久久久国产精品免费| 日本亚洲欧洲色α| 国产精品中文字幕久久久| 国产精品久久电影观看| 国产视频久久网| 97人人做人人爱| 亚洲人成电影在线| 日韩黄在线观看| 日韩免费观看视频| 日韩不卡在线观看| 亚洲精品电影网| 久久精品成人一区二区三区| 欧美成人午夜视频| 国产91热爆ts人妖在线| 亚洲男人天堂视频| 欧美日韩一区免费| 91精品久久久久久久久| 日韩中文视频免费在线观看| 97超级碰碰碰| 亚洲精品久久久久中文字幕二区| 美女少妇精品视频| 国产精品一区二区3区| 日韩在线免费观看视频| 欧美野外wwwxxx|