慕課網HTML+CSS基礎筆記三

一、什么是選擇器?

每一條css樣式聲明(定義)由兩部分組成,形式如下:
選擇器{ 樣式;}
在{}之前的部分就是“選擇器”,“選擇器”指明了{}中的“樣式”的作用對象,也就是“樣式”作用于網頁中的哪些元素。比如右側代碼編輯器中第7行代碼中的“body”就是選擇器。

二、標簽選擇器

標簽選擇器其實就是html代碼中的標簽。如右側代碼編輯器中的
<html>、<body>、<h1>、<p>、<img>。
例如下面代碼:
p{font-size:12px;line-height:1.6em;}
上面的css樣式代碼的作用:為p標簽設置12px字號,行間距設置1.6em的樣式。

三、類選擇器

類選擇器在css樣式編碼中是最常用到的,如右側代碼編輯器中的代碼:可以實現為“膽小如鼠”、“勇氣”字體設置為紅色。
語法:
.類選器名稱{css樣式代碼;}
注意:
1、英文圓點開頭
2、其中類選器名稱可以任意起名(但不要起中文噢)
使用方法:
第一步:使用合適的標簽把要修飾的內容標記起來,如下:
<span>膽小如鼠</span>
第二步:使用class="類選擇器名稱"為標簽設置一個類,如下:
<span class="stress">膽小如鼠</span>
第三步:設置類選器css樣式,如下:
.stress{color:red;}/類前面要加入一個英文****圓點/

四、ID選擇器

在很多方面,ID選擇器都類似于類選擇符,但也有一些重要的區別:
1、為標簽設置id="ID名稱",而不是class="類名稱"。
2、ID選擇符的前面是井號(#)號,而不是英文圓點(.)
右側代碼編輯器中就是一個ID選擇符的完整實例。

五、類和ID選擇器的區別

學習了類選擇器和ID選擇器,我們會發現他們之間有很多的相似處,是不是兩者可以通用呢?我們不要著急先來總結一下他們的相同點和不同點:
相同點:可以應用于任何元素不同點:
1、ID選擇器只能在文檔中使用一次。與類選擇器不同,在一個HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。
下面代碼是正確的:
<p>三年級時,我還是一個<span **class="stress"**>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span **class="stress"**>勇氣</span>來回答老師提出的問題。</p>
而下面代碼是錯誤的:
<p>三年級時,我還是一個<span **id="stress"**>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span **id="stress"**>勇氣</span>來回答老師提出的問題。</p>
2、可以使用類選擇器詞列表方法為一個元素同時設置多個樣式。我們可以為一個元素同時設多個樣式,但只可以用類選擇器的方法實現,ID選擇器是不可以的(不能使用 ID 詞列表)。
下面的代碼是正確
.stress{ color:red;}.bigsize{ font-size:25px;}<p>到了<span **class="stress bigsize"**>三年級</span>下學期時,我們班上了一節公開課...</p>
上面代碼的作用是為“三年級”三個文字設置文本顏色為紅色并且字號為25px。
下面的代碼是不正確
#stressid{ color:red;}#bigsizeid{ font-size:25px;}<p>到了<span **id="stressid bigsizeid"**>三年級</span>下學期時,我們班上了一節公開課...</p>
上面代碼不可以實現為“三年級”三個文字設置文本顏色為紅色并且字號為25px的作用。

六、子選擇器

還有一個比較有用的選擇器子選擇器,即大于符號(>),用于選擇指定標簽元素的第一代子元素。如右側代碼編輯器中的代碼:
.food>li{border:1px solid red;}
這行代碼會使class名為food下的子元素li(水果、蔬菜)加入紅色實線邊框。

七、包含(后代)選擇器

包含選擇器,即加入空格,用于選擇指定標簽元素下的后輩元素。如右側代碼編輯器中的代碼:
.first span{color:red;}
這行代碼會使第一段文字內容中的“膽小如鼠”字體顏色變為紅色。
請注意這個選擇器與子選擇器的區別,子選擇器(child selector)僅是指它的直接后代,或者你可以理解為作用于子元素的第一代后代。而后代選擇器是作用于所有子后代元素。后代選擇器通過空格來進行選擇,而子選擇器是通過“>”進行選擇。
總結:>作用于元素的第一代后代,空格作用于元素的所有后代。

八、通用選擇器

通用選擇器是功能最強大的選擇器,它使用一個(*)號指定,它的作用是匹配html中所有標簽元素,如下使用下面代碼使用html中任意標簽元素字體顏色全部設置為紅色:

  • {color:red;}
九、偽類選擇符

更有趣的是偽類選擇符,為什么叫做偽類選擇符,它允許給html不存在的標簽(標簽的某種狀態)設置樣式,比如說我們給html中一個標簽元素的鼠標滑過的狀態來設置字體顏色:
a:hover{color:red;}
上面一行代碼就是為 a 標簽鼠標滑過的狀態設置字體顏色變紅。這樣就會使第一段文字內容中的“膽小如鼠”文字加入鼠標滑過字體顏色變為紅色特效。
關于偽選擇符:
關于偽類選擇符,到目前為止,可以兼容所有瀏鑒器的“偽類選擇符”就是 a 標簽上使用 :hover 了(其實偽類選擇符還有很多,尤其是 css3 中,但是因為不能兼容所有瀏覽器,本教程只是講了這一種最常用的)。其實 :hover 可以放在任意的標簽上,比如說 p:hover,但是它們的兼容性也是很不好的,所以現在比較常用的還是 a:hover 的組合。

十、分組選擇符

當你想為html中多個標簽元素設置同一個樣式時,可以使用分組選擇符(,),如下代碼為右側代碼編輯器中的h1、span標簽同時設置字體顏色為紅色:

h1,span{color:red;}
它相當于下面兩行代碼:

h1{color:red;}
span{color:red;}

十一、繼承

CSS的某些樣式是具有繼承性的,那么什么是繼承呢?繼承是一種規則,它允許樣式不僅應用于某個特定html標簽元素,而且應用于其后代。比如下面代碼:如某種顏色應用于p標簽,這個顏色設置不僅應用p標簽,還應用于p標簽中的所有子元素文本,這里子元素為span標簽。
p{color:red;}<p>三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
可見右側結果窗口中p中的文本與span中的文本都設置為了紅色。但注意有一些css樣式是不具有繼承性的。如border:1px solid red;
p{border:1px solid red;}<p>三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
在上面例子中它代碼的作用只是給p標簽設置了邊框為1像素、紅色、實心邊框線,而對于子元素span是沒用起到作用的。

十二、特殊性

有的時候我們為同一個元素設置了不同的CSS樣式代碼,那么元素會啟用哪一個CSS樣式呢?我們來看一下面的代碼:
p{color:red;}.first{color:green;}<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
p和.first都匹配到了p這個標簽上,那么會顯示哪種顏色呢?green是正確的顏色,那么為什么呢?是因為瀏覽器是根據權值來判斷使用哪種css樣式的,權值高的就使用哪種css樣式。
下面是權值的規則:
標簽的權值為1,類選擇符的權值為10,ID選擇符的權值最高為100。
**例如下面的代碼:
p{color:red;}權值為1
p span{color:green;}權值為1+1=2
.warning{color:white;}權值為10
p span.warning{color:purple;}權值為1+1+10=12
#footer .note p{color:yellow;}權值為100+10+1=111
注意:還有一個權值比較特殊--繼承也有權值但很低,有的文獻提出它只有0.1,所以可以理解為繼承的權值最低。

十三、層疊

我們來思考一個問題:如果在html文件中對于同一個元素可以有多個css樣式存在并且這多個css樣式具有相同權重值怎么辦?好,這一小節中的層疊幫你解決這個問題。
層疊就是在html文件中對于同一個元素可以有多個css樣式存在,當有相同權重的樣式存在時,會根據這些css樣式的前后順序來決定,處于最后面的css樣式會被應用。
如下面代碼:
p{color:red;}p{color:green;}<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
最后 p 中的文本會設置為green,這個層疊很好理解,理解為后面的樣式會覆蓋前面的樣式。
所以前面的css樣式優先級就不難理解了:
內聯樣式表(標簽內部)> 嵌入樣式表(當前文件中)> 外部樣式表(外部文件中)

十四、重要性

我們在做網頁代碼的時,有些特殊的情況需要為某些樣式設置具有最高權值,怎么辦?這時候我們可以使用!important來解決。
如下代碼:
p{color:red**!important**;}p{color:green;}<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
這時 p 段落中的文本會顯示的red紅色。
注意:!important要寫在分號的前面
這里注意當網頁制作者不設置css樣式時,瀏覽器會按照自己的一套樣式來顯示網頁。并且用戶也可以在瀏覽器中設置自己習慣的樣式,比如有的用戶習慣把字號設置為大一些,使其查看網頁的文本更加清楚。這時注意樣式優先級為:瀏覽器默認的樣式 < 網頁制作者樣式 < 用戶自己設置的樣式,但記住!important優先級樣式是個例外,權值高于用戶自己設置的樣式。

十五、文字排版--字體

我們可以使用css樣式為網頁中的文字設置字體、字號、顏色等樣式屬性。下面我們來看一個例子,下面代碼實現:為網頁中的文字設置字體為宋體。
body{font-family:"宋體";}
這里注意不要設置不常用的字體,因為如果用戶本地電腦上如果沒有安裝你設置的字體,就會顯示瀏覽器默認的字體。(因為用戶是否可以看到你設置的字體樣式取決于用戶本地電腦上是否安裝你設置的字體。)現在一般網頁喜歡設置“微軟雅黑”,如下代碼:
body{font-family:"Microsoft Yahei";}

body{font-family:"微軟雅黑";}
注意:第一種方法比第二種方法兼容性更好一些。
因為這種字體即美觀又可以在客戶端安全的顯示出來(用戶本地一般都是默認安裝的)。

十六、文字排版--字號、顏色

可以使用下面代碼設置網頁中文字的字號為12像素,并把字體顏色設置為#666(灰色):

body{font-size:12px;color:#666}

十七、文字排版--粗體

我們還可以使用css樣式來改變文字的樣式:粗體、斜體、下劃線、刪除線,可以使用下面代碼實現設置文字以粗體樣式顯示出來。
p span{font-weight:bold;}
在這里大家可以看到,如果想為文字設置粗體是有單獨的css樣式來實現的,再不用為了實現粗體樣式而使用h1-h6或strong標簽了。
normal 默認值。定義標準的字符。
bold 定義粗體字符。
bolder 定義更粗的字符。
lighter 定義更細的字符。

十八、文字排版--斜體

以下代碼可以實現文字以斜體樣式在瀏覽器中顯示:
p a{font-style:italic;}
<p>三年級時,我還是一個<a>膽小如鼠</a>的小女孩。</p>
值 描述
normal 默認值。瀏覽器顯示一個標準的字體樣式。
italic 瀏覽器會顯示一個斜體的字體樣式。
oblique 瀏覽器會顯示一個傾斜的字體樣式。
inherit 規定應該從父元素繼承字體樣式。

十九、文字排版--下劃線

有些情況下想為文字設置為下劃線樣式,這樣可以在視覺上強調文字,可以使用下面代碼來實現:

p a{text-decoration:underline;}

<p>三年級時,我還是一個<a>膽小如鼠</a>的小女孩。</p>

二十、文字排版--刪除線

如果想在網頁上設置刪除線怎么辦,這個樣式在電商網站上常會見到:



上圖中的原價上的刪除線使用下面代碼就可以實現:
.oldPrice{text-decoration:line-through;}

二十一、段落排版--縮進

中文文字中的段前習慣空兩個文字的空白,這個特殊的樣式可以用下面代碼來實現:

p{text-indent:2em;}
<p>1922年的春天,一個想要成名名叫尼克卡拉威(托比?馬奎爾Tobey Maguire 飾)的作家,離開了美國中西部,來到了紐約。那是一個道德感漸失,爵士樂流行,走私為王,股票飛漲的時代。為了追尋他的美國夢,他搬入紐約附近一海灣居住。</p>

注意:2em的意思就是文字的2倍大小。

二十二、段落排版--行間距(行高)

這一小節我們來學習一下另一個在段落排版中起重要作用的行間距(行高)屬性(line-height),如下代碼實現設置段落行間距為1.5倍。

p{line-height:1.5em;}
<p>菲茨杰拉德,二十世紀美國文學巨擘之一,兼具作家和編劇雙重身份。他以詩人的敏感和戲劇家的想象為"爵士樂時代"吟唱華麗挽歌,其詩人和夢想家的氣質亦為那個奢靡年代的不二注解。</p>

二十三、段落排版--中文字間距、字母間距

中文字間隔、字母間隔設置:
如果想在網頁排版中設置文字間隔或者字母間隔就可以使用 **letter-spacing **來實現,如下面代碼:
h1{ letter-spacing:50px;}...<h1>了不起的蓋茨比</h1>
注意:這個樣式使用在英文單詞時,是設置字母與字母之間的間距。
單詞間距設置
如果我想設置英文單詞之間的間距呢?可以使用 **word-spacing **來實現。
如下代碼:
h1{ word-spacing:50px;}...<h1>welcome to imooc!</h1>

二十四、段落排版--對齊

想為塊狀元素中的文本、圖片設置居中樣式嗎?可以使用text-align樣式代碼,如下代碼可實現文本居中顯示。
h1{ text-align:center;}<h1>了不起的蓋茨比</h1>
同樣可以設置居左:
h1{ text-align:left;}<h1>了不起的蓋茨比</h1>
還可以設置居右:
h1{ text-align:right;}<h1>了不起的蓋茨比</h1>

二十五、元素分類

在講解CSS布局之前,我們需要提前知道一些知識,在CSS中,html中的標簽元素大體被分為三種不同的類型:塊狀元素、內聯元素(又叫行內元素)內聯塊狀元素。
常用的塊狀元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的內聯元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的內聯塊狀元素有:
<img>、<input>

二十六、元素分類--塊級元素

什么是塊級元素?在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是塊級元素。設置display:block
就是將元素顯示為塊級元素。如下代碼就是將內聯元素a轉換為塊狀元素,從而使a元素具有塊狀元素特點。
a{display:block;}
塊級元素特點:
1、每個塊級元素都從新的一行開始,并且其后的元素也另起一行。(真霸道,一個塊級元素獨占一行)
2、元素的高度、寬度、行高以及頂和底邊距都可設置。
3、元素寬度在不設置的情況下,是它本身父容器的100%(和父元素的寬度一致),除非設定一個寬度。

二十七、元素分類--內聯元素

在html中<span>、<a>、<label>、 <strong> 和<em>就是典型的內聯元素行內元素)(inline)元素。當然塊狀元素也可以通過代碼display:inline
將元素設置為內聯元素。
如下代碼就是將塊狀元素div轉換為內聯元素,從而使 div 元素具有內聯元素特點。
div{ display:inline; }......<div>我要變成內聯元素</div>
內聯元素特點:
1、和其他元素都在一行上;
2、元素的高度、寬度及頂部和底部邊距不可設置;
3、元素的寬度就是它包含的文字或圖片的寬度,不可改變。
小伙伴們你們觀查一下右側代碼段,有沒有發現一個問題,內聯元素之間有一個間距問題,這個問題在本小節的 wiki 中有介紹,感興趣的小伙伴可以去查看。

二十八、元素分類--內聯塊狀元素

內聯塊狀元素(inline-block就是同時具備內聯元素、塊狀元素的特點,代碼display:inline-block
就是將元素設置為內聯塊狀元素。(css2.1新增),<img>、<input>標簽就是這種內聯塊狀標簽。
inline-block 元素特點:
1、和其他元素都在一行上;
2、元素的高度、寬度、行高以及頂和底邊距都可設置。
提示:下一小節是用視頻動畫來講解css中的盒模型。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容

  • CSS全稱為“層疊樣式表 (Cascading Style Sheets)”,它主要是用于定義HTML內容在瀏覽器...
    百作不死的學習閱讀 1,185評論 0 7
  • CSS基礎 本文包括CSS基礎知識選擇器(重要?。。。├^承、特殊性、層疊、重要性CSS格式化排版單位和值盒模型浮動...
    廖少少閱讀 3,109評論 0 40
  • 本文主要是起筆記的作用,內容來自慕課網. 認識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,659評論 0 30
  • 第6章 開始學習CSS,為網頁添加樣式 1、認識CSS樣式CSS全稱為“層疊樣式表 (Cascading Styl...
    夏沫xx閱讀 1,069評論 1 11
  • 本課來自http://www.imooc.com/learn/9請不要用作商業用途。 HTML5 HTML介紹 H...
    PYLON閱讀 3,285評論 0 5