python學習筆記-Day13 -css基礎知識

CSS 概述
CSS 指層疊樣式表 (Cascading Style Sheets),用於定義如何顯示 HTML 標籤,進行美化頁面,css通常存儲在樣式表中。


css有三種存在方式

標籤內聯、頁面嵌入和外部引入,比較三種方式的優缺點。

    在標籤中使用 style='xx:xxx;'
    在頁面中嵌入 < style type="text/css"> </style > 塊
    引入外部css文件


注意:

當有多個css對同一個標籤的的樣式進行定義的時候,會按如下的順序進行加載,越靠後,優先級越高。

    1.瀏覽器缺省設置
    2.外部樣式表
    3. 內部樣式表(位於 <head> 標籤內部)
    4. 內聯樣式(在 HTML 標籤內部)

因此,內聯樣式(在 HTML 標籤內部)擁有最高的優先權,這意味着它將優先於以下的樣式聲明:<head> 標籤中的樣式聲明,外部樣式表中的樣式聲明,或者瀏覽器中的樣式聲明(缺省值)。


基礎語法:

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

selector {declaration1; declaration2; ... declarationN }

選擇器通常是您需要改變樣式的 HTML 標籤。

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

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

selector {property: value}

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

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

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

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

CSS 語法



值的不同寫法和單位

除了英文單詞 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,無論單位是什麼。


注意寫引號

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

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


多重聲明:

提示:如果要定義不止一個聲明,則需要用分號將每個聲明分開。下面的例子展示出如何定義一個紅 色文字的居中段落。最後一條規則是不需要加分號的,因爲分號在英語中是一個分隔符號,不是結束符號。然而,大多數有經驗的設計師會在每條聲明的末尾都加上 分號,這麼做的好處是,當你從現有的規則中增減聲明時,會儘可能地減少出錯的可能性。就像這樣:

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

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

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


空格和大小寫:

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

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

是否包含空格不會影響 CSS 在瀏覽器的工作效果,同樣,與 XHTML 不同,CSS 對大小寫不敏感。不過存在一個例外:如果涉及到與 HTML 文檔一起工作的話,class 和 id 名稱對大小寫是敏感的。


選擇器的分組

你可以對選擇器進行分組,這樣,被分組的選擇器就可以分享相同的聲明。用逗號將需要分組的選擇器分開。在下面的例子中,我們對所有的標題標籤進行了分組。所有的標題標籤都是綠色的。

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

繼承及其問題

根據 CSS,子標籤從父標籤繼承屬性。但是它並不總是按此方式工作。看看下面這條規則:

body {
     font-family: Verdana, sans-serif;
     }

根據上面這條規則,站點的 body 標籤將使用 Verdana 字體(假如訪問者的系統中存在該字體的話)。

通過 CSS 繼承,子標籤將繼承最高級標籤(在本例中是 body)所擁有的屬性(這些子標籤諸如 p, td, ul, ol, ul, li, dl, dt,和 dd)。不需要另外的規則,所有 body 的子標籤都應該顯示 Verdana 字體,子標籤的子標籤也一樣。並且在大部分的現代瀏覽器中,也確實是這樣的。

但是在那個瀏覽器大戰的血腥年代裏,這種情況就未必會發生,那時候對標準的支持並不是企業的優先選擇。比方說,Netscape 4 就不支持繼承,它不僅忽略繼承,而且也忽略應用於 body 標籤的規則。IE/Windows 直到 IE6 還存在相關的問題,在表格內的字體樣式會被忽略。我們又該如何是好呢?

如果你不希望 "Verdana, sans-serif" 字體被所有的子標籤繼承,又該怎麼做呢?比方說,你希望段落的字體是 Times。沒問題。創建一個針對 p 的特殊規則,這樣它就會擺脫父標籤的規則:

body  {
     font-family: Verdana, sans-serif;
     }

td, ul, ol, ul, li, dl, dt, dd  {
     font-family: Verdana, sans-serif;
     }p  {
     font-family: Times, "Times New Roman", serif;
     }



CSS 標籤選擇器

最常見的 CSS 選擇器是標籤選擇器。換句話說,文檔的標籤就是最基本的選擇器。

如果設置 HTML 的樣式,選擇器通常將是某個 HTML 標籤,比如 p、h1、em、a,甚至可以是 html 本身:

html {color:black;}
h1 {color:blue;}
h2 {color:silver;}

可以將某個樣式從一個標籤切換到另一個標籤。

假設您決定將上面的段落文本(而不是 h1 標籤)設置爲灰色。只需要把 h1 選擇器改爲 p:

html {color:black;}p {color:gray;}h2 {color:silver;}

類型選擇器

在 W3C 標準中,標籤選擇器又稱爲類型選擇器(type selector)。

“類型選擇器匹配文檔語言標籤類型的名稱。類型選擇器匹配文檔樹中該標籤類型的每一個實例。”

下面的規則匹配文檔樹中所有 h1 標籤:

h1 {font-family: sans-serif;}

因此,我們也可以爲 XML 文檔中的標籤設置樣式:

XML 文檔:

<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/css" href="note.css"?><note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

CSS 文檔:

note
  {
  font-family:Verdana, Arial;
  margin-left:30px;
  }
to
  {
  font-size:28px;
  display: block;
  }
from
  {
  font-size:28px;
  display: block;
  }
heading
  {
  color: red;
  font-size:60px;
  display: block;
  }
body
  {
  color: blue;
  font-size:35px;
  display: block;
  }



CSS類選擇器

類選擇器允許以一種獨立於文檔標籤的方式來指定樣式。

該選擇器可以單獨使用,也可以與其他標籤結合使用。

提示:只有適當地標記文檔後,才能使用這些選擇器,所以使用這兩種選擇器通常需要先做一些構想和計劃。

要應用樣式而不考慮具體設計的標籤,最常用的方法就是使用類選擇器。

修改HTML代碼

在使用類選擇器之前,需要修改具體的文檔標記,以便類選擇器正常工作。

爲了將類選擇器的樣式與標籤關聯,必須將 class指定爲一個適當的值。請看下面的HTML代碼:

<h1
class="important">
This
heading is very important.
</h1>
<p
class="important">
This
paragraph is very important.
</p>

在上面的代碼中,兩個標籤的 class都指定爲 important:第一個標題(h1標籤),第二個段落(p標籤)。

語法

然後我們使用以下語法向這些歸類的標籤應用樣式,即類名前有一個點號(.),然後結合通配選擇器:

*.important
{color:red;}

如果您只想選擇所有類名相同的標籤,可以在類選擇器中忽略通配選擇器,這沒有任何不好的影響:

.important
{color:red;}
結合標籤選擇器

類選擇器可以結合標籤選擇器來使用。

例如,您可能希望只有段落顯示爲紅色文本:

p.important
{color:red;}

選擇器現在會匹配 class屬性包含 important的所有 p標籤,但是其他任何類型的標籤都不匹配,不論是否有此class屬性。選擇器 p.important解釋爲:“其 class屬性值爲 important的所有段落”。 因爲 h1標籤不是段落,這個規則的選擇器與之不匹配,因此h1標籤不會變成紅色文本。

如果你確實希望爲 h1標籤指定不同的樣式,可以使用選擇器h1.important

p.important
{color:red;}
h1.important
{color:blue;}
CSS多類選擇器

在上一節中,我們處理了 class值中包含一個詞的情況。在 HTML中,一個 class值中可能包含一個詞列表,各個詞之間用空格分隔。例如,如果希望將一個特定的標籤同時標記爲重要(important)和警告(warning),就可以寫作:

<p
class="important warning">
This
paragraph is a very important warning.
</p>

這兩個詞的順序無關緊要,寫成 warning important 也可以。

我們假設 classimportant的所有標籤都是粗體,而 classwarning的所有標籤爲斜體,class中同時包含 importantwarning的所有標籤還有一個銀色的背景 。就可以寫作:

.important
{font-weight:bold;}
.warning
{font-style:italic;}
.important.warning
{background:silver;}

通過把兩個類選擇器鏈接在一起,僅可以選擇同時包含這些類名的標籤(類名的順序不限)。

如果一個多類選擇器包含類名列表中沒有的一個類名,匹配就會失敗。請看下面的規則:

.important.urgent
{background:silver;}

不出所料,這個選擇器將只匹配 class屬性中包含詞 importanturgentp標籤。因此,如果一個 p標籤的 class屬性中只有詞 importantwarning,將不能匹配。不過,它能匹配以下標籤:

<p
class="important urgent warning">
This
paragraph is a very important and urgent warning.
</p>

注意:在 IE7之前的版本中,不同平臺的 Internet Explorer 都不能正確地處理多類選擇器。



CSS ID 選擇器

在某些方面,ID選擇器類似於類選擇器,不過也有一些重要差別。

語法

首先,ID選擇器前面有一個 #-也稱爲棋盤號或井號。

請看下面的規則:

*#intro
{font-weight:bold;}

與類選擇器一樣,ID選擇器中可以忽略通配選擇器。前面的例子也可以寫作:

#intro
{font-weight:bold;}

這個選擇器的效果將是一樣的。

第二個區別是 ID選擇器不引用 class屬性的值,毫無疑問,它要引用 id屬性中的值。

以下是一個實際 ID選擇器的例子:

<p
id="intro">This is a paragraph of introduction.</p>
類選擇器和ID選擇器的異同

在類選擇器這一章中我們曾講解過,可以爲任意多個元素指定類。前一章中類名important被應用到 ph1元素,而且它還可以應用到更多元素。

區別1:只能在文檔中使用一次

與類不同,在一個 HTML文檔中,ID選擇器會使用一次,而且僅一次。

區別2:不能使用ID詞列表

不同於類選擇器,ID選擇器不能結合使用,因爲 ID屬性不允許有以空格分隔的詞列表。

區別3ID能包含更多含義

類似於類,可以獨立於元素來選擇ID。有些情況下,您知道文檔中會出現某個特定ID值,但是並不知道它會出現在哪個元素上,所以您想聲明獨立的ID選擇器。例如,您可能知道在一個給定的文檔中會有一個ID值爲 mostImportant的元素。您不知道這個最重要的東西是一個段落、一個短語、一個列表項還是一個小節標題。您只知道每個文檔都會有這麼一個最重要的內容,它可能在任何元素 中,而且只能出現一個。在這種情況下,可以編寫如下規則:

#mostImportant
{color:red; background:yellow;}

這個規則會與以下各個元素匹配(這些元素不能在同一個文檔中同時出現,因爲它們都有相同的ID值):

<h1
id="mostImportant">This is important!</h1>
<em
id="mostImportant">This is important!</em>
<ul
id="mostImportant">This is important!</ul>

區分大小寫

請注意,類選擇器和 ID選擇器可能是區分大小寫的。這取決於文檔的語言。HTMLXHTML將類和 ID值定義爲區分大小寫,所以類和 ID值的大小寫必須與文檔中的相應值匹配。

因此,對於以下的 CSSHTML,元素不會變成粗體:

#intro
{font-weight:bold;}
<p
id="Intro">This is a paragraph of introduction.</p>

由於字母 i的大小寫不同,所以選擇器不會匹配上面的元素。


參考:

http://www.w3school.com.cn

http://www.cnblogs.com/wupeiqi/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章