CSS學習筆記

2021-07-23 06:46:42 字數 2823 閱讀 6335

css全稱為「層疊樣式表 (cascading style sheets)」,它主要是用於定義html內容在瀏覽器內的顯示樣式,如文字大小、顏色、字型加粗等。使用css樣式的乙個好處是通過定義某個樣式,可以讓不同網頁位置的文字有著統一的字型、字型大小或者顏色等。

css樣式由選擇符和宣告組成,而宣告又由屬性和值組成。

選擇符:又稱選擇器,指明網頁中要應用樣式規則的元素,如本例中是網頁中所有的段(p)的文字將變成藍色,而其他的元素(如ol)不會受到影響。

宣告:在英文大括號「{}」中的的就是宣告,屬性和值之間用英文冒號「:」分隔。當有多條宣告時,中間可以英文分號「;」分隔,如下所示:

p注意:

1、最後一條宣告可以沒有分號,但是為了以後修改方便,一般也加上分號。

p就像在html的注釋一樣,在css中也有注釋語句:用/*注釋語句*/來標明(html中使用)。

css樣式可以寫在哪些地方呢?從css 樣式**插入的形式來看基本可以分為以下3種:內聯式、嵌入式和外部式三種。

內聯式css樣式表就是把css**直接寫在現有的html標籤中,如下面**:

這裡文字是紅色。

注意要寫在元素的開始標籤裡,下面這種寫法是錯誤的:

這裡文字是紅色。

並且css樣式**要寫在style=""雙引號中,如果有多條css樣式**設定可以寫在一起,中間用分號隔開。如下**:

這裡文字是紅色。

嵌入式css樣式,就是可以把css樣式**寫在標籤之間。如下面**實現把三個標籤中的文字設定為紅色:

嵌入式css樣式必須寫在之間,並且一般情況下嵌入式css樣式寫在之間。

外部式css樣式(也可稱為外聯式)就是把css**寫乙個單獨的外部檔案中,這個css樣式檔案以「.css」為副檔名,在內(不是在

2.設定 display: inline 方法:與第一種類似,顯示型別設為 行內元素,進行不定寬元素的屬性設定

html**:

css**:

這種方法相比第一種方法的優勢是不用增加無語義標籤,但也存在著一些問題:它將塊狀元素的 display 型別改為 inline,變成了行內元素,所以少了一些功能,比如設定長度值。

3.設定 position:relative 和 left:50%:利用 相對定位 的方式,將元素向左偏移 50% ,即達到居中的目的

通過給父元素設定 float,然後給父元素設定 position:relative 和 left:50%,子元素設定 position:relative 和 left: -50% 來實現水平居中。

我們可以這樣理解:假想ul層的父層(即下面例子中的div層)中間有條平分線將ul層的父層(div層)平均分為兩份,ul層的css**是將ul層的最左端與ul層的父層(div層)的平分線對齊;而li層的css**則是將li層的平分線與ul層的最左端(也是div層的平分線)對齊,從而實現li層的居中。

**如下:

css**:

這三種方法使用得都非常廣泛,各有優缺點,具體選用哪種方法,可以視具體情況而定。

我們在實際工作中也會遇到需要設定垂直居中的場景,這裡我們又得分兩種情況:父元素高度確定的單行文字,以及父元素高度確定的多行文字。

父元素高度確定的單行文字:

父元素高度確定的單行文字的豎直居中的方法是通過設定父元素的 height 和 line-height 高度一致來實現的。(height: 該元素的高度,line-height: 顧名思義,行高(行間距),指在文字中,行與行之間的 基線間的距離 )。

line-height 與 font-size 的計算值之差,在 css 中成為「行間距」。分為兩半,分別加到乙個文字行內容的頂部和底部。

這種文字行高與塊高一致帶來了乙個弊端:當文字內容的長度大於塊的寬時,就有內容脫離了塊。

如下**:

hi,imooc!

css**:

方法一:使用插入 table  (包括tbody、tr、td)標籤,同時設定 vertical-align:middle。

css 中有乙個用於豎直居中的屬性 vertical-align,在父元素設定此樣式時,會對inline-block型別的子元素都有用。下面看一下例子:

html**:

看我是否可以居中。

css**:

table td

因為 td 標籤預設情況下就預設設定了 vertical-align 為 middle,所以我們不需要顯式地設定了。

方法二:在 chrome、firefox 及 ie8 以上的瀏覽器下可以設定塊級元素的 display 為 table-cell(設定為**單元顯示),啟用 vertical-align 屬性,但注意 ie6、7 並不支援這個樣式, 相容性比較差。

html**:

看我是否可以居中。

看我是否可以居中。

看我是否可以居中。

css**:

這種方法的好處是不用新增多餘的無意義的標籤,但缺點也很明顯,它的相容性不是很好,不相容 ie6、7而且這樣修改display的block變成了table-cell,破壞了原有的塊狀元素的性質。

有乙個有趣的現象就是當為元素(不論之前是什麼型別元素,display:none 除外)設定以下 2 個句之一:

1. position : absolute 

2. float : left 或 float:right 

簡單來說,只要html**中出現以上兩句之一,元素的display顯示型別就會自動變為以 display:inline-block(塊狀元素)的方式顯示,當然就可以設定元素的 width 和 height 了,且預設寬度不佔滿父元素。

如下面的**, a 標籤是 行內元素 ,所以設定它的 width 是 沒有效果的,但是設定為 position:absolute 以後,就可以了。

進入課程請單擊這裡

css**

CSS學習 CSS學習筆記

出處 注 本學習筆記只是自己的一些備忘,初學者的東西不具有參考性,請到w3school 進行系統學習。學習css我使用的工具是visual css,可以實現同步預覽,快速學習編輯css。1.css的作用 用來規定網頁中的內容的顯示方式,避免給html增加很多的屬性而將 變得臃腫。2.css的應用方式...

CSS學習 CSS學習筆記

出處 注 本學習筆記只是自己的一些備忘,初學者的東西不具有參考性,請到w3school 進行系統學習。學習css我使用的工具是visual css,可以實現同步預覽,快速學習編輯css。1.css的作用 用來規定網頁中的內容的顯示方式,避免給html增加很多的屬性而將 變得臃腫。2.css的應用方式...

CSS 學習筆記

當同乙個html元素被不止乙個樣式定義時,會使用哪個樣式呢?一般而言,所有的樣式會根據下面的規則層疊於乙個新的虛擬樣式表中,其中數字4 擁有最高的優先權。1.瀏覽器預設設定 2.外部樣式表 3.內部樣式表 位於標籤內部 4.內聯樣式 在html 元素內部 因此,內聯樣式 在html 元素內部 擁有最...