CSS
Cascading Style Sheet
,層疊樣式表,將網頁內容和顯示樣式分離,提高程式效能。
它是一種專門描述結構文件的表現方式的文件,主要用於網頁風格設計,包括字型大小、顏色、以及元素的精確定位。在傳統的web
網頁設計裡,使得css
能讓單調的html
網頁更富表現力。
css
的引入方式
css
可以控制html
文件的顯示,但是控制文件顯示之前,首先應在需要顯示的html
文件中引入css
樣式表,html
提供了以下四種引入方式:
(1)內聯樣式:將樣式內聯定義到具體的html
元素上,利用元素的style
屬性實現,通用用於精確控制一個html
元素的表現。
<!-- 內聯樣式:將css程式碼寫在html具體的元素的style屬性內 -->
<p id="p1" style="color: red; font-size: 16px">內聯樣式</p>
(2)內部樣式:通常在html
文件頭部定義樣式單部分來實現,這種方式下每批css
樣式只控制一份html
文件。
<!-- 內部樣式:將css程式碼寫在<head>裡的<style>標籤內實現 -->
<style type="text/css">
#p2{
color: blue;
font-size: 20px;
}
</style>
(3)外鏈樣式:樣式檔案和html
文件分離,樣式檔案需要額外引入,這種方式下每批css
樣式能控制多份html
文件(最常用)。
<!-- 外鏈樣式:利用link標籤引入,使用頻率最高 -->
<link rel="stylesheet" type="text/css" href="outer.css" />
(4)匯入外部樣式:和第三種方式類似,只是使用@import
來引入外部樣式表檔案。
<!-- 匯入外部樣式:與link方法類似,語法不通,在<style>標籤內使用 -->
<style type="text/css">
@import "outer.css`";
@import url("outer.css");
</style>
優先順序:內聯樣式style
> 內部樣式 > 匯入外部樣式import
> 外鏈樣式link
css
常用選擇器介紹
定義css
樣式的語法總遵循如下格式:
Selector{
property1: value1;
property2: value2;
}
Selector:選擇器,決定該樣式的定義對哪些元素起作用
{property:value...}:屬性定義,決定這些樣式起怎樣的作用(字型、顏色、佈局等)
標籤選擇器:宣告哪種標籤會使用該css
樣式
/* E{....},其中E代表有效的html元素 */
a{
background-color: blue;
color: red;
}
class
選擇器:宣告特定class
值的標籤會使用該css
樣式(一個標籤可以設定多個class
值)
/* [E].classValue{....},其中E表示html元素,當E存在時,指定的範圍是標籤為E且屬性class的值為classValue,不存在時,範圍是標籤屬性class的值為classValue */
.p2{
background-color: yellow;
color: gray;
}
id
選擇器:宣告特定id值的標籤會使用該css
樣式(一個標籤只能設定一個id
值)
/* [E]#idValue{....},同class選擇器概念,E可存在或不存在 */
#id1{
background-color: gray;
color: white;
}
組合選擇器:將具有相同css
樣式的選擇器,一次性宣告(不限於標籤選擇器,class
選擇器和id
選擇器也可以組合)
/* Selector1, Selector2, Selector3{....},Selector都是有效的選擇器,可以是標籤選擇器、class選擇器、id選擇器等 */
span, b, #id1{
color: red;
}
巢狀選擇器:也叫關聯選擇器(不只是標籤選擇器能巢狀,class
選擇器和id
選擇器也可以)
/* Selector1 Selector2{....},Selector都是有效的選擇器,表示當前需要設定樣式的範圍是Selector1選擇器下所有的Selector2選擇器*/
div p{
background-color: green;
color: white;
}
常用的
css
屬性介紹
字型font-family
:規定文字的字型系列,如"serif"
、"sans-serif"
等font-size
:規定文字的字型尺寸font-style
:規定文字的字型樣式,主要有normal
,italic
,oblique
font-weight
:規定字型的粗細,主要有normal
,bold
,自定義粗細
文字color
:設定文字顏色letter-spacing
:設定字元間距(每個字母間的間距)line-height
:設定文字行高text-align
:設定文字的對齊方式,只有left
, right
, center
text-decoration
:設定文字的裝飾效果,主要有overline
(上劃線), underline
(下劃線), line-through
(刪除線)text-indent
:設定文字看首行縮排text-transform
:設定文字的大小寫,主要有uppercase
, lowercase
, capitalize
word-spacing
:設定單詞間距
邊框border
:在一個宣告中設定所有的邊框屬性border-color
:設定四條邊框的顏色border-style
:設定四條邊框的樣式,只要有dotted
, solid
, double
, dashed
等值border-width
:設定四條邊框的寬度
邊框分為:border-left
、border-right
、border-top
、border-bottom
border-left
:在一個宣告中設定所有左邊框屬性,對應還有border-right
等border-left-color
:設定左邊框顏色border-lelft-style
:設定左邊框樣式border-left-width
:設定左邊框寬度
可以將屬性一次性寫在一起,更方便border: 10px red solid;
背景background
:在一個宣告中設定所有的背景屬性background-attachment
:設定背景影像是否固定或者隨著頁面的其餘部分滾動,主要有fixed
和scroll
兩個值background-color
:設定元素的背景顏色background-image
:設定元素的背景圖片,主要有url
和none
兩個屬性background-position
:px
, %
設定背景影像的開始位置,可以指定top
left
等,也可以指定具體的畫素位置background-repeat
:設定是否及如何重複背景影像,主要有repeat
, repeat-x
, repeat-y
, no-repeat
列表list-style
:在一個宣告中設定所有的列表屬性,設定成none
可以去掉ul
中的原點等屬性值list-style-image
:將影像設定為列表項標記,主要有url
值list-style-position
:設定列表項標記的放置位置,主要有outside
和inside
兩個值list-style-type
:設定列表項標記的型別,主要有disc
, circle
, square
, decimal
等,不能和list-style-image
同時使用
表格border-collapse
:設定是否把表格邊框合併為單一的邊框,值為collapse
border-spacing
:設定分割單元格邊框的距離,與border-collapse
不能同時使用caption-side
:設定表格標題的位置empty-cells
:設定是否顯示錶格中的空單元格,值為hide
, show
常用偽類別屬性<a>
超連結標籤
`a:link` 超連結的普通樣式
`a:visited` 被點選過的超連結樣式
`a:hover` 滑鼠指標經過超連結上時的樣式
`a:active` 在超連結上單擊時,既"當前啟用"時超連結的樣式
塊級標籤->行級標籤:display:inline
行級標籤->塊級標籤:display:block
注:行級標籤是預設情況下是不能設定寬度和高度的,如果要設定,需要把行級標籤變成塊級標籤
盒子模型
我們可以把頁面中的元素都可以看作一個盒子,佔據著一定的頁面空間,這些佔據的空間往往比單純的內容要大,換句話說,我們可以調整盒子的邊框和距離的引數來調整盒子的位置。
盒子寬度:content
+padding
+border
+margin
因此我們可以利用好盒子的這些屬性,就能很好的實現各種各樣的排版效果。
border
屬性主要有3個,border-color
, border-width
, border-style
,通常在設定border
時常常將3個屬性進行很好的配合,才能達到良好的效果。
padding
用於控制content
與border
之間的距離。padding
:一次性將四個邊距全部設定(上右下左,順時針)padding-top
:上邊距padding-bottom
:下邊距padding-left
:左邊距padding-right
:右邊距
margin
指的是元素與元素之間的距離。margin
:一次性將四個邊距全部設定(上右下左,順時針)margin-top
:上邊距margin-bottom
:下邊距margin-left
:左邊距margin-right
:右邊距
注:
- 兩個行級元素之間的距離是margin-left和margin-right兩者的和,兩個塊級元素之間的距離不是margin-top和margin-bottom的和,而是兩者之中的較大值。
- 其實margin除了設定正數以外,也可以設定負數,當設定為負數時,會使得塊向反方向移動,甚至覆蓋在另外的塊上。
- 當塊之間是父子關係,通過設定子塊的margin為負數時,可以使得子塊從父塊中”分離出來”
元素的定位
網頁中各個元素都必須有自己的位置,從而搭建出整個頁面的結構。
`float`:值為`left`, `right`或者預設值`none`,當設定了元素向左浮動或向右浮動時,元素會向其父元素的左側或右側靠近
`clear`:設定塊元素的`clear`屬性清除對`float`的影響,值為`left`, `right`, `both`
`position`:制定塊的位置,即塊相對於其父塊的位置和相對它自身應該在位置,值有`absolute`, `fixed`, `relative`, `static`
當將子塊的`position`設定為`absolute`時,子塊已經不再從屬於父塊,其邊框設定的距離是相對頁面`body`的距離,而不是父塊的距離
當將塊的`position`引數設定為`relative`時,與將其設定為`absolute`時完全不同,這時子塊時相對於自身在父塊的原先位置來進行定位的。