101平臺網站建設CSS基礎知識?

一、什麼是CSS?

CSS是Cascading Style Sheet的縮寫,有些書上把它譯為"層疊樣式單"或"級聯樣式單"(下文簡稱"樣式單"),在1997年W3C頒佈HTML4標準的同時也公佈了有關樣式單的第一個標準CSS1。樣式單是對以前的HTML(3.2以前的HTML版本)語法的一次重大革新,以前的HTML版本中,各種功能的實現是通過標記元素實現的,這也造成了各個瀏覽器廠商為了標新立意建立各種只有自家支援的標記,各種標記互相巢狀,就可以達到不同的效果,比如要在一段文字中把一部分文字變成紅色,HTML3.2中應該是這樣的:

這裡顯示紅色字

而在樣式單中,把某些標記(如上例中的"font"標記)屬性化,利用樣式單,上例可以變成:

這裡顯示紅色字

這就是樣式單的全部功能嗎?遠遠不是!前面說過樣式單是DHTML的一部分,建立樣式單的真正意義在於把物件真正引入了HTML,使得可以使用指令碼程式(如Javascript、VBScript)呼叫物件屬性,並且可以改變物件屬性,達到動態的目的,這在以前的HTML中是無法實現的,如果你使用過如VB等面向物件的程式設計工具,你會更快的發現,用樣式單做DHTML是多麼容易。樣式單的另一項貢獻是簡化了HTML中各種繁瑣的標記,使得各個標記的屬性更具有一般性和通用性,並且樣式單擴充套件了原先的標記功能,能夠實現更多的效果,樣式單甚至超越了Web頁面的本身顯示功能,而把樣式擴充套件到多種媒體上,顯示了難以抗拒的魅力。

樣式單自從CSS1的版本之後,又在1998年5月釋出了CSS2版本,樣式單得到了更多的充實。Internet Explorer4和Netscape Navigator4都宣傳支援樣式單,但從各方面來看IE4的效果都要超過NE4,這是因為IE4和NE4的Javascript文件模型(DOM)不同而造成的,從表面看,二者的模型區別不大,但實質上卻是大相徑庭,IE4的模型能夠更加容易的把動態效果引入Web頁面,雖然現在IE4的模型只有微軟自己支援,但它卻已被清楚的寫入了W3C的DHTML標準;而NE4的樣式單並不能通過指令碼呼叫物件的屬性,說的不好聽一點,它的樣式單只是徒有其表罷了。(Netscape公司自己開發了一種樣式單稱作JSSS,它利用Javascript來定義樣式,但是並沒有得到W3C的承認。)

二、進一步瞭解樣式單

Cascading Style Sheet中的Cascading是"層疊"的意思,也就是說在同一個Web文件中可以有多個樣式單存在,這些樣式單根據所在的位置,擁有不同的優先順序,優先順序越高,就會被最後在顯示時採用。從樣式單插入的形式來看可以分為三種:

•內聯式樣式單:它利於現有的HTML標記,把特殊的樣式加入到那些由標記控制的資訊中,比如剛才的例子。

•嵌入式樣式單:它和Javascript一樣可以嵌入到HTML檔案的頭部中去(和標記之間),使用容器裝載,例如:"",這樣會對頁面中所有

標記都起作用。

•外部式樣式單:是一種儲存在外部的樣式單檔案,外部檔案以.CSS為副檔名,例如" "。

在應用時可以根據需要隨意運用以上三種方式,但在實際中內聯式樣式單和嵌入式樣式單使用得更多一些。

三、樣式單的語法特徵

樣式單有自己獨特的書寫方法,掌握了它的語法特徵,再瞭解它的各種屬性,那麼你會發現在Web頁面中運用樣式單會是多麼輕鬆。例如有一個最簡單的HTML文件:

Text goes here…

我們可以用嵌入式樣式單規定樣式。

這裡顯示紅色字

可以看到,在這個文件裡,多了"Style"標記,之間用

利用ClassID顯示內容。

其中.someclass代表類,#someID代表ID。類和ID也可以和元素標記合用,比如:

p.bigFont {……}

則表示必須在某個為bigFont類的P標記(

)才執行樣式單,同樣的也適合於ID。為了簡化宣告某些重複屬性的標記,可以用","把不同的選擇器隔開,表示它們都表示成相同的屬性,如:

H1,H2Div, p.mytext {……}

有時我們還希望能夠在特定的範圍內使樣式單生效:

p em

元素標記間又空格隔開,表示在

間的 用紅色表示。另外還可以利用"~"表示一個選擇器後面緊跟另一個選擇器,並且兩邊以"/"圍住:

/ Selector1 ~ Selector2/ {……}

表示如果Selector2緊跟著Selector1則使用該樣式單。

2、屬性值的單位

在樣式單中,屬性的單位多為長度單位,包括px(象素)、pt(磅)、em(一種排版中的單位,1em=12pt)、mm(毫米)、cm(釐米)、pc(1pc=12pt)、in(英寸),這些單位可以使用整數(如px)表示,也可以使用實數(如em)表示,並且元素中對數值還有繼承(inherit)的關係比如:

bodyH1

那麼在顯示中H1的text-indent屬性就不是36pt而是45pt。

有的屬性的單位甚至可以是負值,如margin,可以達到一些特殊的效果,如元素之間的重疊。另外還有一些其他的單位如角度,它的單位有deg(度)、grad(梯度)和rad(弧度);頻率的單位,Hz和kHz,這些都是我們非常熟悉的。

3、註釋及空格

樣式單也有註釋語句:可以用"/*……*/"作為註釋標記,在瀏覽器中有一個對樣式單的分析器,它負責對樣式單的檢查,分析器將忽略註釋標記之間的內容。空格在樣式單中是有效的,如果字元之間有超過一個空格存在,它將省略其餘空格,而只保留一個,特別是在宣告某些字型的時候,空格一定不能省略。

2 要注意的方面

首先,樣式單是區分大小寫的,所以要注意拼寫;其次對於CSS2未宣告的屬性和方法,樣式單的分析器會忽略它的存在,如:

H1 ,H2H3 ,H4 & H5P {color:blue ;font-variant:small-caps}

其中"&"是樣式單中沒有的標號,第二行整個被分析器略過,第三行中的font-variant不是一個合法屬性,也被略過("color:blue"有效)。

瞭解了以上規則,你就已經對樣式單入門了,下面將詳細介紹樣式單的各種屬性及屬性值。

CSS屬性:

1、媒體(Media)型別

樣式單的一個最重要的特點就是它可以作用於多種媒體,比如頁面、螢幕、電子合成器等等。特定的屬性只能作用於特定的媒體,如"font-size"屬性只對可捲動的媒體型別有效(螢幕)。

宣告一個媒體屬性可以用@import或@media引入:

@import url(loudvoice.css) speech;@media print {/* style sheet for print goes here */}

也可以在文件標記中引入媒體:

可以看出,@import和@media的區別在於,前者引入外部的樣式單用於媒體型別,後者直接引入媒體屬性。@import的使用方法是@import加樣式單檔案的URL地址再加媒體型別,可以多個媒體共用一個樣式單,媒體型別之間用","分割符分開。@media用法則是把媒體型別放在前面,其他規則和rule-set基本一樣。下面列出各種媒體型別:

SCREEN:指計算機螢幕。PRINT:指用於印表機的不透明介質。PROJECTION:指用於顯示的專案。BRAILLE:盲文系統,指有觸覺效果的印刷品。AURAL:指語音電子合成器。TV:指電視型別的媒體。HANDHELD:指手持式顯示裝置(小螢幕,單色)ALL:適合於所有媒體。

CSS屬性:

2、BOX模型(BOX Model)屬性

什麼是BOX?CSS把HTML中以 …… 的部分稱為BOX(容器),BOX有三類屬性:padding、margin和border。

Margin屬性:

Margin屬性分為margin-top、margin-right、margin-bottom、margin-left和margin五個屬性,分別表示BOX裡內容離邊框的距離,它的屬性值是數值單位,可以是長度、百分比或auto,margin甚至可以設為負值,造成BOX與BOX之間的重疊顯示,關於margin的屬性詳見下表:

屬性名稱: 'margin-top'、'margin-right'、'margin-bottom'、'margin-left'屬性值: 初始值: 0適合物件: 所有元素是否繼承: no百分比備註: 相對於BOX的寬度

例如:

H1 { margin-top: 2em }H2 { margin-right: 12.3% }

Margin還有一個快捷的書寫方法,就是直接用margin屬性,例如:

BODY { margin: 1em 2em 3em 2em}

等同於:

BODY {margin-top:1em;margin-right:2em;margin-bottom:3em;margin-left:2em;}

margin屬性後面可以有四個值,中間用空格隔開(記住不是逗號),順序是"上右下左",當然margin後面可以不足四個值,例如:

BODY { margin: 2em } /* 所有的margin都設為2em */BODY { margin: 1em 2em } /* 上下margin為1em,右左margin為2em */BODY { margin: 1em 2em 3em } /* 上margin為1em,右左margin為2em,下margin為3em*/

Padding屬性:

Padding屬性用來描述BOX的邊框和內容之間插入多少空間,和margin屬性類似,它也分為上右下左和一個快捷方式padding,關於padding的屬性詳見下表:

屬性名稱: 'padding-top'、'padding-right'、'padding-bottom'、'padding-left' 、'padding'屬性值: 初始值: 0適合物件: 所有元素是否繼承: no百分比備註: 相對於BOX的寬度

例如:

BLOCKQUOTE { padding-top: 0.3em }

padding屬性和margin類似此處略去。

Border屬性:

平時我們在檢視HTML文件時,看到一段文字,並不會把它當作一個BOX,實際上BOX是有邊框的,只是平時不顯示出來罷了,而border屬性就是用來描述BOX邊框的。Border屬性分為border-width、border-color和border-style,而這些屬性下面又有分支。

border-width屬性:

border-width屬性又分為:border-top-width、border-right-width、border-bottom-width、border-left-width和border-width屬性,border-width用長度表示為"thin/medium/thick"或長度單位表示,下面是border-width屬性的詳細列表:

屬性名稱: 'border-top-width'、'border-right-width'、'border-bottom-width'、'border-left-width'、'border-width'屬性值: 初始值: medium適合物件: 所有元素是否繼承: no百分比備註: 被禁止

border-width為快捷方式,順序為上右下左,值之間用空格隔開。

border-color屬性:

border-color屬性用來顯示BOX邊框顏色,分為border-top-color、border-right-color、border-bottom-color、border-right-color和border-color屬性,屬性值為顏色,可以用十六進位制表示,也可用rgb()表示,屬性見下:屬性名稱: 'border-top-color'、'border-right-color'、'border-bottom-color'、'border-left-color'、'border-color'

屬性值: 初始值: 元素顏色的初始值適合物件: 所有元素是否繼承: no百分比備註: 被禁止

border-color為快捷方式,順序為上右下左,值之間用空格隔開。

border-style屬性:

border-style屬性用來設定BOX物件邊框的樣式,它的屬性值為CSS規定的關鍵字,平常看不到border是因為,初始值是none的緣故。屬性見下:

屬性名稱: 'border-top101平臺線上101平臺101娛樂http://101zaixian.net/http://101zaixian.net/a/pingtaihuodong/101娛樂平臺線上http://zaixian101.net/99彩網99彩票99彩平臺http://99caiw.com/101娛樂平臺101平臺101娛樂http://zaixian101.net/list/?8_1.htmlhttp://zaixian101.net/about/?19.html101娛樂平臺線上http://zaixian101.net/about/?15.html;、'border-right-style'、'border-bottom-style'、'border-left-style'、'border-style'屬性值: 初始值: none適合物件: 所有元素是否繼承: no百分比備註: 被禁止

border-color為快捷方式,順序為上右下左,值之間用空格隔開。

屬性值的名稱和代表意義如下:

none:無邊框。dotted:邊框為點線。dashed:邊框為長短線。solid:邊框為實線。double:邊框為雙線。groove、ridge、inset和outset:顯示不同效果的3D邊框(根據color屬性)。

border屬性:

border屬性為Border的快捷方式,屬性值間用空格隔開,順序是"邊框寬度 邊框樣式 邊框顏色",例如:

hello!

還可以用border-top、border-right、border-bottom、border-left分別作為上右下左的快捷方式,屬性值順序同border屬性。

CSS屬性:

3、佈局(Layout)屬性:

在以前的HTML裡,元素的位置只能靠元素的依次排列覺得,而在CSS裡你可以更精確的定位元素。Netscape曾提出過Layer標記,它對於精確佈局很有好處,但是並沒有被W3C承認,W3C在CSS提出了類似於Layer標記的功能。

position屬性:

position屬性用來決定元素的位置型別,詳見屬性:

屬性名稱: 'position'屬性值: absolute relative static初始值: static適合物件: 所有元素是否繼承: no百分比備註: 被禁止其屬性值分別代表:absolute:螢幕上的絕對位置。relative:螢幕上的相對位置。static:固有位置。

direction屬性:

direction屬性決定BOX的排列方向,詳見屬性:

屬性名稱: 'direction'屬性值: ltr rtl初始值: ltr適合物件: 所有元素是否繼承: yes百分比備註: 被禁止

float和clear屬性:

在HTML中圖片可以選擇飄浮的位置,現在BOX物件通過CSS對於也可以選擇飄浮的位置。改變BOX的float屬性,BOX將飄浮在其他元素的左或右方:

屬性名稱: 'float'屬性值: left right none初始值: none適合物件: 所有元素是否繼承: no百分比備註: 被禁止

例如:

Some sample text that has no other...

相反的,使用clear屬性將禁止元素在BOX的左方或右方飄浮:

屬性名稱: 'clear'屬性值: left right both none初始值: none適合物件: 所有元素是否繼承: no百分比備註: 被禁止

絕對位置屬性:

絕對位置屬性有四個屬性:top、right、bottom和left,屬性值為長度單位或百分數:

屬性名稱: 'top'、'right'、'bottom'、'left'屬性值: auto初始值: none適合物件: 所有元素是否繼承: no百分比備註: 被禁止

利用以上屬性,使用者就可以精確定義元素的位置,如:

I used two red hyphens to serve as a change bar. Theywill "float" to the left of the line containing THIS--word.

z-index屬性:

在CSS中允許元素的重疊顯示,這樣就有一個顯示順序的問題,z-index屬性描述了元素的前後位置,如果把電腦螢幕看作X-Y平面的話,那麼Z軸就是垂直於螢幕的,z-index使用整數表示元素的前後位置,數值越大,就會顯示在相對靠前的位置,並且CSS同意在z-index中使用負數。

屬性名稱: 'z-index'屬性值: auto 初始值: auto適合物件: 使用position屬性的元素是否繼承: no百分比備註: 被禁止

width屬性:

規定BOX的width屬性,可以使BOX的寬度不依靠它所包含的內容的多少:

屬性名稱: 'width'屬性值: auto初始值: auto適合物件: 塊元素是否繼承: no百分比備註:根據父元素的width而定

在CSS中還提供了min-width和max-width屬性,使得BOX的寬度在最小寬度和最大寬度之間。

屬性名稱: 'min-width'屬性值: 初始值: 0適合物件: all是否繼承: no百分比備註:根據父元素的width而定

屬性名稱: 'max-width'屬性值: 初始值: 100%適合物件: all是否繼承: no百分比備註:根據父元素的width而定

height屬性:

相同的BOX還有height屬性來控制本身的高度:

屬性名稱: 'height'屬性值: auto初始值: auto適合物件: 塊元素是否繼承: no百分比備註:根據父元素的height而定

在CSS中還提供了min-height和max-height屬性,使得BOX的高度在最小高度和最大高度之間。

屬性名稱: 'min-height'屬性值: 初始值: 0適合物件: all是否繼承: no百分比備註:根據父元素的height而定

屬性名稱: 'max-height'屬性值: 初始值: 100%適合物件: all是否繼承: no百分比備註:根據父元素的height而定

overflow屬性:

在規定元素的寬度和高度時,如果元素的面積不足以顯示全部內容的話就要用到overflow屬性:

屬性名稱: 'overflow'屬性值: visible hidden scroll auto初始值: visible適合物件: 元素的position屬性是否繼承: no百分比備註: 被禁止

屬性值含義如下:

visible:擴大面積以顯示所有內容。hidden:隱藏超出範圍的內容。scroll:在元素的右邊顯示一個滾動條。auto:當內容超出元素面積時,顯示滾動條。

clip屬性:

CSS還提供了一種clip屬性,可以把元素區域剪下成各種形狀,但目前提供的只有方形一種:

屬性名稱: 'clip'屬性值: auto初始值: auto適合元素: 元素的position屬性被設為absolute是否繼承: no百分比備註: 被禁止

值為rect(top right bottom left)。

line-height和vertical-align屬性:

line-height屬性可以規定元素內部的行間距,使用長度單位或百分數:

屬性名稱: 'line-height'屬性值: normal 初始值: normal適合物件: 所有元素是否繼承: yes百分比備註:根據元素的字型大小而定

例如下面的例子,雖然表達方式不同,但結果一樣:

DIV { line-height: 1.2; font-size: 10pt }DIV { line-height: 1.2em; font-size: 10pt }DIV { line-height: 120%; font-size: 10pt }

vertical-align屬性決定元素在垂直位置的顯示:

屬性名稱: 'vertical-align'屬性值: baseline sub super top text-top middle bottom text-bottom 初始值: baseline適合物件: inline elements適合繼承: no百分比備註: 根據元素的line-height屬性而定

屬性值含義如下:baseline:與元素的基線對齊。middle:與元素中部對齊。sub:字下沉。super:字上升。text-top:文字頂部對齊。text-bottom:文字底部對齊。Top:和本行位置最高元素對齊。Bottom:和本行位置最低元素對齊。

Visibility屬性:

該屬性用於控制元素的顯示或隱藏:

屬性名稱: 'visibility'屬性值: inherit visible hidden初始值: inherit適合物件: 所有元素是否繼承: 如果該值為inherit,則繼承父元素屬性百分比備註: 被禁止

相關問題答案