2020-0324嵌套、選擇器、單位、盒子模型盒子

嵌套規(guī)則

  • 在網(wǎng)頁(yè)中,元素可以分成兩大類

塊元素和行內(nèi)元素

塊元素

在網(wǎng)頁(yè)中獨(dú)占一行

  • h1~h6 header main footer article nav section ul li...
  • 塊元素主要用來(lái)將網(wǎng)頁(yè)區(qū)分不認(rèn)同的區(qū)域
  • 最常用的塊元素就是div,h,p,div沒(méi)有語(yǔ)義,就表示一個(gè)獨(dú)立的區(qū)域

行內(nèi)元素(inline)

  • 在網(wǎng)頁(yè)中不會(huì)獨(dú)占一行,只會(huì)占有自身大小

  • 學(xué)習(xí)過(guò)的行內(nèi)標(biāo)簽<a></a>

  • 行內(nèi)元素永遠(yuǎn)包裹文字,標(biāo)識(shí)文字所代表的意義

  • 最常用的行內(nèi)元素就是span,span本身沒(méi)有語(yǔ)義,就標(biāo)識(shí)一段文字

  • 替換元素


    替換元素.png

1.替換元素和行內(nèi)元素類似,但是替換元素不會(huì)直接在網(wǎng)頁(yè)中顯示,而是會(huì)被其他內(nèi)容替換

  • 學(xué)習(xí)過(guò)的替換元素
    1.img iframe audio video..都不會(huì)獨(dú)占一行
    p元素里面不能出現(xiàn)任何塊元素
    2.png

    可以這樣
    3.png

    這樣不行
    4.png

元素的嵌套規(guī)則

  • 通常情況下塊元素可以嵌套,塊元素可以嵌套塊元素,也可以嵌套行內(nèi)元素,說(shuō)白了塊里面什么都能放
  • 在行內(nèi)元素只能嵌套行內(nèi)元素,不能嵌套塊元素
(特殊情況)
  • P元素里面不能出現(xiàn)任何的塊元素,就算在p里面放塊元素,瀏覽器也會(huì)自動(dòng)把塊元素?fù)癯鰜?lái),會(huì)導(dǎo)致代碼結(jié)構(gòu)出問(wèn)題,后期不好維護(hù)
  • 在a元素中可以嵌套除了它本身以外的任意元素

繼承

樣式的繼承

可以這樣

5.png

6.png

樣式會(huì)繼承,并不是所有的樣式都會(huì)被繼承,瀏覽器都設(shè)置好了,該繼承的都會(huì)繼承

  • 和現(xiàn)實(shí)生活中后代可以繼承祖先的財(cái)產(chǎn)一樣
  • 在CSS中后代元素也可以繼承到祖先元素上的樣式
  • 當(dāng)我們?yōu)樽嫦仍卦O(shè)置樣式時(shí),其后代元素也會(huì)應(yīng)用上相同的樣式
  • 繼承的存在大大的簡(jiǎn)化了我們的開(kāi)發(fā)
    • 有了繼承后我們可以將樣式統(tǒng)一設(shè)置到一個(gè)元素上,這樣它的所有后代元素都可以繼承該樣式
    • 并不是所有的樣式都會(huì)被繼承
    • 比如:背景相關(guān),布局相關(guān)的都不會(huì)被繼承,background-color默認(rèn)值是(transparent) 透明的,沒(méi)有給行內(nèi)元素設(shè)置背景顏色,所以行內(nèi)元素背景顏色還是透明,所以背景圖片和背景顏色是不會(huì)繼承的

選擇器的權(quán)重

id,類,標(biāo)簽選擇器都選擇同一個(gè)元素,都改同樣的樣式,這種是樣式?jīng)_突,

7.png

給個(gè)樣式
8.png

如果都選中的同一個(gè)顏色,都改的是顏色,樣式會(huì)沖突,哪個(gè)樣式會(huì)生效由選擇器的優(yōu)先級(jí)決定
寫個(gè)內(nèi)聯(lián)樣式
9.png

不建議使用內(nèi)聯(lián)樣式,如果寫了內(nèi)聯(lián)樣式,上面所有選擇器都會(huì)失效

樣式的沖突

寫兩個(gè)選擇器,優(yōu)先級(jí)靠前.png
這個(gè)優(yōu)先級(jí)是單獨(dú)計(jì)算.png
這兩個(gè)是等價(jià)的.png
  • 當(dāng)我們通過(guò)不同的選擇器選中同一個(gè)元素,同時(shí)為同一個(gè)樣式設(shè)置不同的值,比如顏色都設(shè)成不同的顏色,此時(shí)就發(fā)生了樣式?jīng)_突
  • 當(dāng)發(fā)生樣式?jīng)_突時(shí),那個(gè)樣式會(huì)生效由選擇器的優(yōu)先級(jí)決定

選擇器的優(yōu)先級(jí)(選擇器的權(quán)重)

  • 內(nèi)聯(lián)樣式優(yōu)先級(jí)是 1,0,0,0

  • id選擇器優(yōu)先級(jí)是 0,1,0,0

  • 類和偽類選擇優(yōu)先級(jí)是 0,0,1,0

  • 元素選擇器優(yōu)先級(jí)是 0,0,0,1

  • 通配選擇器 沒(méi)有優(yōu)先級(jí)
    (不建議使用內(nèi)聯(lián)樣式,如果寫了內(nèi)聯(lián)樣式,上面所有選擇器都會(huì)失效)

    這時(shí)候優(yōu)先級(jí)一樣,橙色生效.png

    當(dāng)寫完樣式之后發(fā)現(xiàn)樣式?jīng)]生效,有可能是優(yōu)先級(jí)比較低
    紅色生效,因?yàn)橥ㄅ溥x擇器沒(méi)有優(yōu)先級(jí).png

  • 優(yōu)先級(jí)的計(jì)算需要將多個(gè)選擇器加在一起計(jì)算

  • 選擇的分組都是單獨(dú)計(jì)算

  • 優(yōu)先級(jí)的計(jì)算是不會(huì)超過(guò)最大的數(shù)量的級(jí)

  • 如果兩個(gè)選擇器的優(yōu)先級(jí)一樣,則優(yōu)先顯示靠下的樣式


    如果為一個(gè)樣式添加了!important.png
  • 如果為一個(gè)樣式添加了!important 則該樣式會(huì)自動(dòng)獲得一個(gè)最高的優(yōu)先級(jí),優(yōu)先于所有的樣式顯示甚至超過(guò)內(nèi)聯(lián)樣式,慎用!
    繼承的樣式?jīng)]有優(yōu)先級(jí),隨便寫一個(gè)都可以覆蓋繼承的樣式

偽類的順序

  • :link
  • :visited
  • :hover
  • :active
    一般lin和visited很少用,如果要用一定要寫在hover和active前面
    一般看兩種狀態(tài)會(huì)不會(huì)同時(shí)出現(xiàn)在同一個(gè)元素上,如果會(huì),就會(huì)有沖突問(wèn)題
    10.png

    11.png

    這兩種可能同時(shí)出現(xiàn),點(diǎn)擊就不會(huì)變顏色,誰(shuí)在后邊誰(shuí)顯示.png

單位

  • 長(zhǎng)度單位(px)

    • 像素,計(jì)算機(jī)的屏幕是由一個(gè)一個(gè)發(fā)光的小點(diǎn)構(gòu)成
    • 每一個(gè)小點(diǎn)都是一個(gè)像素,像素越多,屏幕越清晰
    • 百分比,會(huì)自動(dòng)依據(jù)父元素的指定屬性去計(jì)算大小
      • 使用百分比作為單位時(shí),元素可以根據(jù)父元素的大小自動(dòng)改變


        這里指的父元素的50%.png
  • 顏色單位

  1. 顏色名
  • CSS中直接使用顏色名來(lái)表示各種顏色
  • red orange yellow green blue tomato ...用顏色名有很多限制
  1. rgb值
  • RGB值就是通過(guò)紅綠藍(lán)三種顏色調(diào)配出其他各種不同顏色

  • RGB(紅色,綠色,藍(lán)色)不是美術(shù)的三元色,這個(gè)是光的三元色,是把一個(gè)一個(gè)顏色轉(zhuǎn)換成數(shù)字,不方便我們的識(shí)別,數(shù)字不方便人類識(shí)別,方便工具識(shí)別

  • 每種值的取值范圍0-255之間


    image.png
  • 三個(gè)都是255得到一個(gè)白色,

  • 值也可以取在0%-100%之間,一般就用數(shù)值就行

十六進(jìn)制RGB值

  • 使用十六進(jìn)制的數(shù)字來(lái)表示顏色
    0 1 2 3 4 5 6 7 8 9 a b c d e f 1a ..1f,2a..2f,3a...3f,4a...4f,5a...5f單個(gè)數(shù)字16個(gè),最大的數(shù)是f
  • 語(yǔ)法


    語(yǔ)法.png

紅色綠色藍(lán)色

顏色取值范圍00-ff

  • 如果顏色是兩位兩位重復(fù)的,則可以省略

盒模型

盒子模型、盒模型、框模型(box model)

  • 網(wǎng)頁(yè)布局面臨的兩個(gè)問(wèn)題,一個(gè)是元素的大小,一個(gè)是元素的位置
  • 在CSS中將頁(yè)面中的每一個(gè)元素都設(shè)置一個(gè)矩形的盒子,所有元素都是矩形,這樣網(wǎng)頁(yè)的布局就變成將不同的矩形擺放到不同位置,調(diào)整位置和大小達(dá)到不同的顯示效果

每一個(gè)元素從內(nèi)到外由以下幾個(gè)部分組成:

  • 內(nèi)容區(qū)(content)
  • 內(nèi)邊距(padding) 內(nèi)容區(qū)和邊框的距離
  • 邊框(border)
  • 外邊距(margin)


    盒子模型.png
  • 每個(gè)元素最內(nèi)部的區(qū)域稱為內(nèi)容區(qū)
  • 內(nèi)容區(qū)相當(dāng)于一個(gè)盒子的容積,一個(gè)元素的子元素和它文本內(nèi)容都在元素的內(nèi)容區(qū)中排列
  • 內(nèi)容區(qū)的大小決定了一個(gè)元素能裝多少東西

內(nèi)容區(qū)的大小需要通過(guò)兩個(gè)屬性設(shè)置

  • width 設(shè)置內(nèi)容區(qū)的寬度
  • height 設(shè)置內(nèi)容區(qū)的高度


    內(nèi)容區(qū)的大小.png

邊框(border)

  • 邊框是盒子可見(jiàn)框的最邊緣
  • 要設(shè)置邊框需要使用三個(gè)屬性
    • 邊框?qū)挾?border-width
    • 邊框的顏色 border-color
    • 邊框的樣式border-style
      10像素紅色實(shí)線邊框.png

      width和height只是設(shè)置內(nèi)容區(qū),影響盒子大小的還有內(nèi)邊距和邊框?qū)挾?/strong>
  • 邊框(border)
    • 盒子可見(jiàn)框的邊緣,也會(huì)影響盒子可見(jiàn)框的大小

- 邊框的寬度

  • 使用border-width來(lái)設(shè)置邊框?qū)挾?/li>
  • 該屬性可以同時(shí)指定四個(gè)邊框的寬度,也可以分別指定
  • 如果指定了四個(gè)值:
    • 四個(gè)值分別:上 右 下 左
  • 如果指定了三個(gè)值:
    • 分別表示:上 左右 下
  • 如果指定兩個(gè)值:
    • 分別表示:上下 左右
  • 如果指定一個(gè)值
    • 則四個(gè)方向都是該值
  • 除了border-width,在CSS中提供了border-xxx-width
    • xxx可以是top right bottom left,這種比較麻煩,所以用的比較少

邊框的顏色border-color

  • 可以同時(shí)或者分別指定四個(gè)邊的顏色,邊實(shí)際上是個(gè)梯形
  • 同樣有四個(gè)border-xxx-color用來(lái)單獨(dú)設(shè)置某個(gè)邊的顏色

邊框的樣式(border-style)

  • solid 表示實(shí)線
  • dotted 表示點(diǎn)狀
  • dashed 表示虛線
  • double 表示雙線
  • 可以同時(shí)或者分別設(shè)置四個(gè)方向的邊框


    12.png

border

  • 邊框的簡(jiǎn)寫屬性,通過(guò)border可以同時(shí)設(shè)置四個(gè)邊框的所有樣式,并且沒(méi)有順序要求
    13.png

    缺點(diǎn)就是設(shè)置都是四個(gè)邊框
    也可以單獨(dú)設(shè)置一個(gè)邊
    單獨(dú)設(shè)置一個(gè)邊的樣式.png

內(nèi)邊距(padding)

  • 邊框和內(nèi)容區(qū)之間的距離
  • 會(huì)影響到盒子的可見(jiàn)框大小,三個(gè)因素決定(內(nèi)容區(qū) 內(nèi)邊距 邊框)
    • padding-top
    • padding-right
    • padding-left
    • padding-bottom
  • 元素背景顏色,默認(rèn)是會(huì)延伸到內(nèi)邊距上,找到內(nèi)容區(qū)和內(nèi)邊距的邊距
    14.png

    黃色應(yīng)該出現(xiàn)box1的內(nèi)容區(qū)里.png

    15.png

    黃色應(yīng)該出現(xiàn)box1的內(nèi)容區(qū)里
  • padding是內(nèi)邊距的簡(jiǎn)寫屬性
    • 可以同時(shí)或者分別設(shè)置四個(gè)方向的內(nèi)邊距,規(guī)則和border-width相同

外邊距(margin)

  • 決定了盒子與盒子的距離(盒子的位置)
  • 外邊距不會(huì)影響盒子可見(jiàn)框的大小,但是會(huì)影響到盒子的實(shí)際大小,就是實(shí)際占地大小,就是不可見(jiàn)框
  • 一共四個(gè)方向的外邊距
    • margin-top
    • margin- bottom
    • margin- right
    • margin- left
      • margin-left:100px


        16.png
  • margin-left如果是個(gè)正值,元素向右移動(dòng),如果是個(gè)負(fù)值,元素向左移動(dòng)
  • margin-right:100px;
  • margin-bottom:100px;
    由于元素在頁(yè)面中默認(rèn)是靠左上排列,所以默認(rèn)情況下,設(shè)置左和上外邊距會(huì)移動(dòng)元素本身,而設(shè)置下和右外邊距會(huì)移動(dòng)相鄰的元素


    16.png

    17.png

    設(shè)置個(gè)樣式


    18.png

    19.png

簡(jiǎn)寫屬性margin

也可以同時(shí)指定四個(gè)方向,規(guī)則和border-width 一樣

  • margin一可以設(shè)置為auto,瀏覽器會(huì)自動(dòng)計(jì)算margin值
  • 如果將水平方向的margin設(shè)置為auto,則瀏覽器盡可能的讓margin-left值能多大就多大
    margin-left:auto
    margin-right:auto
  • 垂直方向的外邊距設(shè)置為auto,瀏覽器會(huì)自動(dòng)設(shè)置為0
  • margin-left和margin-righ同時(shí)設(shè)置為auto,瀏覽器會(huì)將兩個(gè)外邊距設(shè)置為一個(gè)相等的值,元素就水平居中
    • 利用這個(gè)特點(diǎn)可以讓一個(gè)元素在他的父元素當(dāng)中水平居中
  • width也可以設(shè)置為auto,它的默認(rèn)值就是auto,瀏覽器會(huì)自動(dòng)使width盡可能大,沒(méi)空間就變小
    如果將width設(shè)置為auto,則margin-left和right的auto將會(huì)自動(dòng)設(shè)置為0
    父元素text-align:center;可以讓行內(nèi)元素在父元素中水平居中,父元素設(shè)置line-height=height
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是盒子? CSS處理網(wǎng)頁(yè)時(shí),它認(rèn)為每個(gè)元素都包含在一 個(gè)不可見(jiàn)的盒子里。 我們只需要將相應(yīng)的盒子擺放到網(wǎng)頁(yè)中相...
    咻咻咻滴趙大妞閱讀 976評(píng)論 0 0
  • 一、CSS入門 1、css選擇器 選擇器的作用是“用于確定(選定)要進(jìn)行樣式設(shè)定的標(biāo)簽(元素)”。 有若干種形式的...
    寵辱不驚丶?xì)q月靜好閱讀 1,708評(píng)論 0 6
  • 其實(shí),CSS就三個(gè)大模塊: 盒子模型 、 浮動(dòng) 、 定位,其余的都是細(xì)節(jié)。要求這三部分,無(wú)論如何也要學(xué)的非常精通...
    王玉偉的偉閱讀 1,192評(píng)論 0 2
  • 第一章 F12: element.style 內(nèi)聯(lián)樣式(可以直接在上面寫代碼進(jìn)行簡(jiǎn)單調(diào)試) user agent...
    fastwe閱讀 1,647評(píng)論 0 0
  • 盒子模型(CSS 重點(diǎn)) css 學(xué)習(xí)三大重點(diǎn): css 盒子模型 、 浮動(dòng) 、 定位 主題思路: 目標(biāo)...
    jovelin閱讀 1,204評(píng)論 0 0

友情鏈接更多精彩內(nèi)容