小白前端07-CSS特性/盒子模型/新增屬性


1.CSS三大特性

1.1 層疊性

  • 作用:相同選擇器設(shè)置相同樣式,此時(shí)一個樣式會覆蓋另一個沖突的樣式拟逮,主要解決樣式?jīng)_突問題檀头。
  • 層疊性原則:
    • 就近原則:樣式?jīng)_突,哪個樣式離結(jié)構(gòu)近憔古,執(zhí)行哪個樣式。
    • 樣式如果不沖突淋袖,則不重疊鸿市。
    div{
      color:black;
      font-size:12px;
    }
    div{
      color:pink;
    }
    
    顏色被后面的pink覆蓋,但是字號沒有覆蓋适贸。

1.2 繼承性

  • 作用:子標(biāo)簽會繼承父標(biāo)簽的某些樣式灸芳,如文字顏色和字號涝桅。
    • 恰當(dāng)使用繼承拜姿,可以簡化代碼烙样,降低CSS樣式的復(fù)雜性。
    • 子元素可以繼承父元素的樣式(text-蕊肥,font-谒获,line-這些元素開頭的可以繼承,以及color屬性

1.2.1 行高的繼承性

  • 行高可以不跟單位壁却,表示是當(dāng)前字號的倍數(shù)
  • 如果子元素沒有設(shè)置行高批狱,會繼承父元素的行高
  • 此時(shí)子元素的行高是:當(dāng)前子元素字號的倍數(shù)
    body {
          font: 12px/1.5 "microsoft yahei";
      }
      p{
          font-size:15px;
      }
      h3{
          font-size: 10px;
      }
    
    p標(biāo)簽的行高為 15px乘上1.5,為22.5px的行高展东,此時(shí)p標(biāo)簽繼承了父元素body的行高設(shè)置赔硫。

注意:如果子元素的字號大小小于父元素的字號,則行高不會是當(dāng)前子元素字號的倍數(shù)了盐肃,而是父元素的行高WΣ病!

1.3 優(yōu)先級

  • 作用:當(dāng)同一個元素指定多個選擇器砸王,就會有 優(yōu)先級 的產(chǎn)生推盛。
    • 選擇器相同,則執(zhí)行 層疊性
    • 選擇器不同谦铃,則根據(jù) 選擇器權(quán)重 執(zhí)行

1.3.1 選擇器權(quán)重

選擇器 選擇器權(quán)重
繼承 或 * 0,0,0,0
元素選擇器 0,0,0,1
類選擇器 0,0,1,0
id選擇器 0,1,0,0
行內(nèi)選擇器 1,0,0,0
!important 重要的 無窮大
  • 注意:
    1.權(quán)重是有4組數(shù)字組成耘成,但是不會有進(jìn)位
    2.可以理解為類選擇器(10)永遠(yuǎn)大于 元素選擇器(1)驹闰,id選擇器(100) 永遠(yuǎn)大于 類選擇器(10)瘪菌,以此類推。
    3.等級判斷從左到右嘹朗,若某一位數(shù)值相同师妙,則判斷下一位數(shù)值。
    4.繼承的權(quán)重是0骡显,若該元素沒有直接選中疆栏,不管父元素權(quán)重多高,子元素得到的權(quán)重都是0惫谤。即有直接選中元素的樣式壁顶,就執(zhí)行該樣式。

注意:對于a標(biāo)簽溜歪,由于瀏覽器默認(rèn)制定了一個樣式(藍(lán)色若专,有下劃線),所以父元素的設(shè)置對它無效蝴猪。

1.3.2 權(quán)重疊加

  • 權(quán)重疊加:如果是復(fù)合選擇器调衰,則會有權(quán)重疊加膊爪,需計(jì)算權(quán)重。
  • ul li{ ... }li{ ... }嚎莉,前面的權(quán)重為0,0,0,1+0,0,0,1=0,0,0,2米酬,后面的為0,0,0,1,則選擇前面的樣式趋箩。如.div li赃额,權(quán)重為0,0,1,0+0,0,0,1=0,0,1,1。

a:hover叫确,權(quán)重為0,0,0,1+0,0,1,0=0,0,1,1道盏,:hover是偽類選擇器口柳,權(quán)重為0,0,1,0励饵。


2.盒子模型(BOX Model)

  • 網(wǎng)頁布局
    • 首先利用CSS設(shè)置好盒子的大小肿嘲,擺放好盒子的位置
    • 最后把網(wǎng)頁元素放入盒子里面
  • 盒子模型由四部分組成:元素的內(nèi)容、邊框(border)次乓、內(nèi)邊距(padding)吓歇、外邊距(margin)。
    • 盒子里的文字和圖片等元素是 內(nèi)容區(qū)域
    • 盒子的厚度是 邊框
    • 盒子內(nèi)容與邊框的距離是 內(nèi)邊距 (類似單元格的cellpadding)
    • 盒子與盒子之間的距離是 外邊距 (類似單元格的cellspacing)

3.盒子邊框(border)

3.1 概念

  • 語法:border: border-width || border-style || border-color
    • 邊框可以綜合設(shè)置:border:2px solid red;沒有順序

font屬性的綜合寫法不一樣檬输,font:font-style font-weight font-size font-family;是固定順序照瘾。

  • 屬性:
    • border-width:邊框的粗細(xì),單位是px
    • border-style:邊框的樣式
    • border-color:邊框的顏色
  • 邊框的樣式:
    • none:(默認(rèn)值)沒有邊框丧慈,忽略邊框的寬度
    • solid:單實(shí)線
    • dashed:虛線
    • dotted:點(diǎn)線

3.2 盒子四個邊框分別設(shè)置

  • 盒子邊框分為4個:上邊框(border-top)析命、下邊框(border-bottom)、左邊框(border-left)逃默、右邊框(border-right)鹃愤。
  • 可以分別對 邊框的粗細(xì)、樣式完域、顏色設(shè)置软吐,如border-top-color:red;border-left-style:solid;等吟税。
  • 可以進(jìn)行綜合設(shè)置:如border-top:2px solid red;

注意:要想只設(shè)置一邊的邊框凹耙,首先用border:none讓所有邊框取消,再用border-bottom: ;設(shè)置自己需要的那一邊的邊框肠仪。

3.3 表格的細(xì)線邊框

  • 原因:在表格的設(shè)置中肖抱,通過表格的cellspacing="0px",將單元格與單元格之間的距離設(shè)置為0px异旧,但是兩個單元格之間的邊框會出現(xiàn)重疊意述,是邊框變粗。
  • 解決:通過CSS中的 table {border-collapse:collapse; }來取消重疊現(xiàn)象。
    • collapse 是合并的意思
    • border-collapse:collapse;表示相鄰邊框合并在一起

3.4 邊框會影響盒子實(shí)際大小

  • 當(dāng)設(shè)置邊框?qū)挾?code>border-width屬性時(shí)荤崇,會在原有的盒子大小上往外擴(kuò)大一定范圍拌屏。如div{width:200px; height:200px; border:20px solid red;},此時(shí)盒子的整體大小為240px * 240px.
  • 解決:
    1.測量盒子大小的時(shí)候术荤,不量邊框倚喂。(即只量內(nèi)部大小)
    2.如果測量的時(shí)候包含了邊框喜每,需要width/height減去邊框?qū)挾?/strong>务唐。

4.內(nèi)邊距

4.1 概念

  • padding屬性設(shè)置內(nèi)邊距雳攘,是指 內(nèi)容與邊框之間的距離带兜。

4.2 設(shè)置

  • 屬性:
    • padding-left:左內(nèi)邊距
    • padding-right:右內(nèi)邊距
    • padding-top:上內(nèi)邊距
    • padding-bottom:下內(nèi)邊距

注意:設(shè)置padding值后,盒子會變大吨灭。
這有“利”也有“弊”:
“利”: 可以利用padding內(nèi)邊距會撐開盒子刚照,保證里面的文字一直是在盒子居中顯示。
“弊”: 要想使盒子大小固定喧兄,就要減去內(nèi)邊距的大小无畔。是兩邊的距離哦

  • 簡寫:
    • 1個值:padding: 上下左右 內(nèi)邊距;
    • 2個值:padding: 上下內(nèi)邊距 左右內(nèi)邊距;
    • 3個值:padding: 上內(nèi)邊距 左右內(nèi)邊距 下內(nèi)邊距;
    • 4個值:padding: 上內(nèi)邊距 右內(nèi)邊距 下內(nèi)邊距 左內(nèi)邊距;

4.3 內(nèi)邊距不會撐開盒子的情況

  • 當(dāng)盒子本身沒有直接指定width/height屬性時(shí),此時(shí)padding不會撐開盒子吠冤。

注意:
1.誰沒有被指定浑彰,誰就不變化。若width沒被指定拯辙,height被指定了郭变,則寬度不變,高度變化涯保。
2.子元素繼承的父元素大小诉濒,不屬于被直接指定。因此即使有內(nèi)邊距夕春,子元素的大小還是父元素的大小未荒。


5.外邊距

5.1 概念

margin屬性用于設(shè)置外邊距,控制盒子盒子之間的距離及志。

5.2 設(shè)置

  • 屬性:
    • margin-top: 上外邊距
    • margin-right: 右外邊距
    • margin-bottom: 下外邊距
    • margin-left: 左外邊距
  • 簡寫:和padding屬性的簡寫一模一樣片排。

5.3 典型應(yīng)用

  • 外邊距可以讓塊級盒子 水平居中,但必須滿足兩個條件:
    • 盒子必須指定了寬度(width)
    • 盒子左右的外邊距都設(shè)置為auto
  • 常見寫法:
    • margin:0 auto; 最常見速侈。上下外邊距為0px率寡,左右居中。
    • margin:auto; 上下左右都居中锌畸。

注意: 以上只是讓塊級元素水平居中勇劣,對行內(nèi)元素或行內(nèi)塊級元素無效,因?yàn)檫@兩個元素無法設(shè)置寬度

  • 行內(nèi)和行內(nèi)塊的解決方法:
    • 給其父元素添加text-align:center即可。

5.4 外邊距合并

  • 使用margin屬性定義元素垂直外邊距時(shí)比默,可能會出現(xiàn)外邊距的合并幻捏。
    • 垂直外邊距:margin-topmargin-bottom
  • 兩種情況:
    1.相鄰塊元素垂直外邊距的合并(兄弟關(guān)系)
    2.嵌套塊元素垂直外邊距的塌陷(父子關(guān)系)

5.4.1 相鄰塊元素垂直外邊距的合并

  • 概念:當(dāng)上下兩個塊元素(兄弟關(guān)系),分別設(shè)置margin-bottommargin-top時(shí)命咐,垂直的間距并不是兩者的距離和篡九,而是取兩者中較大的值作為垂直的間距。
  • 取兩個值中較大值的現(xiàn)象稱為相鄰塊元素垂直外邊距的合并醋奠。
  • 解決:盡量只給一個盒子添加 margin 值榛臼。

5.4.2 嵌套塊元素垂直外邊距的塌陷

  • 概念:對于兩個嵌套關(guān)系(父子關(guān)系)的塊元素,父元素有上外邊距同時(shí)子元素也有上外邊距窜司,此時(shí)子元素并不會相對父元素移動沛善,因?yàn)榇藭r(shí)父元素會同時(shí)塌陷較大的外邊距值。
  • 解決方案:
    1.給父元素添加overflow:hidden; 最常用
    2.給父元素定義內(nèi)邊距塞祈。(會影響盒子大薪鸬蟆)
    3.給父元素定義邊框。(會影響盒子大幸樾健)
    還有其他方法尤蛮,如浮動、固定斯议,絕對定位的盒子不會有塌陷問題产捞。

6.清除內(nèi)外邊距

  • 原因:網(wǎng)頁元素很多帶有默認(rèn)的內(nèi)外邊距,而且不同瀏覽器默認(rèn)的也不一致哼御。因此在布局之前坯临,首先清楚下網(wǎng)頁元素的內(nèi)外邊距。
  • 方法:
    *{
        padding:0;     /*清除內(nèi)邊距*/
        margin:0;      /*清除外邊距*/
      }
    

注意: 行內(nèi)元素為了照顧兼容性艇搀,盡量只設(shè)置左右內(nèi)外邊距尿扯,不設(shè)置上下的,但是轉(zhuǎn)換成塊級和行內(nèi)塊就可以了焰雕。


7.CSS3新增屬性

7.1 圓角邊框

  • 概念:border-radius屬性設(shè)置元素的外邊框圓角衷笋。
  • 語法:border-radius: length; radius: 半徑(圓的半徑)
    • 半徑越大,圓角也就越大
    • 參數(shù)可以是數(shù)值或者百分比的形式
    • 如果是正方形矩屁,想設(shè)置成一個圓辟宗,把數(shù)值修改成高度或?qū)挾鹊囊话?/strong>,或者直接寫成50% border-radius:50%;
    • 這個屬性是簡寫屬性吝秕,可以分別設(shè)置4個值泊脐,分別代表左上角、右上角烁峭、右下角容客、左下角秕铛,也可以設(shè)置1個、2個缩挑、3個值但两,表示的和border屬性的簡寫差不多。
    • 分開寫:border-top-left-radius供置。先寫上/下谨湘,再寫左/右
  • 原理:所形成的圓角芥丧,是(橢)圓與邊框的交集所形成的效 果紧阔。

7.2 盒子陰影

  • 語法:box-shadow: h-shadow v-shadow blur spread color inset;
    • h-shadow:(必需)水平陰影的位置,允許負(fù)值续担。負(fù)值就是陰影向左移動擅耽。
    • v-shadow:(必需)垂直陰影的位置,允許負(fù)值赤拒。負(fù)值就是陰影向上移動秫筏。
    • blur:(可選)模糊距離,也就是陰影的虛實(shí)挎挖。0是實(shí)影,越大陰影越虛航夺。
    • spread:(可選)陰影尺寸蕉朵。陰影范圍的大小
    • color:(可選)陰影的顏色阳掐。一般使用rgba()表示始衅。
    • inset:默認(rèn)是外部陰影,即什么都不寫就是外部陰影缭保。內(nèi)部陰影為(intset)汛闸。

注意:
1.
對于inset屬性不能寫outset艺骂,如果寫的話诸老,就沒有陰影效果了。默認(rèn)就是外陰影钳恕。
2.盒子陰影不占空間别伏,不影響其他盒子的排列。即陰影部分可以被其他盒子擋住忧额。

7.3 文字陰影

  • 語法:text-shadow: h-shadow v-shadow blur color
    • h-shadow:(必需)水平陰影的位置厘肮,允許負(fù)值。
    • v-shadow:(必需)垂直陰影的位置睦番,允許負(fù)值类茂。
    • blur:(可選)模糊的距離耍属。
    • color:(可選)陰影的顏色。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巩检,一起剝皮案震驚了整個濱河市恬涧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碴巾,老刑警劉巖溯捆,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異厦瓢,居然都是意外死亡提揍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門煮仇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劳跃,“玉大人,你說我怎么就攤上這事浙垫∨俾兀” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵夹姥,是天一觀的道長杉武。 經(jīng)常有香客問我,道長辙售,這世上最難降的妖魔是什么轻抱? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮旦部,結(jié)果婚禮上祈搜,老公的妹妹穿的比我還像新娘。我一直安慰自己士八,他們只是感情好容燕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著婚度,像睡著了一般蘸秘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陕见,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天秘血,我揣著相機(jī)與錄音,去河邊找鬼评甜。 笑死灰粮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忍坷。 我是一名探鬼主播粘舟,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼熔脂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柑肴?” 一聲冷哼從身側(cè)響起霞揉,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晰骑,沒想到半個月后适秩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡硕舆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年秽荞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抚官。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡扬跋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凌节,到底是詐尸還是另有隱情钦听,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布倍奢,位于F島的核電站朴上,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏娱挨。R本人自食惡果不足惜余指,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望跷坝。 院中可真熱鬧,春花似錦碉碉、人聲如沸柴钻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贴届。三九已至,卻和暖如春蜡吧,著一層夾襖步出監(jiān)牢的瞬間毫蚓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工昔善, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留元潘,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓君仆,卻偏偏與公主長得像翩概,于是被迫代替她去往敵國和親牲距。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

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

  • 其實(shí)钥庇,CSS就三個大模塊: 盒子模型 牍鞠、 浮動 、 定位评姨,其余的都是細(xì)節(jié)难述。要求這三部分,無論如何也要學(xué)的非常精通...
    王玉偉的偉閱讀 1,121評論 0 2
  • 盒子模型(CSS 重點(diǎn)) css 學(xué)習(xí)三大重點(diǎn): css 盒子模型 吐句、 浮動 胁后、 定位 主題思路: 目標(biāo)...
    jovelin閱讀 1,014評論 0 0
  • 什么是盒子? CSS處理網(wǎng)頁時(shí)蕴侧,它認(rèn)為每個元素都包含在一 個不可見的盒子里择同。 我們只需要將相應(yīng)的盒子擺放到網(wǎng)頁中相...
    咻咻咻滴趙大妞閱讀 908評論 0 0
  • 一、CSS入門 1净宵、css選擇器 選擇器的作用是“用于確定(選定)要進(jìn)行樣式設(shè)定的標(biāo)簽(元素)”敲才。 有若干種形式的...
    寵辱不驚丶?xì)q月靜好閱讀 1,589評論 0 6
  • 引言 這次給大家?guī)砹薈SS-盒子模型部分的筆記,大家一同交流?? 認(rèn)識盒子模型之前择葡,先來了解一下CSS元素的分類吧...
    zhaolion閱讀 4,298評論 9 85