好程式設計師web前端培訓分享CSS基礎知識學習
好程式設計師web 前端培訓分享CSS 基礎點學習,今天要講的是是關於web 前端入門基礎-CSS 的基礎知識學習。希望本篇文章能夠對你有所幫助。
一、流
“流”又叫文件流,是 css 的一種基本定位和佈局機制。流是 html 的一種抽象概念,暗喻這種排列布局方式好像水流一樣自然自動。“流體佈局”是 html 預設的佈局機制,如你寫的 html 不用 css ,預設自上而下(塊級元素如 div )從左到右(內聯元素如 span )堆砌的佈局方式。
二、塊級元素和內聯元素
這個大家肯定都知道。
塊級元素是指單獨撐滿一行的元素,如div 、 ul 、 li 、 table 、 p 、 h1 等元素。這些元素的 display 值預設是 block 、 table 、 list-item 等。
內聯元素又叫行內元素,指只佔據它對應標籤的邊框所包含的空間的元素,這些元素如果父元素寬度足夠則並排在一行顯示的,如span 、 a 、 em 、 i 、 img 、 td 等。這些元素的 display 值預設是 inline 、 inline-block 、 inline-table 、 table-cell 等。
實際開發中,我們經常把display 計算值為 inline inline-block inline-table table-cell 的元素叫做內聯元素,而把 display 計算值為 block 的元素叫做塊級元素。
三、width: auto 和 height: auto
width 、 height 的預設值都是 auto 。
對於塊級元素,width: auto 的自動撐滿一行。
對於內聯元素,width: auto 則呈現出包裹性,即由子元素的寬度決定。
無論內聯元素還是塊級元素,height: auto 都是呈現包裹性,即高度由子級元素撐開。但是父元素設定 height: auto 會導致子元素 height: 100% 百分比失效。
流體佈局之下,塊級元素的寬度width: auto 是預設撐滿父級元素的。這裡的撐滿並不同於 width: 100% 的固定寬度,而是像水一樣能夠根據 margin 不同而自適應的寬度。
css 的屬性非常有意思,正常流下,如果塊級元素的 width 是個固定值, margin 是 auto ,則 margin 會撐滿剩下的空間;如果 margin 是固定值, width 是 auto ,則 width 會撐滿剩下的空間。這就是流體佈局的根本所在。
四、外在盒子和內在盒子
外在盒子是決定元素排列方式的盒子,即決定盒子具有塊級特性還是內聯特性的盒子。外在盒子負責結構佈局。
內在盒子是決定元素內部一些屬性是否生效的盒子。內在盒子負責內容顯示。
如 display: inline-table; 外在盒子就是 inline ,內在盒子就是 table 。外在盒子決定了元素要像內聯元素一樣並排在一排顯示,內在盒子則決定了元素可以設定寬高、垂直方向的 margin 等屬性。
右側的table 和左側的文字在一行排列(外在盒子 inline 的表現特徵),同時有擁有自定義寬度 111px (內在盒子 table 可以設定寬高)。
五、css 權重和超越 !important
曾經有道面試題把我難住了:
// 假設下面樣式都作用於同一個節點元素 `span` ,判斷下面哪個樣式會生效
body#god div.dad span.son {width: 200px;}
body#god span#test {width: 250px;}
可憐當時做了三年前端的我竟然還不知道css 有權重
css 選擇器權重列表如下:
在css 中, !important 的權重相當的高,但是由於寬高會被 max-width/min-width 覆蓋,所以 !important 會失效。
width: 100px!important;
min-width: 200px;
上面程式碼計算之後會被引擎解析成:
width: 200px;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2706185/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端培訓分享HTMLCSS學習之CSS基礎程式設計師Web前端HTMLCSS
- 好程式設計師web前端培訓分享面試題Session、Cookie基礎知識程式設計師Web前端面試題SessionCookie
- 好程式設計師web前端培訓分享怎樣學好css?程式設計師Web前端CSS
- 好程式設計師web前端分享CSS基礎知識之position程式設計師Web前端CSS
- 好程式設計師web前端培訓分享學習JavaScript程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript相關知識程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享web前端基礎知識程式設計師Web前端
- 好程式設計師web前端培訓分享JavaScript學習指南程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript基礎語法程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享node學習筆記程式設計師Web前端筆記
- 好程式設計師web前端教程分享JS基礎知識程式設計師Web前端JS
- 好程式設計師web前端培訓分享CSS定位的教程程式設計師Web前端CSS
- 好程式設計師web前端教程分享web前端入門基礎知識程式設計師Web前端
- 好程式設計師Java培訓分享Java基礎知識總結程式設計師Java
- 好程式設計師web前端分享CSS基礎篇程式設計師Web前端CSS
- 好程式設計師web前端培訓分享HTMLCSS學習筆記BFC程式設計師Web前端HTMLCSS筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記Promise程式設計師Web前端JavaScript筆記Promise
- 好程式設計師web前端培訓分享JavaScript學習筆記SASS程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記cookie程式設計師Web前端JavaScript筆記Cookie
- 好程式設計師web前端培訓分享React學習筆記(一)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(二)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(三)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享HTML/CSS部分面試題程式設計師Web前端HTMLCSS面試題
- 好程式設計師Web前端培訓入門之JS基礎知識梳理彙總程式設計師Web前端JS
- 好程式設計師Java培訓分享學習Java需要哪些基礎程式設計師Java
- 好程式設計師web前端培訓分享JavaScript學習筆記之設計模式程式設計師Web前端JavaScript筆記設計模式
- 好程式設計師HTML5培訓教程-html和css基礎知識程式設計師HTMLCSS
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive
- 好程式設計師Python培訓分享Python入門基礎知識程式設計師Python
- 好程式設計師前端教程CSS基礎知識點程式設計師前端CSS
- 好程式設計師web前端培訓分享之HTMLCSS學習筆記css3-多列程式設計師Web前端HTMLCSS筆記S3
- 好程式設計師web前端培訓分享HTMLCSS學習筆記css3選擇器程式設計師Web前端HTMLCSS筆記S3
- 好程式設計師web前端分享Cookie知識程式設計師Web前端Cookie
- 好程式設計師web前端培訓分享JavaScript框架J程式設計師Web前端JavaScript框架
- 好程式設計師web前端培訓分享Vue面試題程式設計師Web前端Vue面試題
- 好程式設計師web前端培訓分享JavaScript學習筆記分支結構程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆陣列的排序程式設計師Web前端JavaScript陣列排序
- 好程式設計師web前端培訓分享JavaScript學習筆記之陣列程式設計師Web前端JavaScript筆記陣列