常見CSS布局


實現(xiàn)底部footer

  1. 外部有一個wrapper容器笙以,要min-height:100%;撐滿頁面高度堪侯。
  2. footer參考wrapper絕對定位芙粱,用bottom:0定在底部
  3. main用來放置頁面主體內(nèi)容喂窟,padding-bottom與footer高度一致,用于頁面長的時候給footer撐出高度

文本不換行省略效果

white-space: nowrap
overflow:hidden
text-overflow:ellipsis

瀑布流原理

瀑布流布局要求要進行布置的元素等寬宠漩,然后計算元素的寬度與瀏覽器寬度之比,得到需要布置的列數(shù)懊直。
創(chuàng)建一個數(shù)組扒吁,長度為列數(shù),里面的值為已布置元素的總高度(最開始為0)
然后將未布置的元素依次布置到高度最小的那一列室囊,就得到了瀑布流布局雕崩。

transition一個速記法:transition: css屬性 動畫持續(xù)時間 動畫類型 動畫延遲時間魁索;

兩列布局一列寬度固定,一列寬度不固定

方法一:把side改寫為絕對定位
.side{    
    position:absolute;left:0;top:0;    
    width:200px;height:200px;    
    background:red;    
}    
.main{    
    margin-left:210px;    
    background:blue;    
    height:200px;    
}  
方法二:把side改寫為浮動
.side{    
    width:200px;    
    height:200px;    
    float:left;    
    background:red;    
}    
   
.main{    
    margin-left:210px;    
    background:blue;    
    height:200px;    
} 
方法三:flex布局
.parent {
    display:flex; 
}       
.side{    
   width:200px;    
   height:200px;    
    background:red;    
    margin-right:10px;    
}    
.main{    
    background:blue;    
    height:200px;    
    flex:1;    
}
方法四:利用BFC不與浮動元素重疊的特性

.side {    
  width: 200px;    
  height: 100px;    
  float: left;    
  background: red;    
  margin-right: 10px;    
/* 這里沒有flex才能按自身設(shè)定的寬度渲染 */
/* 如果有了flex則寬度設(shè)定無效 */
}    
.main {    
  /* 創(chuàng)建BFC   */   
  overflow: hidden;    
  background: blue;    
  height: 100px;    
}  

如何進行水平垂直居中(行內(nèi)塊元素)

方案一:用display: table-cell;
內(nèi)部元素如果是display:block;則無效
.box{
    display: table-cell;
    vertical-align:middle;/*垂直居中*/
    text-align:center;/*水平居中*/
}
方案二:單純flex布局
.box{
    display: flex;
    justify-content:center;/*水平居中*/
    align-items:center;/*垂直居中*/
}
方案三:flex與margin:auto;結(jié)合
.box{
    display: flex;
}
button{margin: auto;}
方案四:絕對定位與0
.box{
    position:relative;/*需要父元素定位*/
}
button{
  overflow: auto; 
  margin: auto; 
  position: absolute; 
  top: 0; left: 0; bottom: 0; right: 0; 
}

三欄水平布局晨逝,其中 left 蛾默、 right 分別位于左右兩邊, left 寬度為 200px 捉貌, right 寬度為 300px 支鸡, main 處在中間,寬度自適應(yīng)趁窃。

/*三欄結(jié)構(gòu)大致如下*/
<divclass="container">
    <div class="main">main</div>
    <div class="left">left</div>
    <div class="right">right</div>
</div>
 //Flex 布局
 .container {
    display:flex;
}
.main{
    flex: 1;
    background-color:#eee;
}
.left{
    flex-basis:200PX;
    order:-1;
    background-color: lightblue;
}
.right {
    flex-basis: 300px;
    background-color:lightblue;
}
//方法二:絕對定位布局
    .container {
        position: relative;
    }
    .main {
        margin-left: 200px;
        margin-right: 300px;
    }
    
    .left {
        position: absolute;
        top: 0;
        /* 外層設(shè)置 padding 時才需要 */
        /*left: 0;*/
    }
    
    .right {
        position: absolute;
        top: 0;
        right: 0;
    }
    /* 圣杯布局 */
    .container {
        /* 這里不能使用 overflow: hidden; 清除浮動 */
        /* 不然會使 aside(.left & .right) 被 hidden */
        margin-left: 200px;
        margin-right: 160px;
    }
    
    .container::after {
        /* 借助偽元素清除浮動 */
        clear: both;
        display: block;
        content: '\200b';
        width: 0;
        height: 0;
    }
    
    .main {
        float: left;
        width: 100%;
    }
    
    .left {
        float: left;
        margin-left: -100%;
        position: relative;
        right: 200px;
    }
    
    .right {
        float: left;
        margin-right: -160px;
    }


    /*三欄的 HTML 結(jié)構(gòu)大致如下:*/
    <main>
        <div class="content-wrapper">
            <div class="content"></div>
        </div>
        <aside class="left"></aside>
        <aside class="right"></aside>
    </main>
    /* 雙飛翼布局 */
    main {
        /* 這里可以使用 overflow: hidden; 清除浮動 */
        overflow: hidden;
    }
    
    .content-wrapper {
        float: left;
        width: 100%;
    }
    
    .content {
        margin-left: 200px;
        margin-right: 160px;
    }
    
    .left {
        float: left;
        margin-left: -100%;
    }
    
    .right {
        float: left;
        margin-left: -160px;
    }
    /*三欄的 HTML 結(jié)構(gòu)大致如下:*/
    <main>
        <aside class="left"></aside>
        <aside class="right"></aside>
        <div class="content"></div>
    </main>
    /* 流體布局 */
    .left {
        float: left;
    }

    .right {
        float: right;
    }

    .content {
        margin-left: 200px;
        margin-right: 160px;
    }
/* BFC布局 */
    .left {
        float: left;
    }
    
    .right {
        float: right;
    }
    
    .content {
        overflow: hidden;
    }
                
              

三欄平分布局

考查box-sizing屬性
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
       <style type="text/css">
       #main{
        display: flex;
       }
        #left{width:100%;display:inline-block;flex:1;box-sizing:border-box}
        #center{width:100%;display:inline-block;flex:1;box-sizing:border-box}
        #right{width:100%;display:inline-block;flex:1;box-sizing:border-box}
       </style>
    </head>
    <body>
        <div id="main">
            <div id="left">left</div>
            <div id="center">center</div>
            <div id="right">right</div>
        </div>
    </body>
</html>

手寫清除浮動的幾種方式

方法一:添加空div標簽 
clear:both
方法二:父級標簽定義偽類after
.float-div::after{
            display: block;
            clear: both;
            content: '';
            height: 0px;
        }
上一級父元素:zoom:1牧挣;//解決IE67兼容問題
方法三:父級標簽overflow:hidden
 .float-div{
            overflow:hidden;
        }

Meta標簽的使用

meta標簽的使用
meta標簽共有兩個屬性:http-equiv和name;
name屬性
    name屬性主要用于描述網(wǎng)頁,與之對應(yīng)的屬性值為content醒陆,content中的內(nèi)容主要是便于搜索引擎機器人查找信息和分類信息用的瀑构。其中name屬性主要有以下幾種參數(shù):
Keywords(關(guān)鍵字)
舉例:<meta name ="keywords" content="science, education,culture,politics,ecnomics,relationships, entertaiment, human">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
http-equiv屬性
    http-equiv顧名思義刨摩,相當于http協(xié)議中文件頭的作用寺晌,它可以向瀏覽器傳回一些有用的信息,以幫助正確和精確地顯示網(wǎng)頁內(nèi)容澡刹,與之對應(yīng)的屬性值為content呻征。
其中http-equiv屬性主要有以下幾種參數(shù):
content-Type(顯示字符集的設(shè)定)
用法:<meta http-equiv="content-Type" content="text/html; charset=gb2312">
Expires(期限)
用法:<meta http-equiv="expires" content="Fri, 12 Jan 2001 18:18:18 GMT">
注意:必須使用GMT的時間格式。
Pragma(cache模式)
說明:禁止瀏覽器從本地計算機的緩存中訪問頁面內(nèi)容罢浇。
用法:<meta http-equiv="Pragma" content="no-cache">
Refresh(刷新)
說明:自動刷新并指向新頁面陆赋。
用法:<meta http-equiv="Refresh" content="2; URL=http://www.root.net">
注意:其中的2是指停留2秒鐘后自動刷新到URL網(wǎng)址。
Set-Cookie(cookie設(shè)定)
說明:設(shè)置cookie, 如果網(wǎng)頁過期嚷闭,那么存盤的cookie將被刪除攒岛。
用法:<meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Friday, 12-Jan-2001 18:18:18 GMT; path=/">
注意:必須使用GMT的時間格式胞锰。
Window-target(顯示窗口的設(shè)定)
說明:強制頁面在當前窗口以獨立頁面顯示灾锯。
用法:<meta http-equiv="Window-target" content="_top">
注意:用來防止別人在框架里調(diào)用自己的頁面。

媒體查詢

@media screen and (min-width:600px) {
  nav {
    float: left;
    width: 25%;
  }
  section {
    margin-left: 25%;
  }
}
@media screen and (max-width:599px) {
  nav li {
    display: inline;
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗅榕,一起剝皮案震驚了整個濱河市挠进,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌誊册,老刑警劉巖领突,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異案怯,居然都是意外死亡君旦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來金砍,“玉大人局蚀,你說我怎么就攤上這事∷〕恚” “怎么了琅绅?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鹅巍。 經(jīng)常有香客問我千扶,道長,這世上最難降的妖魔是什么骆捧? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任澎羞,我火速辦了婚禮,結(jié)果婚禮上敛苇,老公的妹妹穿的比我還像新娘妆绞。我一直安慰自己,他們只是感情好枫攀,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布括饶。 她就那樣靜靜地躺著,像睡著了一般来涨。 火紅的嫁衣襯著肌膚如雪巷帝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天扫夜,我揣著相機與錄音,去河邊找鬼驰徊。 笑死笤闯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的棍厂。 我是一名探鬼主播颗味,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼牺弹!你這毒婦竟也來了浦马?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤张漂,失蹤者是張志新(化名)和其女友劉穎晶默,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體航攒,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡磺陡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片币他。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡坞靶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蝴悉,到底是詐尸還是另有隱情彰阴,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布拍冠,位于F島的核電站尿这,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏倦微。R本人自食惡果不足惜妻味,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望欣福。 院中可真熱鬧责球,春花似錦、人聲如沸拓劝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郑临。三九已至栖博,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厢洞,已是汗流浹背仇让。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躺翻,地道東北人丧叽。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像公你,于是被迫代替她去往敵國和親踊淳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 溫馨提示:本文較長陕靠,圖片較多迂尝,本來是想寫一篇 CSS 布局方式的,但是奈何 CSS 布局方式種類太多并且實現(xiàn)...
    sunshine小小倩閱讀 3,139評論 0 59
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案剪芥? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,754評論 1 92
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color垄开,font,text-align税肪,li...
    love2013閱讀 2,315評論 0 11
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color说榆,font虚吟,text-align,li...
    wzhiq896閱讀 1,756評論 0 2
  • 常見的兩列布局 float浮動布局 flex布局 常見的三列布局 float浮動布局 position定位 fle...
    阿爾法乀閱讀 347評論 0 0