html入門(四)盒子模型

盒子模型

CSS處理網(wǎng)頁時费尽,它認為每個元素都包含在一 個不可見的盒子里帽撑。
為什么要想象成盒子呢褒搔?因為如果把所有的元 素都想象成盒子脸甘,那么我們對網(wǎng)頁的布局就相 當于是擺放盒子恳啥。
我們只需要將相應的盒子擺放到網(wǎng)頁中相應的 位置即可完成網(wǎng)頁的布局。

  1. 一個盒子我們會分成幾個部分:
    內(nèi)容區(qū)(content)
    內(nèi)邊距(padding)
    邊框(border)
    外邊距(margin)


    圖片1.png

內(nèi)容區(qū)

內(nèi)容區(qū)指的是盒子中放置內(nèi)容的區(qū)域丹诀,也就是元素 中的文本內(nèi)容钝的,子元素都是存在于內(nèi)容區(qū)中的翁垂。
如果沒有為元素設置內(nèi)邊距和邊框,則內(nèi)容區(qū)大小 默認和盒子大小是一致的硝桩。
通過width和height兩個屬性可以設置內(nèi)容區(qū)的大 小沮峡。
width和height屬性只適用于塊元素。

內(nèi)邊距

顧名思義亿柑,內(nèi)邊距指的就是元素內(nèi)容區(qū)與邊框以內(nèi) 的空間。
默認情況下width和height不包含padding的大小棍弄。
使用padding屬性來設置元素的內(nèi)邊距望薄。
例如:
padding:10px 20px 30px 40px
這樣會設置元素的上、右呼畸、下痕支、左四個方向的內(nèi)邊距。
padding:10px 20px 30px;
分別指定上蛮原、左右卧须、下四個方向的內(nèi)邊距
padding:10px 20px;
分別指定上下、左右四個方向的內(nèi)邊距
padding:10px;
同時指定上左右下四個方向的內(nèi)邊距
同時在css中還提供了padding-top儒陨、padding-right花嘶、padding-
left、padding-bottom分別用來指定四個方向的內(nèi)邊距蹦漠。

邊框

  1. 可以在元素周圍創(chuàng)建邊框椭员,邊框是元素可見框的最外部。
    可以使用border屬性來設置盒子的邊框:
    border:1px red solid;
    上邊的樣式分別指定了邊框的寬度笛园、顏色和樣式隘击。
    也可以使用border-top/left/right/bottom分別指定上右下左 四個方向的邊框。
    和padding一樣研铆,默認width和height并包括邊框的寬度埋同。
    如果要指定上下左的邊框,可以這么描述棵红;
border: red solid 10px;
border-right:none
  1. 邊框的樣式
    邊框可以設置多種樣式:
    none(沒有邊框)
    dotted(點線)
    dashed(虛線)
    solid(實線)
    double(雙線)
    groove(槽線)
    ridge(脊線)
    inset(凹邊)
    outset(凸邊)

外邊距

外邊距是元素邊框與周圍元素相距的空間凶赁。
使用margin屬性可以設置外邊距。
用法和padding類似窄赋,同樣也提供了四個方向的 margin-top/right/bottom/left哟冬。
當將左右外邊距設置為auto時,瀏覽器會將左右外 邊距設置為相等忆绰,所以這行代碼margin:0 auto可 以使元素居中浩峡。

display

我們不能為行內(nèi)元素設置width、height错敢、 margin-top和margin-bottom翰灾。
我們可以通過修改display來修改元素的性 質(zhì)缕粹。
可選值:
block:設置元素為塊元素
inline:設置元素為行內(nèi)元素
inline-block:設置元素為行內(nèi)塊元素
none:隱藏元素(元素將在頁面中完全消失)

overflow

當相關(guān)標簽里面的內(nèi)容超出了樣式的寬度 和高度是,就會發(fā)生一些奇怪的事情纸淮,瀏 覽器會讓內(nèi)容溢出盒子平斩。
可以通過overflow來控制內(nèi)容溢出的情況。
可選值:
visible:默認值
scroll:添加滾動條
auto:根據(jù)需要添加滾動條
hidden:隱藏超出盒子的內(nèi)容

文檔流

文檔流指的是文檔中可現(xiàn)實的對象在排列時所占用的位置咽块。
將窗體自上而下分成一行行绘面,并在每行中按從左至右的順序排 放元素,即為文檔流侈沪。
也就是說在文檔流中元素默認會緊貼到上一個元素的右邊揭璃,如 果右邊不足以放下元素,元素則會另起一行亭罪,在新的一行中繼 續(xù)從左至右擺放瘦馍。
這樣一來每一個塊元素都會另起一行,那么我們?nèi)绻朐谖臋n 流中進行布局就會變得比較麻煩应役。

浮動

所謂浮動指的是使元素脫離原來的文本流情组,在父元素中浮動起來。
浮動使用float屬性箩祥。
可選值:
none:不浮動
left:向左浮動
right:向右浮動
塊級元素和行內(nèi)元素都可以浮動院崇,當一個行內(nèi)元素浮動以后將會自動變?yōu)橐?個塊級元素。
當一個塊級元素浮動以后袍祖,寬度會默認被內(nèi)容撐開亚脆,所以當漂浮一個塊級元 素時我們都會為其指定一個寬度。
當一個元素浮動以后盲泛,其下方的元素會上移濒持。元素中的內(nèi)容將會圍繞 在元素的周圍。
浮動會使元素完全脫離文本流寺滚,也就是不再在文檔中在占用位置柑营。
元素設置浮動以后,會一直向上漂浮直到遇到父元素的邊界或者其他 浮動元素村视。
元素浮動以后即完全脫離文檔流官套,這時不會再影響父元素的高度。也 就是浮動元素不會撐開父元素蚁孔。
浮動元素默認會變?yōu)閴K元素奶赔,即使設置display:inline以后其依然是個 塊元素。

清除浮動

clear屬性可以用于清除元素周圍的浮動對元素的影響杠氢。
也就是元素不會因為上方出現(xiàn)了浮動元素而改變位置站刑。
可選值:
left:忽略左側(cè)浮動
right:忽略右側(cè)浮動
both:忽略全部浮動
none:不忽略浮動,默認值

解決高度坍塌的方法

方法一(推薦使用):

.clearfix:after{
            /*添加一個內(nèi)容*/
            content: "";
            /*轉(zhuǎn)換為一個塊元素*/
            display: block;
            /*清除兩側(cè)的浮動*/
            clear: both;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>解決高度塌陷</title>
    <style type="text/css">
        .box1{
            border: 1px solid red;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            float: left;
        }
        /*通過after偽類鼻百,選中box1的后邊*/
        /*
        可以通過after偽類向元素的最后添加一個空白的塊元素绞旅,然后對其清除浮動摆尝,
        這樣做和添加一個div的原理一樣,可以達到一個相同的效果因悲,
        而且不會在頁面中添加多余的div堕汞,這是我們最推薦使用的方式,幾乎沒有副作用
        */
        .clearfix:after{
            /*添加一個內(nèi)容*/
            content: "";
            /*轉(zhuǎn)換為一個塊元素*/
            display: block;
            /*清除兩側(cè)的浮動*/
            clear: both;
        }
        /*在IE6中不支持after偽類,所以在IE6中還需要使用hasLayout來處理*/
        .clearfix{
            zoom: 1;
        }
    </style>
</head>
<body>
    <div class="box1 clearfix">
        <div class="box2"></div>
    </div>
</body>
</html>

方法二(不推薦):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>解決高度塌陷</title>
    <style type="text/css">
        .box1{
            border: 1px solid red;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            float: left;
        }
        /*
        解決高度塌陷方案二:
            可以直接在高度塌陷的父元素的最后晃琳,添加一個空白的div讯检,由于這個div并沒有浮動,所以他是可以撐開父元素的高度的
            然后再對其進行清除浮動卫旱,這樣可以通過這個空白的div來撐開父元素的高度视哑,基本沒有副作用
            使用這種方式雖然可以解決問題,但是會在頁面中添加多余的結(jié)構(gòu)
        */
        .clear{
            clear: both;
        }
    </style>
</head>
<body>
    <div class="box1">
        <div class="box2"></div>
        <div class="clear"></div>
    </div>
</body>
</html>

根據(jù)W3C的標準誊涯,在頁面中元素都一個隱含的屬性叫做Block Formatting Context(塊的格式化環(huán)境)簡稱BFC,該屬性可以設置打開或者關(guān)閉蒜撮,默認是關(guān)閉的
當開啟元素的BFC以后暴构,元素將會具有如下的特性:
1.父元素的垂直外邊距不會和子元素重疊
2.開啟BFC的元素不會被浮動元素所覆蓋
3.開啟BFC的元素可以包含浮動的子元素
如何開啟元素的BFC
1.設置元素浮動
- 使用這種方式開啟,雖然可以撐開父元素段磨,但是會導致父元素的寬度丟失取逾,而且使用這種方式也會導致下邊的元素上移,不能解決問題
2.設置元素絕對定位
3.設置元素為inline-block
- 可以解決問題苹支,但是會導致寬度丟失砾隅,不推薦使用這種方式
4.將元素的overflow設置為一個非visible的值
推薦方式:將overflow設置為hidden是副作用最小的開啟BFC的方式

定位

position屬性可以控制Web瀏覽器如何以 及在何處顯示特定的元素。
可以使用position屬性把一個元素放置到網(wǎng) 頁中的任何位置债蜜。
偏移量一般選擇兩個晴埂,水平方向選一個,垂直方向選一個
可選值:
static:靜態(tài)定位
relative:相對定 位 不會脫離文檔流
absolute:絕對定位 脫離文檔流
fixed:固定定位

  1. 相對定位
    每個元素在頁面的文檔流中都有一個自然位置寻定。相 對于這個位置對元素進行移動就稱為相對定位儒洛。周 圍的元素完全不受此影響。
    當將position屬性設置為relative時狼速,則開啟了元素 的相對定位琅锻。
    當開啟了相對定位以后,可以使用top向胡、right恼蓬、 bottom、left四個屬性對元素進行定位僵芹。
    相對定位的特點
    如果不設置元素的偏移量处硬,元素位置不會發(fā)生改變。
    相對定位不會使元素脫離文本流拇派。元素在文本流中 的位置不會改變郁油。
    相對定位不會改變元素原來的特性本股。
    相對定位會使元素的層級提升,使元素可以覆蓋文 本流中的元素桐腌。
  2. 絕對定位
    絕對定位指使元素相對于html元素或離他最近 的祖先定位元素進行定位拄显。
    當將position屬性設置為absolute時,則開啟 了元素的絕對定位案站。
    當開啟了絕對定位以后躬审,可以使用top、right蟆盐、 bottom承边、left四個屬性對元素進行定位。
    絕對定位的特點
    絕對定位會使元素完全脫離文本流石挂。
    絕對定位的塊元素的寬度會被其內(nèi)容撐開博助。
    絕對定位會使行內(nèi)元素變成塊元素。
    一般使用絕對定位時會同時為其父元素指定一 個相對定位痹愚,以確保元素可以相對于父元素進 行定位富岳。
    固定定位
    固定定位的元素會被鎖定在屏幕的某個位置上,當 訪問者滾動網(wǎng)頁時拯腮,固定元素會在屏幕上保持不動窖式。
    當將position屬性設置為fixed時,則開啟了元素的 固定定位动壤。
    當開啟了固定定位以后萝喘,可以使用top、right琼懊、
    bottom阁簸、left四個屬性對元素進行定位。
    固定定位的其他特性和絕對定位類似哼丈。
    z-index
    當元素開啟定位以后就可以設置z-index這 個屬性强窖。沒有開啟定位不可以使用z-index
    這個屬性可以提升定位元素所在的層級。
    z-index可以指定一個整數(shù)作為參數(shù)削祈,值越 大元素顯示的優(yōu)先級越高翅溺,也就是z-index 值較大的元素會顯示在網(wǎng)頁的最上層。
    父元素層級高于子元素髓抑,但不能用z-index蓋住子元素咙崎。

相對定位是相對于自己原來的位置進行定位,絕對定位指使元素相對于html元素或離他最近 的祖先定位元素進行定位吨拍,固定定位是相對于網(wǎng)頁窗口定位褪猛。

opacity: 05.;設置透明0.5
此方法不兼容ie6,所以要用以下方法:
filter: alpha(opacity=50)羹饰;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伊滋,一起剝皮案震驚了整個濱河市碳却,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌笑旺,老刑警劉巖昼浦,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異筒主,居然都是意外死亡关噪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門乌妙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來使兔,“玉大人,你說我怎么就攤上這事藤韵∨傲ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵泽艘,是天一觀的道長欲险。 經(jīng)常有香客問我,道長悉盆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任馋吗,我火速辦了婚禮焕盟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宏粤。我一直安慰自己脚翘,他們只是感情好,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布绍哎。 她就那樣靜靜地躺著来农,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崇堰。 梳的紋絲不亂的頭發(fā)上沃于,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音海诲,去河邊找鬼繁莹。 笑死,一個胖子當著我的面吹牛特幔,可吹牛的內(nèi)容都是我干的咨演。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼蚯斯,長吁一口氣:“原來是場噩夢啊……” “哼薄风!你這毒婦竟也來了饵较?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤遭赂,失蹤者是張志新(化名)和其女友劉穎循诉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嵌牺,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡打洼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逆粹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片募疮。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖僻弹,靈堂內(nèi)的尸體忽然破棺而出阿浓,到底是詐尸還是另有隱情,我是刑警寧澤蹋绽,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布芭毙,位于F島的核電站,受9級特大地震影響卸耘,放射性物質(zhì)發(fā)生泄漏退敦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一蚣抗、第九天 我趴在偏房一處隱蔽的房頂上張望侈百。 院中可真熱鬧,春花似錦翰铡、人聲如沸钝域。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽例证。三九已至,卻和暖如春迷捧,著一層夾襖步出監(jiān)牢的瞬間织咧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工漠秋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烦感,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓膛堤,卻偏偏與公主長得像手趣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案绿渣? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,737評論 1 92
  • 學會使用CSS選擇器熟記CSS樣式和外觀屬性熟練掌握CSS各種選擇器熟練掌握CSS各種選擇器熟練掌握CSS三種顯示...
    七彩小鹿閱讀 6,306評論 2 66
  • 一朝群、CSS入門 1、css選擇器 選擇器的作用是“用于確定(選定)要進行樣式設定的標簽(元素)”中符。 有若干種形式的...
    寵辱不驚丶歲月靜好閱讀 1,589評論 0 6
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5姜胖? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 27,450評論 1 45
  • 概述 在網(wǎng)易云課堂學習李南江老師的《從零玩轉(zhuǎn)HTML5前端+跨平臺開發(fā)》時淀散,所整理的筆記右莱。筆記內(nèi)容為根據(jù)個人需求所...
    墨荀閱讀 2,332評論 0 7