day02_CSS基礎(2)

一照筑、CSS復合選擇器

復合選擇器是由兩個或多個基礎選擇器,通過不同的方式組合而成的,目的是為了可以選擇更準確更精細的目標元素標簽瘦陈。

1.1 后代選擇器

普通選擇器通過空格層級遞進,最后一個選擇器下的匹配標簽都會被選中凝危。

例子:

<style>
/* 標簽p1和p2內的字體都被設置為紅色 */
div div p{
         color: red;
        }
</style>
...
<div>
    <div>
        <p>我是標簽p1。</p>
        <p>我是標簽p2晨逝。</p>
    </div>
</div>

注意:

  • 對于要修改的樣式,采用后代選擇器時寫法應為:div div p,而不應該寫成:div div,雖然效果相同蛾默,但是是錯誤寫法。一旦頁面復雜,其他相似結構很可能也會被設置捉貌。所以必須采用第一種寫法支鸡。
  • 后代選擇器與子代選擇器不同,不需要嚴格的層級嵌套關系,也就是說可以跨標簽層級指定冬念。無論跨多少個標簽,只要滿足樣式中指定的選擇器順序就生效。

1.2 子代選擇器

普通選擇器通過">"符號層級遞進,最后一個選擇器下的匹配標簽都會被選中牧挣。
例子:

注意:

  • 子代選擇器必須按照嵌套層級依次定位,不允許跳躍
<style>
/* 標簽p1和p2內的字體都被設置為紅色 */
div>div>p{
         color: red;
        }
</style>
...
<div>
    <div>
        <p>我是標簽p1刘急。</p>
        <p>我是標簽p2。</p>
    </div>
</div>

1.3 并集選擇器

普通選擇器通過","并列的標簽都會被選中浸踩。

例子:

<style>
/* 標簽p1和p2和p3和p4內的字體都被設置為紅色 */
div,span{
         color: red;
        }
</style>
...
<div>
    <p>我是標簽p1叔汁。</p>
    <p>我是標簽p2。</p>
</div>

<span>
    <p>我是標簽p3检碗。</p>
    <p>我是標簽p4据块。</p>
</span>

1.4 交集選擇器

"標簽名.類名"。用的相對來說比較少,不太建議使用折剃。
例子:

<style>
    /* 設置p標簽為紅色 */
    p.demo {
        color: red;
    }
</style>

<p class="demo">我是demo</p>

1.5綜合練習

不修改一下代碼的情況下,完成以下任務另假。

<body>
     <!-- 主導航欄 -->
    <div class="nav">   
        <ul>
            <li><a href="#">公司首頁</a></li>
            <li><a href="#">公司簡介</a></li>
            <li><a href="#">公司產品</a></li>
            <li>
                <a href="#">聯(lián)系我們</a>
                <ul>
                    <li><a href="#">公司郵箱</a></li>
                    <li><a href="#">公司電話</a></li>
                 </ul>
            </li>
        </ul>
    </div>

    <!-- 側導航欄 -->
    <div class="sitenav">
        <div class="site-l">左側側導航欄</div>
        <div class="site-r">
            <a href="#">登錄</a>
        </div>
    </div>
</body>

1)鏈接 登錄 的顏色為紅色。

分析:

  • 對于a標簽有其特殊性,樣式的無論哪種選擇都必須指定a標簽才會起作用怕犁。
  • 對于單個標簽的設置,采用子代選擇器可能會更好,具有特殊边篮。
/* 參考答案1 */
    .sitenav .site-r a{
      color: red;
    }

/* 參考答案2 */
     .site-r a{
      color: red;
     }

/* 參考答案3 */
    .sitenav>.site-r a{
      color: red;
    }

/* 參考答案4 (自己推薦)*/
    .sitenav>.site-r>a{
      color: red;
    }

/* 老師答案 */
   .site-r a {
      color: red;
    }

2)主導航欄里面的所有的鏈接改為橙色。

分析:

  • 對于一類(很多)標簽的樣式設置,使用后代選擇器可能會更好奏甫。
/* 參考答案1(自己推薦) */
.nav a{
      color: red;
}

/* 參考答案2 */
.nav ul a{
      color: red;
}

/* 參考答案3 */
.nav ul li a{
      color: red;
}

/* 老師答案 */
.nav a {
      color: orange;
   }

3)主導航欄和側導航欄里面文字都是14像素并且是微軟雅黑戈轿。

分析:

并列關系,使用并集選擇器會更好。

/* 老師和自己的答案 */        
.nva, 
.sitenav {
            font-size: 14px;
            font-family: "微軟雅黑";
        }

4)主導航欄里面的一級菜單鏈接文字顏色為綠色阵子。

/* 寫法1(唯一) */
.nav>ul>li>a {
            color: green;
        }

1.6 偽類選擇器

偽類常用的有如下四種:

  • link /* 未訪問的鏈接 */
  • visited /* 已訪問的鏈接 */
  • hover /* 鼠標移動到鏈接上 */
  • active /* 選定的鏈接 */

選擇器+":"+偽類構成復合選擇器思杯。

注意:

  • lvha定義的順序不允許改變。
  • 也可以只定義hover

示例:

       a:link {
            color: #333;
        }

        a:visited {
            color: orange;
        }

        a:hover {
            color: red;
        }

        a:active {
            color: green;
        }
        ...
        <a href="www.baidu.com">百度一下</a>

更一般情況只定義hover偽類的狀態(tài):

a {   /* a是標簽選擇器  所有的鏈接 */
            font-weight: 700;
            font-size: 16px;
            color: gray;
}
a:hover {   /* :hover 是鏈接偽類選擇器 鼠標經過 */
            color: red; /*  鼠標經過的時候挠进,由原來的 灰色 變成了紅色 */
}

1.7復合選擇器總結

選擇器 作用 特征 使用情況 用法
后代選擇器 用來選擇元素或元素組的后代 子孫后代都能選 最多 div p { color:red;}
子代選擇器 選擇作為某元素子元素的元素 只選親兒子 較少 .nav>p { color: red; }
交集選擇器 選擇兩個標簽交集的部分 既 有 較少 a:link {color: red;}
并集選擇器 選擇某些相同樣式的選擇器 可以用于集體聲明 較多 .nav, .header {color: red;}

二色乾、標簽的顯示模式

HTML標簽根據(jù)布局方式可以分為2種,塊標簽和行標簽,它們也稱塊元素和行內元素。具體如下领突。

2.1 塊級標簽(block)

常見的塊元素有<h1>~<h6>暖璧、<p>、<div>君旦、<ul>澎办、<ol>、<li>等于宙,其中<div>標簽是最典型的塊元素浮驳。

塊標簽特點:
(1)總是從新行開始
(2)高度悍汛,行高捞魁、外邊距以及內邊距都可以控制。
(3)寬度默認是容器的100%
(4)可以容納內聯(lián)元素和其他塊元素离咐。
(5) 是一個容器及盒子谱俭,里面可以放行內或者塊級元素

注意:

  • 文字類塊級標簽奉件,里面不能放其他塊級元素。如p/h1~h6/dt/里不能放div昆著。

2.2 行內標簽(inline)

常見的行內元素有<a>县貌、<strong>、<b>凑懂、<em>煤痕、<i>、<del>接谨、<s>摆碉、<ins>、<u>脓豪、<span>等巷帝,其中<span>標簽最典型的行內元素。

行標簽特點:
(1)和相鄰行內元素在一行上扫夜。
(2)高楞泼、寬無效,但水平方向的padding和margin可以設置笤闯,垂直方向的無效堕阔。
(3)默認寬度就是它本身內容的寬度。
(4)行內元素只能容納文本或則其他行內元素颗味。(a 特殊 a里面可以放塊級元素 )

注意:

  • 鏈接標簽(a)里不能放再放鏈接印蔬。
  • 特殊情況a里面可以放塊級元素。

2.3 行內塊標簽

在行內元素中有幾個特殊的標簽<img />脱衙、<input />侥猬、<td>。

特點

(1)和相鄰行內元素(行內塊)在一行上,但是之間會有空白縫隙捐韩。
(2)默認寬度就是它本身內容的寬度退唠。
(3)高度,行高荤胁、外邊距以及內邊距都可以控制瞧预。

三種標簽顯示模式的區(qū)別

元素模式 元素排列 設置樣式 默認寬度 包含
塊級元素 一行只能放一個塊級元素 可以設置寬度高度 容器的100% 容器級可以包含任何標簽
行內元素 一行可以放多個行內元素 不可以直接設置寬度高度 它本身內容的寬度 容納文本或則其他行內元素
行內塊元素 一行放多個行內塊元素 可以設置寬度和高度 它本身內容的寬度

2.4 標簽顯示模式的轉換

在CSS屬性(properties)中的布局(layout)屬性中,display屬性可以對HTML標簽的顯示模式進行轉換。最后以轉換后結果的特性為準仅政。

display屬性值:

屬性值 寬/高可設置 同行繼續(xù)增加元素
inline
block
inline-block

? inline:沒有高度和寬度,同行可繼續(xù)增加元素垢油。

? inline-block:可以設置高度和寬度,同行可以增加元素。

注意:

1)塊標簽轉行內標簽可以使用:inline和inline-block;

示例1:將兩個DIV內容在一行顯示,不需要設置寬度

    div {
            display: inline;
            background-color: red;
        }
    <div>123</div>
    <div>456</div>

示例2:三個 span,要求 150 * 150 綠色盒子,在同一行顯示圆丹。

span {
            display: inline-block;
            background-color: green;
            width: 150px;
            height: 150px;
        }
        ...
    <span>1</span>
    <span>2</span>
    <span>3</span>

示例3:三個 a 鏈接 80 * 20 藍色 盒子 要求 必須一行顯示 這三個盒子滩愁。

a {
            display: inline-block;
            background-color: blue;
            width: 80px;
            height: 20px;
            color: #fff;
        }
    <a href="#">1</a>
    <a href="#">1</a>
    <a href="#">1</a>

三、行高

3.1 行高定義

中文行高:兩行頂線的距離稱為行高辫封∠跬鳎可以通過PS工具查看廉丽。
英文行高:兩個基線的距離。
<img src="media/line2.png" />

3.2 行高組成

行高垂直從上到下依次為:上距離,內容高度,下距離妻味。

3.3 行高的應用

當行高等于盒子高時,文字在盒子中就是垂直居中的正压。

  • 如果 行高 等于 盒子高度 文字會 垂直居中
  • 如果行高 大于 高度 文字會 偏下
  • 如果行高小于高度 文字會 偏上

四、CSS的特性

4.1 層疊性

定義:如果同一個元素上的樣式出現(xiàn)疊加责球,那么這個時候一個屬性就會將另一個屬性層疊掉焦履。

? 比如,先給某個標簽指定了內部文字顏色為紅色,接著又指定了顏色為藍色雏逾,此時出現(xiàn)一個標簽指定了相同樣式不同值的情況裁良,這就是樣式層疊。

? 出現(xiàn)樣式層疊依照兩個原則,第一個為就近原則,第二個為按照優(yōu)先級別高的生效校套。

4.1.1 就近原則

距離作用域近的,起作用价脾。

示例:

 /* 123最后為藍色 */
 p {color: red;}
 p {color: blue;}
 
 <p>123</p>

4.1.2 CSS優(yōu)先級

不同的選擇器對應不同的權重,權重值由(a,b,c,d)組成,權重可以做加法計算,但必須是按對應位置做加法。權重值a>b>c>d笛匙。

選擇器名稱(個) 權重值
類繼承/通配符* (0,0,0,0)
HTML標簽 (0,0,0,1)
類/偽類 (0,0,1,0)
ID (0,1,0,0)
行內樣式 (1,0,0,0)
important 無窮大

選擇器對應的權重值:

選擇器名稱(個) 權重值
類繼承/通配符* (0,0,0,0)
HTML標簽 (0,0,0,1)
類/偽類 (0,0,1,0)
ID (0,1,0,0)
行內樣式 (1,0,0,0)
important 無窮大

舉例:

div ul  li   ------>      0,0,0,3
.nav ul li   ------>      0,0,1,2
a:hover      -----—>      0,0,1,1
.nav a       ------>      0,0,1,1   
#nav p       ----->       0,1,0,1

五侨把、CSS背景屬性

background-color 背景顏色
background-image 背景圖片地址
background-repeat 是否平鋪
background-position 背景位置
background-attachment 背景固定還是滾動

<end>

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妹孙,隨后出現(xiàn)的幾起案子秋柄,更是在濱河造成了極大的恐慌,老刑警劉巖蠢正,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骇笔,死亡現(xiàn)場離奇詭異,居然都是意外死亡嚣崭,警方通過查閱死者的電腦和手機笨触,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雹舀,“玉大人芦劣,你說我怎么就攤上這事∷涤埽” “怎么了虚吟?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長签财。 經常有香客問我串慰,道長,這世上最難降的妖魔是什么唱蒸? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任邦鲫,我火速辦了婚禮,結果婚禮上油宜,老公的妹妹穿的比我還像新娘掂碱。我一直安慰自己怜姿,他們只是感情好慎冤,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布疼燥。 她就那樣靜靜地躺著,像睡著了一般蚁堤。 火紅的嫁衣襯著肌膚如雪醉者。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天披诗,我揣著相機與錄音撬即,去河邊找鬼。 笑死呈队,一個胖子當著我的面吹牛剥槐,可吹牛的內容都是我干的。 我是一名探鬼主播宪摧,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼粒竖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了几于?” 一聲冷哼從身側響起蕊苗,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沿彭,沒想到半個月后朽砰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡喉刘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年瞧柔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睦裳。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡非剃,死狀恐怖,靈堂內的尸體忽然破棺而出推沸,到底是詐尸還是另有隱情备绽,我是刑警寧澤鬓催,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站宇驾,受9級特大地震影響,放射性物質發(fā)生泄漏课舍。R本人自食惡果不足惜塌西,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一他挎、第九天 我趴在偏房一處隱蔽的房頂上張望捡需。 院中可真熱鬧,春花似錦站辉、人聲如沸呢撞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殊霞。三九已至汰蓉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顾孽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工太颤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人龄章。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓乞封,卻偏偏與公主長得像做裙,于是被迫代替她去往敵國和親肃晚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案拧廊? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,737評論 1 92
  • CSS 是什么 css(Cascading Style Sheets)晋修,層疊樣式表,選擇器{屬性:值倦春;屬性:值}h...
    崔敏嫣閱讀 1,475評論 0 5
  • 轉載請聲明 原文鏈接地址 關注公眾號獲取更多資訊 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位...
    程序員poetry閱讀 16,524評論 32 459
  • 本文主要是起筆記的作用,內容來自慕課網(wǎng). 認識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,630評論 0 30
  • 介紹一款好用的軟件尿庐,可以選擇自己感興趣的話題呢堰,——即刻 軟件介紹: 「即刻」是一個有活力的精選信息社區(qū)抄瑟,每時每刻都...
    月夜紫荊閱讀 288評論 0 0