CSS入門

1、簡介

CSS 指層疊樣式表 (Cascading Style Sheets)css

  • 樣式定義如何顯示 HTML 元素
  • 樣式一般存儲在樣式表中

把樣式添加到 HTML 4.0 中,是爲了解決內容與表現分離的問題html

  • 外部樣式表能夠極大提升工做效率
  • 外部樣式表一般存儲在 CSS 文件中
  • 多個樣式定義可層疊爲一

2、語法

2.1 基礎語法

CSS 規則由兩個主要的部分構成:選擇器,以及一條或多條聲明。瀏覽器

selector {declaration1; declaration2; ... declarationN }

選擇器一般是您須要改變樣式的 HTML 元素。編輯器

每條聲明由一個屬性和一個值組成。ide

屬性(property)是您但願設置的樣式屬性(style attribute)。每一個屬性有一個值。屬性和值被冒號分開。佈局

selector {property: value}

下面這行代碼的做用是將 h1 元素內的文字顏色定義爲紅色,同時將字體大小設置爲 14 像素。字體

在這個例子中,h1 是選擇器,color 和 font-size 是屬性,red 和 14px 是值。this

h1 {color:red; font-size:14px;}

下面的示意圖爲您展現了上面這段代碼的結構:url

CSS 语法

提示:請使用花括號來包圍聲明。spa

 

1)值的不一樣寫法和單位

除了英文單詞 red,咱們還可使用十六進制的顏色值 #ff0000:

p { color: #ff0000; }

爲了節約字節,咱們可使用 CSS 的縮寫形式:

p { color: #f00; }

咱們還能夠經過兩種方法使用 RGB 值:

p { color: rgb(255,0,0); }
p { color: rgb(100%,0%,0%); }

請注意,當使用 RGB 百分比時,即便當值爲 0 時也要寫百分比符號。可是在其餘的狀況下就不須要這麼作了。好比說,當尺寸爲 0 像素時,0 以後不須要使用 px 單位,由於 0 就是 0,不管單位是什麼。

 

2)記得寫引號

提示:若是值爲若干單詞,則要給值加引號:

p {font-family: "sans serif";}

 

3)多重聲明

提示:若是要定義不止一個聲明,則須要用分號將每一個聲明分開。下面的例子展現出如何定義一個紅色文字的居中段落。最後一條規則是不須要加分號的,由於分號在英語中是一個分隔符號,不是結束符號。

p {text-align:center; color:red;}

你應該在每行只描述一個屬性,這樣能夠加強樣式定義的可讀性,就像這樣:

p {
  text-align: center;
  color: black;
  font-family: arial;
}

 

4)空格和大小寫

大多數樣式表包含不止一條規則,而大多數規則包含不止一個聲明。多重聲明和空格的使用使得樣式表更容易被編輯:

body {
  color: #000;
  background: #fff;
  margin: 0;
  padding: 0;
  font-family: Georgia, Palatino, serif;
  }

 

2.2 高級語法

1)選擇器的分組

你能夠對選擇器進行分組,這樣,被分組的選擇器就能夠分享相同的聲明。用逗號將須要分組的選擇器分開。在下面的例子中,咱們對全部的標題元素進行了分組。全部的標題元素都是綠色的。

h1,h2,h3,h4,h5,h6 {
  color: green;
  }

 

3、選擇器

3.1 派生選擇器

經過依據元素在其位置的上下文關係來定義樣式,你可使標記更加簡潔。

在 CSS1 中,經過這種方式來應用規則的選擇器被稱爲上下文選擇器 (contextual selectors),這是因爲它們依賴於上下文關係來應用或者避免某項規則。在 CSS2 中,它們稱爲派生選擇器,可是不管你如何稱呼它們,它們的做用都是相同的。

派生選擇器容許你根據文檔的上下文關係來肯定某個標籤的樣式。經過合理地使用派生選擇器,咱們可使 HTML 代碼變得更加整潔。

比方說,你但願列表中的 strong 元素變爲斜體字,而不是一般的粗體字,能夠這樣定義一個派生選擇器:

li strong {
    font-style: italic;
    font-weight: normal;
  }

請注意標記爲 <strong> 的藍色代碼的上下文關係:

<p><strong>我是粗體字,不是斜體字,由於我不在列表當中,因此這個規則對我不起做用</strong></p>

<ol>
<li><strong>我是斜體字。這是由於 strong 元素位於 li 元素內。</strong></li>
<li>我是正常的字體。</li>
</ol>

在上面的例子中,只有 li 元素中的 strong 元素的樣式爲斜體字,無需爲 strong 元素定義特別的 class 或 id,代碼更加簡潔。

再看看下面的 CSS 規則:

strong {
     color: red;
     }

h2 {
     color: red;
     }

h2 strong {
     color: blue;
     }

下面是它施加影響的 HTML:

<p>The strongly emphasized word in this paragraph is<strong>red</strong>.</p>
<h2>This subhead is also red.</h2>
<h2>The strongly emphasized word in this subhead is<strong>blue</strong>.</h2>

 

3.2 id 選擇器

id 選擇器能夠爲標有特定 id 的 HTML 元素指定特定的樣式。

id 選擇器以 "#" 來定義。

下面的兩個 id 選擇器,第一個能夠定義元素的顏色爲紅色,第二個定義元素的顏色爲綠色:

#red {color:red;}
#green {color:green;}

下面的 HTML 代碼中,id 屬性爲 red 的 p 元素顯示爲紅色,而 id 屬性爲 green 的 p 元素顯示爲綠色。

<p id="red">這個段落是紅色。</p>
<p id="green">這個段落是綠色。</p>

 

3.3 id 選擇器和派生選擇器

在現代佈局中,id 選擇器經常用於創建派生選擇器。

#sidebar p {
	font-style: italic;
	text-align: right;
	margin-top: 0.5em;
	}

上面的樣式只會應用於出如今 id 是 sidebar 的元素內的段落。這個元素極可能是 div 或者是表格單元,儘管它也多是一個表格或者其餘塊級元素。它甚至能夠是一個內聯元素,好比 <em></em> 或者 <span></span>,不過這樣的用法是非法的,由於不能夠在內聯元素 <span> 中嵌入 <p>。

一個選擇器,多種用法

即便被標註爲 sidebar 的元素只能在文檔中出現一次,這個 id 選擇器做爲派生選擇器也能夠被使用不少次:

#sidebar p {
	font-style: italic;
	text-align: right;
	margin-top: 0.5em;
	}

#sidebar h2 {
	font-size: 1em;
	font-weight: normal;
	font-style: italic;
	margin: 0;
	line-height: 1.5;
	text-align: right;
	}

在這裏,與頁面中的其餘 p 元素明顯不一樣的是,sidebar 內的 p 元素獲得了特殊的處理,同時,與頁面中其餘全部 h2 元素明顯不一樣的是,sidebar 中的 h2 元素也獲得了不一樣的特殊處理。

單獨的選擇器

id 選擇器即便不被用來建立派生選擇器,它也能夠獨立發揮做用:

#sidebar {
	border: 1px dotted #000;
	padding: 10px;
	}

根據這條規則,id 爲 sidebar 的元素將擁有一個像素寬的黑色點狀邊框,同時其周圍會有 10 個像素寬的內邊距(padding,內部空白)。

div#sidebar {
	border: 1px dotted #000;
	padding: 10px;
	}

 

3.4 類選擇器

在 CSS 中,類選擇器以一個點號顯示:

.center {text-align: center}

在上面的例子中,全部擁有 center 類的 HTML 元素均爲居中。

在下面的 HTML 代碼中,h1 和 p 元素都有 center 類。這意味着二者都將遵照 ".center" 選擇器中的規則。

<h1 class="center">
This heading will be center-aligned
</h1>

<p class="center">
This paragraph will also be center-aligned.
</p>

注意:類名的第一個字符不能使用數字!它沒法在 Mozilla 或 Firefox 中起做用。

和 id 同樣,class 也可被用做派生選擇器:

.fancy td {
	color: #f60;
	background: #666;
	}

在上面這個例子中,類名爲 fancy 的更大的元素內部的表格單元都會以灰色背景顯示橙色文字。(名爲 fancy 的更大的元素多是一個表格或者一個 div)

元素也能夠基於它們的類而被選擇:

td.fancy {
	color: #f60;
	background: #666;
	}

在上面的例子中,類名爲 fancy 的表格單元將是帶有灰色背景的橙色。

<td class="fancy">

你能夠將類 fancy 分配給任何一個表格元素任意多的次數。那些以 fancy 標註的單元格都會是帶有灰色背景的橙色。那些沒有被分配名爲 fancy 的類的單元格不會受這條規則的影響。還有一點值得注意,class 爲 fancy 的段落也不會是帶有灰色背景的橙色,固然,任何其餘被標註爲 fancy 的元素也不會受這條規則的影響。這都是因爲咱們書寫這條規則的方式,這個效果被限制於被標註爲 fancy 的表格單元(即便用 td 元素來選擇 fancy 類)。

 

3.5 屬性選擇器

對帶有指定屬性的 HTML 元素設置樣式。

能夠爲擁有指定屬性的 HTML 元素設置樣式,而不只限於 class 和 id 屬性。

註釋:只有在規定了 !DOCTYPE 時,IE7 和 IE8 才支持屬性選擇器。在 IE6 及更低的版本中,不支持屬性選擇。

屬性選擇器

下面的例子爲帶有 title 屬性的全部元素設置樣式:

[title]
{
color:red;
}

屬性和值選擇器

下面的例子爲 title="zyy" 的全部元素設置樣式:

[title=zyy]
{
border:5px solid blue;
}

屬性和值選擇器 - 多個值

下面的例子爲包含指定值的 title 屬性的全部元素設置樣式。適用於由空格分隔的屬性值:

[title~=hello] { color:red; }

下面的例子爲帶有包含指定值的 lang 屬性的全部元素設置樣式。適用於由連字符分隔的屬性值:

[lang|=en] { color:red; }

 

設置表單的樣式

屬性選擇器在爲不帶有 class 或 id 的表單設置樣式時特別有用:

input[type="text"]
{
  width:150px;
  display:block;
  margin-bottom:10px;
  background-color:yellow;
  font-family: Verdana, Arial;
}

input[type="button"]
{
  width:120px;
  margin-left:35px;
  display:block;
  font-family: Verdana, Arial;
}

 

4、css 建立

4.1 如何插入樣式表

當讀到一個樣式表時,瀏覽器會根據它來格式化 HTML 文檔。插入樣式表的方法有三種:

1)外部樣式表

當樣式須要應用於不少頁面時,外部樣式表將是理想的選擇。在使用外部樣式表的狀況下,你能夠經過改變一個文件來改變整個站點的外觀。每一個頁面使用 <link> 標籤連接到樣式表。<link> 標籤在(文檔的)頭部:

<head>
<link rel="stylesheet" type="text/css" href="mystyle.css" />
</head>

瀏覽器會從文件 mystyle.css 中讀到樣式聲明,並根據它來格式文檔。

外部樣式表能夠在任何文本編輯器中進行編輯。文件不能包含任何的 html 標籤。樣式表應該以 .css 擴展名進行保存。下面是一個樣式表文件的例子:

hr {color: sienna;}
p {margin-left: 20px;}
body {background-image: url("images/back40.gif");}

不要在屬性值與單位之間留有空格。假如你使用 「margin-left: 20 px」 而不是 「margin-left: 20px」 ,它僅在 IE 6 中有效,可是在 Mozilla/Firefox 或 Netscape 中卻沒法正常工做。

2)內部樣式表

當單個文檔須要特殊的樣式時,就應該使用內部樣式表。你可使用 <style> 標籤在文檔頭部定義內部樣式表,就像這樣:

<head>
<style type="text/css">
  hr {color: sienna;}
  p {margin-left: 20px;}
  body {background-image: url("images/back40.gif");}
</style>
</head>

內聯樣式

因爲要將表現和內容混雜在一塊兒,內聯樣式會損失掉樣式表的許多優點。請慎用這種方法,例如當樣式僅須要在一個元素上應用一次時。

要使用內聯樣式,你須要在相關的標籤內使用樣式(style)屬性。Style 屬性能夠包含任何 CSS 屬性。本例展現如何改變段落的顏色和左外邊距:

<p style="color: sienna; margin-left: 20px">
This is a paragraph
</p>

3)多重樣式

若是某些屬性在不一樣的樣式表中被一樣的選擇器定義,那麼屬性值將從更具體的樣式表中被繼承過來。

例如,外部樣式表擁有針對 h3 選擇器的三個屬性:

h3 {
  color: red;
  text-align: left;
  font-size: 8pt;
  }

而內部樣式表擁有針對 h3 選擇器的兩個屬性:

h3 {
  text-align: right; 
  font-size: 20pt;
  }

假如擁有內部樣式表的這個頁面同時與外部樣式表連接,那麼 h3 獲得的樣式是:

color: red; 
text-align: right; 
font-size: 20pt;

即顏色屬性將被繼承於外部樣式表,而文字排列(text-alignment)和字體尺寸(font-size)會被內部樣式表中的規則取代。

 

 

參考資料

1. CSS 基礎語法

相關文章
相關標籤/搜索