CSS-盒子模型

  • 所有的頁(yè)面元素都可以看成一個(gè)盒子盐类,并且占據(jù)著一定的頁(yè)面空間寞奸。無(wú)論是div、span在跳、還是a都是盒子枪萄,但是,圖片猫妙、表單元素一律看作是文本瓷翻,它們并不是盒子。比如說(shuō)割坠,一張圖片里并不能放東西齐帚,它自己就是自己的內(nèi)容;
  • 盒子模型是由content(內(nèi)容)韭脊、 padding(內(nèi)邊距)童谒、 margin(外邊距)、 border(邊框)這四個(gè)屬性組成的沪羔。

盒模型就是指CSS布局中的每一個(gè)元素饥伊,在瀏覽器的解釋中,都被當(dāng)做一個(gè)盒裝物蔫饰。對(duì)我們來(lái)說(shuō)琅豆,只需要理解元素在頁(yè)面中所占據(jù)的位置。

border邊框

  • 復(fù)合樣式:border:邊框大小 類型 顏色;
border:5px solid #006633篓吁;
border-width: 5px;      大小
border-style: solid;    類型
border-color: red;      顏色
border-top:0px;       /*去除上邊框*/
border-top:none;      /*去除上邊框*/
  • border-width:邊框大小
    • 四個(gè)值:上 右 下 左(順時(shí)針)
    • 三個(gè)值:上 左右 下
    • 二個(gè)值:上下 左右
    • 一個(gè)值:四個(gè)方向值相等
    • border-top-width 頂部邊框大小
    • border-right-width 右邊框大小
    • border-bottom-width 底部邊框大小
    • border-left-width 左邊框大小
  • border-style: 邊框類型
    • solid 實(shí)線
    • dashed 虛線
    • dotted 點(diǎn)線
    • double 雙邊框
    • border-top-style 頂部邊框類型
    • border-right-style 右邊框類型
    • border-bottom-style 底部邊框類型
    • border-left-style 左邊框類型
  • border-color 邊框顏色
    • 四個(gè)值:上 右 下 左(順時(shí)針)
    • 三個(gè)值:上 左右 下
    • 二個(gè)值:上下 左右
    • 一個(gè)值:四個(gè)方向顏色一樣
    • border-top-color 頂部邊框顏色
    • border-right-color 右邊框顏色
    • border-bottom-color 底部邊框顏色
    • border-left-color 左邊框顏色

padding內(nèi)邊距

邊框與內(nèi)容之間的距離

  • 四個(gè)值:上 右 下 左(順時(shí)針)
  • 三個(gè)值:上 左右 下
  • 二個(gè)值:上下 左右
  • 一個(gè)值:四個(gè)方向值相等
  • padding-top 頂部?jī)?nèi)邊距
  • padding-right 右內(nèi)邊距
  • padding-bottom 底部?jī)?nèi)邊距
  • padding-left 左內(nèi)邊距

margin外邊距

元素與其他元素的距離(邊框以外的距離)

  • margin-top 頂部外邊距
  • margin-right 右外邊距
  • margin-bottom 底部外邊距
  • margin-left 左外邊距
  • 自動(dòng)水平居中
    • margin:auto; 左右居中
    • margin:20px auto; 上下20px 左右居中
    • margin:20px auto 0; 上20px 左右居中 下0

盒子大小的計(jì)算

  • content+border+padding盒子大小 = 樣式寬 + 內(nèi)邊距 + 邊框
  • 盒子寬度 = 左border+左padding+width+右padding +右border
  • 盒子高度 = 上border+上padding+height+下padding+下border

文檔流

文檔流是瀏覽器解析網(wǎng)頁(yè)的一個(gè)重要概念茫因,對(duì)于一個(gè)XHTML網(wǎng)頁(yè),body元素下的任意元素杖剪,根據(jù)其前后順序冻押,組成了一個(gè)個(gè)上下關(guān)系,這便是文檔流盛嘿。瀏覽器根據(jù)這些元素順序去顯示他們?cè)诰W(wǎng)頁(yè)中的位置洛巢。
文檔流是瀏覽器默認(rèn)顯示規(guī)則

float浮動(dòng)

浮動(dòng)起初作用是為了讓文字環(huán)繞效果。

  • 浮動(dòng)的定義:使元素脫離文檔流 次兆,按照指定(左右)方向發(fā)生移動(dòng)稿茉,遇到父級(jí)邊界或者相鄰的浮動(dòng)元素停了下來(lái);
  • 文檔流 是文檔中可顯示對(duì)象在排列時(shí)所占用的位置/空間(在頁(yè)面中占位置);
  • 脫離文檔流 :在頁(yè)面內(nèi)中不占位置漓库,所以浮動(dòng)元素后面的元素會(huì)占據(jù)浮動(dòng)元素本來(lái)應(yīng)該所處的位置恃慧。
  • 如果水平方向上沒(méi)有足夠的空間容納浮動(dòng)元素,則轉(zhuǎn)向下一行
浮動(dòng)的一般情況
  • float:left;
  • float:right;
  • none;

如果一個(gè)元素(無(wú)論是塊級(jí)元素還是行內(nèi)元素)被設(shè)置為float之后渺蒿,那么它默認(rèn)會(huì)添加屬性display:inline-block(行內(nèi)塊級(jí)元素)痢士,也就是說(shuō)浮動(dòng)會(huì)讓元素變?yōu)閾碛袎K級(jí)屬性的行內(nèi)元素,這時(shí)它的默認(rèn)寬度不是100%蘸嘶,且給該元素設(shè)置padding-top和padding-bottom或者width良瞧、height都是有效果的。

清除浮動(dòng)
  • 什么情況下需要清除浮動(dòng)训唱?
    父元素沒(méi)有高度(指的是不設(shè)值,height:0不算)的情況下挚冤,里面的子元素都設(shè)置了浮動(dòng)况增。
    只要浮動(dòng)在一個(gè)有高度的盒子中,那么這個(gè)浮動(dòng)就不會(huì)影響后面的浮動(dòng)元素训挡。 但是一般澳骤,高度height很少出現(xiàn)。為什么澜薄?因?yàn)槟鼙粌?nèi)容撐高为肮!
  • 為什么需要清除浮動(dòng)?
    當(dāng)元素設(shè)置浮動(dòng)屬性后肤京,會(huì)對(duì)相鄰的元素產(chǎn)生影響颊艳。相鄰元素是指緊鄰后面的元素。
  • 清除浮動(dòng)辦法:
  1. overflow: hidden; 是將父元素解除浮動(dòng)的影響忘分,需要注意這個(gè)屬性不僅能清除浮動(dòng)棋枕,還有超出隱藏效果。
    給沒(méi)有設(shè)置高度的父元素設(shè)置overflow:hidden妒峦,一個(gè)父親不能被自己浮動(dòng)的兒子重斑,撐出高度。但是肯骇,只要給父親加上overflow:hidden; 那么窥浪,父親就能被兒子撐出高了。
# 時(shí)下主流笛丙,應(yīng)該用在包含浮動(dòng)元素的父元素上漾脂;
.clearfix:after{
              content:'';
              display:block;
              clear:both;
              height:0;  
           } 

css給塊級(jí)元素設(shè)上display: inline與float:left的區(qū)別是什么?
設(shè)了float:left的元素允許它的右邊存在任何元素同行顯示若债,不論是內(nèi)聯(lián)元素還是塊元素符相。但它的左邊還是不允許存在任何元素與之同行顯示,哪怕其它的元素的代碼在前,除非也給前面的元素加上float:left后啊终,才允許同行顯示镜豹。
設(shè)了display:inline的元素,允許它的前后存在其它的內(nèi)聯(lián)元素同行顯示蓝牲。如果要讓代碼在前面的塊元素與之同行顯示趟脂,則要讓前面的元素浮動(dòng)(不管是左還是右浮動(dòng))或設(shè)為display:inline,如果要讓代碼在后面的塊元素與之同行顯示例衍,則只能設(shè)為display:inline昔期,浮動(dòng)不起作用(無(wú)論左浮動(dòng)還是右浮動(dòng))。即允許內(nèi)聯(lián)同行佛玄,塊級(jí)要看情況硼一。 給塊級(jí)元素設(shè)上display:inline是解決有名的IE6中雙倍浮動(dòng)的利器。

position定位

規(guī)定元素的定位類型
  • static 靜態(tài)定位(沒(méi)有定位)梦抢,默認(rèn)值般贼。沒(méi)有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)奥吩。
  • relative 相對(duì)定位哼蛆,相對(duì)于其正常位置進(jìn)行定位。
    不會(huì)脫離文檔流霞赫;
    不影響元素本身的特性腮介;
    如果沒(méi)有定位偏移量,對(duì)元素本身沒(méi)有任何影響端衰;
  • absolute 絕對(duì)定位叠洗,最近非static定位的父級(jí)進(jìn)行定位。
    使元素完全脫離文檔流靴迫;
    沒(méi)有定位父級(jí)則相對(duì)于body(整個(gè)文檔)發(fā)生偏移惕味;
    絕對(duì)定位一般配合相對(duì)定位使用;
  • fixed 固定定位玉锌,相對(duì)于瀏覽器窗口進(jìn)行定位名挥。
方位詞
  • left: 距離左邊的距離
  • right: 距離右邊的距離
  • top:距離頂部的距離
  • bottom:距離底部的距離
  • z-index 規(guī)定定位的層級(jí)(默認(rèn)0),僅能在定位元素上奏效主守。
    值:number 值越大層級(jí)越高
    注意:方位詞相對(duì)于哪個(gè)對(duì)象偏移的

注意1:float和absolute會(huì)脫離文檔流禀倔,所以對(duì)其設(shè)置寬高,不會(huì)影響其父元素的参淫,切不要想通過(guò)設(shè)置其來(lái)?yè)伍_父級(jí)元素救湖!

注意2:需要注意的是,使用float脫離文檔流時(shí)涎才,其他盒子會(huì)無(wú)視這個(gè)元素鞋既,但其他盒子內(nèi)的文本依然會(huì)為這個(gè)元素讓出位置力九,環(huán)繞在周圍。而對(duì)于使用absolute positioning脫離文檔流的元素邑闺,其他盒子與其他盒子內(nèi)的文本都會(huì)無(wú)視它跌前。

案例

需求:實(shí)現(xiàn)如下效果
①進(jìn)入的時(shí)候界面:


image.png

②鼠標(biāo)進(jìn)入里面,兩邊“耳朵”顯示出來(lái):


image.png

③鼠標(biāo)移動(dòng)到某個(gè)圓陡舅,對(duì)應(yīng)圓亮
image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第四次作業(yè)</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }

        div{
            margin: 50px auto; /*左右居中*/
            width: 520px;
            height: 280px;
            position: relative;
        }
        ul.tab{
            width: 110px;
            height: 20px;
            border: 1px solid red;
            border-radius:20px;
            background: rgba(255,255,255,0.4);
            overflow: hidden;/*!*取消因li浮動(dòng)導(dǎo)致的橫線效果*!*/
            position: absolute;
            bottom: 10px; /*相對(duì)于父級(jí)div偏移*/
            left: 50%; /*左偏移50%*/
            margin-left: -50px;/*左邊距再往回移動(dòng)50px*/

        }
        ul.tab li{
            list-style: none;
            width: 10px;
            height: 10px;
            border: 1px solid red;
            background: white;
            border-radius: 50%;
            float: left; /*使li左浮動(dòng)*/
            margin: 5px; /*間隔拉大點(diǎn)*/

        }

        ul.btn li{
            list-style: none;
            width: 25px;
            height: 30px;
            background: rgba(0,0,0,0.2);
            text-align: center;/*使li里面的內(nèi)容水平居中和垂直居中*/
            line-height: 30px;
            font-size: 20px;
            color: white;
            position: absolute;/*因?yàn)橐玫阶笥乙粋€(gè)li抵乓,所以定位寫在li里面,它會(huì)參考最近非static定位的父級(jí)進(jìn)行定位即div*/
            top: 50%;
            margin-top: -15px;
            display:none;/*先隱藏起來(lái)*/
        }
        ul.btn li.left{
            left:0; /*相對(duì)于div左移*/
            border-radius:0 20px 20px 0;
            margin-left: -5px;
        }
        ul.btn li.right{
            right:0;/*相對(duì)于div右移*/
            border-radius:20px 0 0 20px;
            margin-right: -5px;
        }
        ul.tab li:hover{
            background: #F40;
            cursor: pointer;
        }
        div:hover ul.btn li{
            display: block;/*顯示*/
        }
        div ul.btn li:hover{
            background: rgba(0,0,0,0.7);
            cursor: pointer;
        }

    </style>
</head>
<body>
    <div>
        <img src="https://aecpm.alicdn.com/simba/img/TB1XotJXQfb_uJkSnhJSuvdDVXa.jpg" alt=""/>
        <ul class="tab">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <ul class="btn">
            <li class="left">&lt;</li>
            <li class="right">&gt;</li>
        </ul>
    </div>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末靶衍,一起剝皮案震驚了整個(gè)濱河市灾炭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颅眶,老刑警劉巖蜈出,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異涛酗,居然都是意外死亡掏缎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門煤杀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人沪哺,你說(shuō)我怎么就攤上這事沈自。” “怎么了辜妓?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵枯途,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我籍滴,道長(zhǎng)酪夷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任孽惰,我火速辦了婚禮晚岭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勋功。我一直安慰自己坦报,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布狂鞋。 她就那樣靜靜地躺著片择,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骚揍。 梳的紋絲不亂的頭發(fā)上字管,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼嘲叔。 笑死亡呵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的借跪。 我是一名探鬼主播政己,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼掏愁!你這毒婦竟也來(lái)了歇由?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤果港,失蹤者是張志新(化名)和其女友劉穎沦泌,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辛掠,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谢谦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了萝衩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片回挽。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猩谊,靈堂內(nèi)的尸體忽然破棺而出千劈,到底是詐尸還是另有隱情,我是刑警寧澤牌捷,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布墙牌,位于F島的核電站,受9級(jí)特大地震影響暗甥,放射性物質(zhì)發(fā)生泄漏喜滨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一撤防、第九天 我趴在偏房一處隱蔽的房頂上張望虽风。 院中可真熱鬧,春花似錦即碗、人聲如沸焰情。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)内舟。三九已至,卻和暖如春初橘,著一層夾襖步出監(jiān)牢的瞬間验游,已是汗流浹背充岛。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耕蝉,地道東北人崔梗。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像垒在,于是被迫代替她去往敵國(guó)和親蒜魄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案场躯? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評(píng)論 1 92
  • 前言 總括: 對(duì)于盒子模型谈为,BFC,IFC和外邊距合并等概念和問(wèn)題的總結(jié) 原文地址:從CSS盒子模型說(shuō)起 知乎專欄...
    秦至閱讀 758評(píng)論 0 3
  • 作為一枚前端開發(fā)工程師踢关,首先一定要清楚盒子模型是什么伞鲫,因?yàn)楹凶幽P褪莌tml+css中最核心的基礎(chǔ)知識(shí),理解了這個(gè)...
    喵媛閱讀 705評(píng)論 4 5
  • 1. 前言 前端圈有個(gè)“骨┪瑁”:在面試時(shí)秕脓,問(wèn)個(gè)css的position屬性能刷掉一半人,其中不乏工作四五年的同學(xué)儒搭。在...
    YjWorld閱讀 4,428評(píng)論 5 15
  • 元素 常用的塊狀元素有: 吠架、 、 ... 搂鲫、 诵肛、 、 默穴、 、 褪秀、 、 常用的內(nèi)聯(lián)元素有: 、 座慰、 坝疼、 、 闸英、 锯岖、...
    Looog閱讀 308評(píng)論 0 1