css世界 探索第一章

2021-08-21 12:54:05 字數 2663 閱讀 5288

1.文件流:是css世界中的一種基本的定位和布局機制 ,是引導元素排列和定位的一條看不見的流。流向只能是正向的。浮動定位會脫離文件流。

2.流體 布局:曾經風靡的「div+css 布局」,實際上指的就是這裡的「流體 布局」

3.table 的世界:有著自己的世界,「流」的特性對並不適用,一些 css 屬性的表現,如單元格的 vertical-align,也和普通的元素不一樣。 雖然 css2.1 加強了和的聯絡,如對 table 類別的 display 屬性值的支援等

4.css 新世界——css3

(1)布局更為豐富。

• 移動端的崛起,催生了 css3 媒介查詢以及許多響應式布局特性的出現,如元素 的 srcset 屬性、css 的 object-fit 屬性。

• 彈性盒子布局(flexible box layout)

• 格柵布局(grid layout)姍姍來遲。

(2)視覺表現長足進步。

• 圓角、陰影和漸變讓元素更有質感。

• transform 變換讓元素有更多可能。

• animation 讓動畫變得非常簡單。 上面提到的全部都是 css3 的新屬性。因為 css3 的設計初衷是為了實現更豐富、更複雜 的網頁,所以基本上和「流」的關係並不大。

5.長度的劃分

+ 長度單位 =

長度單位又可以分為相對長度單位和絕對長度單位。

(1)相對長度單位。相對長度單位又分為相對字型長度單位和相對視區長度單位。

• 相對字型長度單位,如 em 和 ex,還有 css3 新世界的 rem 和 ch(字元 0 的寬度)。

• 相對視區長度單位,如 vh、vw、vmin 和 vmax。

(2)絕對長度單位:最常見的就是 px,還有 pt、cm、mm、pc 等了解一下就可以,在我 看來,它們實用性近乎零。

6.後代選擇器

選擇所有合乎規則的後代元素。空格連線。

• 相鄰後代選擇器:僅僅選擇合乎規則的兒子元素,孫子、重孫元素忽略,因此又稱「子 選擇器」。>連線。適用於 ie7 以上版本。 •             • 兄弟選擇器:選擇當前元素後面的所有合乎規則的兄弟元素。~連線。適用於 ie7 以上 版本。

• 相鄰兄弟選擇器:僅僅選擇當前元素相鄰的那個合乎規則的兄弟元素。+連線。適用於 ie7 以上版本。

7.塊級元素

「塊級元素」對應的英文是 block-level element,常見的塊級元素有、和等。

「塊級元素」和「display 為 block 的元素」不是乙個概念。例如,元 素預設的 display 值是 list-item,元素預設的 display 值是 table,但是它們 均是「塊級元素」,因為它們都符合塊級元素的基本特徵,也就是乙個水平流上只能單獨顯示一 個元素,多個塊級元素則換行顯示。 正是由於「塊級元素」具有換行特性,因此理論上它都可以配合 clear 屬性來清除浮動 帶來的影響。

8.為什麼 list-item 元素會出現專案符號 在 css 世界中

很多看似「理所當然」的現象的背後,實際上可能有一整套的體系支撐。 挖掘簡單現象背後的原因,會讓你學到很多別人很難學到的 css 技能和知識。此問題牽扯到 css 世界中各種盒子, 創造 css 的之人原本的想法很簡單:我要創造乙個世界,這 個世界只有塊級盒子(block-level box)和內聯盒子(inline box)。塊級盒子就負責結構,內聯 盒子就負責內容。 原本以為塊級盒子一套就夠用了,也就是所有「塊級元素」就只有乙個「塊級盒子」,但 是,半路殺出個 list-item,其預設要顯示專案符號的,乙個盒子解釋不了,怎麼辦?給 list-item 再重新命名乙個盒子,就叫「附加盒子」。好了,這下順了,所有的「塊級元素」都有乙個「主塊級盒子」,list-item 除此之外還有乙個「附加盒子」。 現在大家知道上面問題的答案了吧!之所以 list-item 元素會出現專案符號是因為生成 了乙個附加的盒子,學名「標記盒子」(marker box),專門用來放圓點、數字這些專案符號。

ie 瀏覽器下偽元素不支援 list-item 或許就是無法建立這個「標記盒子」導致的。 碰到了真正的特殊的 display:inline-block 元素。 穿著 inline 的皮藏著 block 的心,現有的幾個盒子根本沒法解釋啊,怎麼辦?又新增乙個盒子,也就是每個元素都兩個盒子, 外在盒子①和內在盒子。外在盒子負責元素是可以一行顯示,還是只能換行顯示;內在盒子負責 寬高、內容呈現什麼的。叫「內在盒子」雖然容易理解,但是未免 有些俗氣,又想了乙個更專業的名稱,叫作「容器盒子」。 於是,按照 display 的屬性值不同,值為 block 的元素的盒子實際由外在的「塊級盒子」 和內在的「塊級容器盒子」組成,值為 inline-block 的元素則由外在的「內聯盒子」和內 在的「塊級容器盒子」組成,值為 inline 的元素則內外均是「內聯盒子」。 現在,大家應該明白為何display屬性值是inline-block的元素既能和**一行顯示, 又能直接設定 width/height 了吧!因為有兩個盒子,外面的盒子是 inline 級別,裡面的盒 子是 block 級別。 實際上,如果遵循這種理解,display:block 應該腦補成 display:block-block,

display:table 應該腦補成 display:block-table,我們平時的寫法實際上是一種簡寫。

CSS世界第一章提要

文件流 就是規則,準確點說就是決定了元素的排列和定位的一套規則。流體布局 利用文件流本身的特性,實現的各類布局效果。文件流本身具有自適應性,所以流體布局也具有自適應性。css3 object fit grid 網格容器 grid template rows 行劃分規則 單位 px fr grid t...

關於CSS 第一章 入門

css casacding style sheets 層疊樣式表,用於修飾文件 可以是標記語言html,也可以是xml或者是svn 的語言,可以將文件以更優雅的形式呈現給使用者。css宣告 css語言的核心功能就是為特定的屬性設定特點的值,css引擎通過計算出宣告的每個屬性來顯示元素。css的屬性和...

python第一章筆記 第一章 基礎

參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...