亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS常用核心概念有哪些

發布時間:2022-03-02 15:51:13 來源:億速云 閱讀:104 作者:iii 欄目:web開發

這篇文章主要介紹了 CSS常用核心概念有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 CSS常用核心概念有哪些文章都會有所收獲,下面我們一起來看看吧。

CSS 中最核心的幾個概念,包括:盒模型、positionfloat等。這些是 CSS 的基礎,也是最常用的幾個屬性,它們之間看似獨立卻又相輔相成。

元素類型

HTML 的元素可以分為兩種:

塊級元素(block level element

內聯元素(inline element 有的人也叫它行內元素)

兩者的區別在于以下三點:

塊級元素會獨占一行(即無法與其他元素顯示在同一行內,除非你顯式修改元素的 display 屬性),而內聯元素則都會在一行內顯示。

塊級元素可以設置 widthheight 屬性,而內聯元素設置無效。

塊級元素的 width 默認為 100%,而內聯元素則是根據其自身的內容或子元素來決定其寬度。

最常見塊級元素應該是 <div> 吧,內聯元素有 <span> <a> <img> 等等,完整的元素列表可以谷歌一下。

.example {

width: 100px;

height: 100px;

}

我們為 <div> 設置上面的樣式,是有效果的,因為其是塊級元素,而對 <span> 設置上面的樣式是沒用的。要想讓 <span> 也可以改變寬高,可以通過設置 display: block; 來達到效果。當 display 的值設為 block 時,元素將以塊級形式呈現;當 display 值設為 inline 時,元素將以內聯形式呈現。

若既想讓元素在行內顯示,又能設置寬高,可以設置:

display: inline-block;

inline-block 在我看來就是讓元素對外呈內聯元素,可以和其他元素共處與一行內;對內則讓元素呈塊級元素,可改變其寬高。

HTML 代碼是順序執行的,一份無任何 CSS 樣式的 HTML 代碼最終呈現出的頁面是根據元素出現的順序和類型排列的。塊級元素就從上到下排列,遇到內聯元素則從左到右排列。這種無樣式的情況下,元素的分布叫普通流,元素出現的位置應該叫正常位置(這是我瞎起的),同時所有元素會在頁面上占據一個空間,空間大小由其盒模型決定。

盒模型

頁面上顯示的每個元素(包括內聯元素)都可以看作一個盒子,即盒模型( box model )。請看 Chrome DevTools 里的截圖:

可以顯而易見的看出盒模型由 4 部分組成。從內到外分別是:

content -> padding -> border -> margin

按理來說一個元素的寬度(高度以此類推)應該這樣計算:

總寬度 = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right

但是不同瀏覽器(你沒有猜錯,就是那個與眾不同的瀏覽器)對寬度的詮釋不一樣。符合 W3C 標準的瀏覽器認為一個元素的寬度只等于其 content 的寬度,其余都要額外算。于是你規定一個元素:

.example {

width: 200px;

padding: 10px;

border: 5px solid #000;

margin: 20px;

}

則他最終的寬度應為:

寬度 = width(200px) + padding(10px * 2) + border(5px * 2) + margin(20px * 2) =  270px;

而在 IE(低于IE9 下,最終寬度為:

寬度 = width(200px) + margin(20px * 2) = 240px;

我個人覺得 IE 的更符合人類思維,畢竟 padding 叫內邊距,邊框算作額外的寬度也說不下去。W3C 最后為了解決這個問題,在 CSS3 中加了 box-sizing 這個屬性。當我們設置 box-sizing: border-box;  時,border padding 就被包含在了寬高之內,和 IE 之前的標準是一樣的。所以,為了避免你同一份 css 在不同瀏覽器下表現不同,最好加上:

*, *:before, *:after {

-moz-box-sizing: border-box;

-webkit-box-sizing: border-box;

box-sizing: border-box;

}

這里還有兩種特殊情況:

無寬度 &mdash;&mdash; 絕對定位(position: absolute; 元素

無寬度 &mdash;&mdash; 浮動(float 元素

它們在頁面上的表現均不占據空間(脫離普通流,感覺像浮在頁面上層一樣,移動它們不影響其他元素的定位)。這就涉及到另外兩個核心概念 position float

position

position 這個屬性決定了元素將如何定位。它的值大概有以下五種:

具體效果可以參考w3school的實例,或者自己寫一下就明白了。

每個網頁都可以看成是由一層一層頁面堆疊起來的,如下圖所示。

position 設置為 relative 的時候,元素依然在普通流中,位置是正常位置,你可以通過 left right 等移動元素。會影響其他元素的位置。

而當一個元素的 position 值為 absolute fixed 的時候,會發生三件事:

把該元素往 Z 軸方向移了一層,元素脫離了普通流,所以不再占據原來那層的空間,還會覆蓋下層的元素。

該元素將變為塊級元素,相當于給該元素設置了 display: block;(給一個內聯元素,如 <span> ,設置 absolute 之后發現它可以設置寬高了)。

如果該元素是塊級元素,元素的寬度由原來的 width: 100%(占據一行),變為了 auto

 

由此觀之,當 position 設置為 absolute fixed,就沒必要設置 display block 了。而且如果你不想覆蓋下層的元素,可以設置 z-index 達到效果。

float

float 顧名思義,就是把元素浮動,它的取值一共有四個:left right none inherit,光看名字就懂了,無需多言。

最初的 float 只是用來實現文字環繞圖片的效果,僅此而已。而現在 float 的應用已不止這個,前輩們也是寫了無數博文來深入淺出的講解它。

我就不班門弄斧寫原理了,只說說 float 的幾個要點就行了:

只有左右浮動,沒有上下浮動。

元素設置 float 之后,它會脫離普通流(和 position: absolute; 一樣),不再占據原來那層的空間,還會覆蓋下一層的元素。

浮動不會對該元素的上一個兄弟元素有任何影響。

浮動之后,該元素的下一個兄弟元素會緊貼到該元素之前沒有設置 float 的元素之后(很好理解,因為該元素脫離普通流了,或者說不在這一層了,所以它的下一個元素當然要補上它的位置)。

如果該元素的下一個兄弟元素中有內聯元素(通常是文字),則會圍繞該元素顯示,形成類似「文字圍繞圖片」的效果。

下一個兄弟元素如果也設置了同一方向的 float,則會緊隨該元素之后顯示。

該元素將變為塊級元素,相當于給該元素設置了 display: block;(和position: absolute; 一樣)。

這里還有個東西,就是廣為人知的&mdash;&mdash;清除浮動。

關于“ CSS常用核心概念有哪些”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“ CSS常用核心概念有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

css
AI

镇坪县| 承德市| 连平县| 绥化市| 高清| 宽甸| 静宁县| 醴陵市| 铁岭市| 锦屏县| 义乌市| 都匀市| 饶阳县| 邛崃市| 抚顺县| 高尔夫| 若尔盖县| 确山县| 呼图壁县| 长葛市| 陕西省| 万全县| 陈巴尔虎旗| 浪卡子县| 拜城县| 象山县| 鄂托克旗| 灌云县| 汪清县| 佛学| 西畴县| 自贡市| 海阳市| 出国| 四川省| 漳平市| 无极县| 台东县| 郓城县| 临沭县| 微山县|