[note] CSS 盒模型|居中

內(nèi)容概述

一. 盒子模型

理解盒子模型:4個基本屬性

  • content

  • padding

  • border

  • margin

屏幕快照 2020-02-12 下午4.25.13.png

content 內(nèi)容相關(guān)屬性

  • width
    • min-width
    • max-width
  • height
    • min-height
    • max-height

padding 內(nèi)邊距相關(guān)屬性

  • padding: 上右下左
  • padding:是padding-top爱谁、padding-right封断、padding-bottom歧杏、padding-left的簡寫屬性
    • 按照順時針方向設(shè)值:top馋劈、right组题、bottom、left
    • 如果缺少left, 那么left就使用right的值
    • 如果缺少bottom, 那么bottom就使用top的

margin 外邊距相關(guān)屬性

  • margin: 上右下左
  • margin:是margin-top粗悯、margin-right蒂萎、margin-bottom、margin-left的簡寫屬性
  • 上下margin的傳遞
    • margin-top傳遞(常見)
      如果塊級元素的頂部線和父元素的頂部線重疊偿渡,那么這個塊級元素的margin-top值會傳遞給父元素
    • margin-bottom傳遞(少見臼寄,一般都是設(shè)置top)
      如果塊級元素的底部線和父元素的底部線重疊,并且父元素的高度是auto溜宽,那么這個塊級元素的margin-bottom值會傳遞給父元素
    • 如何防止出現(xiàn)傳遞問題吉拳?
      • 給父元素設(shè)置padding-top\padding-bottom
      • 給父元素設(shè)置border
      • 觸發(fā)BFC:
        • 1 設(shè)置overflow(設(shè)置為auto、hidden等都可适揉,只要不是visible就可)
        • 2 浮動也可以觸發(fā)
    • 建議
      margin一般是用來設(shè)置兄弟元素之間的間距
      padding一般是用來設(shè)置父子元素之間的間距
  • 上下margin的折疊
    • 垂直方向上相鄰的2個margin(margin-top留攒、margin-bottom)有可能會合并為1個margin煤惩,這種現(xiàn)象叫做collapse(折疊)
    • 水平方向上的margin(margin-left、margin-right)永遠(yuǎn)不會collapse
    • 折疊后最終值的計(jì)算規(guī)則:兩個值進(jìn)行比較炼邀,取較大的值
    • 如何防止margin collapse魄揉?
      • 只設(shè)置其中一個元素的margin
    • 塊級元素折疊問題看似有點(diǎn)莫名其妙,實(shí)際上還是有實(shí)用之處的
      • 比如連續(xù)段落之間的margin拭宁,恰好需要這種折疊效果

border

  • border: border-width border-style border-color

    • 邊框顏色洛退、寬度、樣式的編寫順序任意
    • border-top杰标、border-right兵怯、border-bottom、border-left
    • border:統(tǒng)一設(shè)置4個方向的邊框
  • 邊框的形狀可能是

    • 矩形腔剂、梯形媒区、三角形等形狀
    div {
      display: inline-block;
    }
    
    .box1 {
      width: 100px;
      height: 100px;
      background-color: #ffeaa7;
      border-top: 10px solid #fab1a0;
    }
    
    .box2 {
      width: 100px;
      height: 100px;
      background-color: #ffeaa7;
      border-top: 10px solid #fab1a0;
      border-left: 10px solid #6a89cc;
    }
    
    .box3 {
      border-top: 110px solid #fab1a0;
      border-left: 110px solid #6a89cc;
      width: 0;
      height: 0;
    }
    
屏幕快照 2020-02-12 下午3.40.28.png
  • 屏幕快照 2020-02-12 下午3.43.26.png
  • border實(shí)現(xiàn)其他效果

    • 比如三角效果

      .box1 {
        border-top: 100px solid #fab1a0;
        border-right: 100px solid #7bc4df;
        border-bottom: 100px solid #ffeaa7;
        border-left: 100px solid #8da5d8;
      }
      
      .box2 {
        border-top: 100px solid #fab1a0;
        border-left: 100px solid transparent;
        background-color: transparent;
        transform: rotate(45deg); 
      }
      
      .box3 {
        border-top: 100px solid #fab1a0;
        border-right: 100px solid transparent;
        border-bottom: 100px solid transparent;
        border-left: 100px solid transparent;
      }
      
      屏幕快照 2020-02-12 下午4.07.34.png
  • 第三種寫法是我自己想的,不需要像第二種那樣旋轉(zhuǎn)掸犬,方便理解

CSS屬性 - border-*-*-radius

  • border-*-*-radius
    • border---radius定義的是四分之一橢圓的半徑
      • 第1個值是水平半徑
      • 第2個值是垂直半徑(如果不設(shè)置袜漩,就跟隨水平半徑的值)
    • 還可以設(shè)置百分比
      • 參考的是border-box的寬度
  • border-radius
  • border-radius大于或等于50%時,就會變成一個圓

行內(nèi)級非替換元素的注意點(diǎn)

  • 以下屬性對行內(nèi)級非替換元素不起作用
    • width湾碎、height宙攻、margin-top、margin-bottom
  • 以下屬性對行內(nèi)級非替換元素的效果比較特殊
    • padding-top介褥、padding-bottom粘优、上下方向的border

二、盒模型的其他屬性

CSS屬性 - outline

  • outline表示元素的外輪廓
    • 不占用空間
    • 默認(rèn)顯示在border的外面
  • outline相關(guān)屬性有
    • outline-width
    • outline-style:取值跟border的樣式一樣呻顽,比如solid、dotted等
    • outline-color
    • outline:outline-width丹墨、outline-style廊遍、outline-color的簡寫屬性,跟border用法類似
  • 應(yīng)用實(shí)例
    • 調(diào)試技巧:查看網(wǎng)站的布局
      • outline: 1px solid red !important贩挣,outline不占空間喉前,不會影響原布局,border會占據(jù)空間王财,導(dǎo)致格式變化
    • 去除 a/input/textarea 元素的focus輪廓效果
      • outline: none

CSS屬性 - box-shadow

  • box-shadow屬性可以設(shè)置一個或者多個陰影
    每個陰影用<shadow>表示
    多個陰影之間用逗號,隔開卵迂,從前到后疊加

  • <shadow>的常見格式如下

    • <shadow> = inset? && <length>{2,4} && <color>?,&&表示可以不按順序
    • 第1個<length>:水平方向的偏移绒净,正數(shù)往右偏移
    • 第2個<length>:垂直方向的偏移见咒,正數(shù)往下偏移
    • 第3個<length>:模糊半徑(blur radius)
    • 第4個<length>:延伸距離
    • <color>:陰影的顏色,如果沒有設(shè)置挂疆,就跟隨color屬性的顏色
    • inset:外框陰影變成內(nèi)框陰影(很少用到)
  • 練習(xí):

    • 實(shí)現(xiàn)以下效果:左右都要有陰影
    屏幕快照 2020-02-12 下午9.30.24.png
.shadow {
  margin: 50px auto;
  width: 300px;
  height: 400px;
  /* box-shadow: -10px 10px 5px, 10px 10px 10px; */
  box-shadow: 0 10px 10px 5px rgba(0, 0, 0, .2);
}
  • 方法一:(注釋起來的)設(shè)置兩個陰影

  • 方法二:box-shadow: 0 10px 10px 5px rgba(0, 0, 0, .2);

  • CSS屬性 - text-shadow

    • 用法類似于box-shadow改览,用于給文字添加陰影效果
    • text-shadow同樣適用于::first-line下翎、::first-letter

CSS屬性 - box-sizing

  • box-sizing用來設(shè)置盒子模型中寬高的行為

    • content-box:padding、border都布置在width宝当、height外邊(W3C標(biāo)準(zhǔn)盒子模型)
      • 元素的實(shí)際占用寬度 = border + padding + width
      • 元素的實(shí)際占用高度 = border + padding + height
    • border-box:padding视事、border都布置在width、height里邊(IE8以下瀏覽器)
      • 元素的實(shí)際占用寬度 = width
      • 元素的實(shí)際占用高度 = height
    屏幕快照 2020-02-12 下午8.38.03.png

元素的水平居中顯示

  • 在一些需求中庆揩,需要元素在父元素中水平居中顯示(父元素一般都是塊級元素俐东、inline-block)
    • 行內(nèi)級元素、inline-block元素
      水平居中:在父元素中設(shè)置 text-align: center
    • 塊級元素
      水平居中:margin: 0 auto

實(shí)現(xiàn)元素靠左靠右

  • margin-left和margin-right的初始值為0订晌,此時靠左
  • 將margin-left改為auto即為靠右

垂直居中

實(shí)現(xiàn)垂直居中父元素height必須是auto
https://www.w3.org/Style/Examples/007/center.zh_CN.html
可以用絕對定位實(shí)現(xiàn)

作業(yè)

  • 課堂代碼
  • 作業(yè)一 - 商品列表 - 頁碼列表
  • 作業(yè)二: 考拉的導(dǎo)航右側(cè)
1577180164959.png
  • 筆記補(bǔ)充完善

提問

表單:

  • input中的name和value的作用
    • name會在瀏覽器 - 提交給服務(wù)器作為key
    • value普通的input, button/radio/checkbox/option
  • form元素中的常見屬性
    • action: 服務(wù)器地址(URL)
    • method: 請求方式(get/post)
    • target: 打開方式
    • enctype
    • accept-charset

元素的分類:

  • 是否可以在同一行顯示
    • 塊級元素(block level)
    • 行內(nèi)級元素(inline-level)
  • 是否會被瀏覽器替換掉
    • 替換元素(replaced elements)
    • 非替換元素(non-replaced elements)
  • display屬性常見的值:
    • block
    • inline
    • none
    • inline-block特點(diǎn)
      • 可以和其他內(nèi)容在同一行顯示
      • 設(shè)置寬度和高度

img/input/iframe -> 替換元素 ->沒有說過是inline-block

  • 可以在同一行顯示
  • 可以設(shè)置寬度和高度

inline-block

  • 可以在同一行顯示
  • 可以設(shè)置寬度和高度
  • 沒有設(shè)置寬度和高度, 寬度和高度由內(nèi)容決定

min: 最小

max: 最大

block -> block - block

inline -> inline - inline

inline-block -> inline - block

觸發(fā)BFC

  • BFC: block format context
  • 結(jié)界

如何觸發(fā)BFC:

  • 浮動可以觸發(fā)
  • 設(shè)置一個元素的overflow為非visible
    • hidden
    • auto
    • scroll

content

  • 寬度和高度

padding

margin

border

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虏辫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腾仅,更是在濱河造成了極大的恐慌乒裆,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件推励,死亡現(xiàn)場離奇詭異鹤耍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)验辞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門稿黄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跌造,你說我怎么就攤上這事杆怕。” “怎么了壳贪?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵陵珍,是天一觀的道長。 經(jīng)常有香客問我违施,道長互纯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任磕蒲,我火速辦了婚禮留潦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辣往。我一直安慰自己兔院,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布站削。 她就那樣靜靜地躺著坊萝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪塑娇。 梳的紋絲不亂的頭發(fā)上伸眶,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音突诬,去河邊找鬼扯键。 笑死睦袖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的荣刑。 我是一名探鬼主播馅笙,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼厉亏!你這毒婦竟也來了董习?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤爱只,失蹤者是張志新(化名)和其女友劉穎皿淋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恬试,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窝趣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了训柴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哑舒。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖幻馁,靈堂內(nèi)的尸體忽然破棺而出洗鸵,到底是詐尸還是另有隱情,我是刑警寧澤仗嗦,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布膘滨,位于F島的核電站,受9級特大地震影響稀拐,放射性物質(zhì)發(fā)生泄漏吏祸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一钩蚊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蹈矮,春花似錦砰逻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春刚操,著一層夾襖步出監(jiān)牢的瞬間闸翅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工菊霜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坚冀,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓鉴逞,卻偏偏與公主長得像记某,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子构捡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345