CSSWorld流 元素與基本尺寸

2022-07-07 21:30:24 字數 2520 閱讀 3269

在 css 中的流的特性支撐了自適應屬性,類似於水容器中的元素如同水一樣,按照流的方式排布

1、由於 html 符合流的概念(文件流)

2、特殊布局的重建,通過對原有流的破壞,發到應有的效果

3、流向的改變,改變流向影響布局

體現在margin、border、padding、content盒子模型的四大內容區域的自動分配水平和垂直方向空間

外部屬性和流體特性

尺寸由外部元素決定,也就是外在盒子

1、正常的流寬度,在沒有設定寬度的時候,寬度佔滿容器寬度(content)

2、但是在絕對定位中,會出現格式化寬度(收縮到合適的寬度)

內部屬性與流體特性

尺寸由內部的元素決定,也就是內在的盒子

1、包裹性,也就是說元素被包裹著,始終不能突破外在盒子

2、首選最小寬度,預設就是最小的適合寬度,不同與外部屬性

外在盒子:主要負責元素是否換行的盒子

內在盒子:主要負責元素的寬高、內容的呈現等屬性的盒子

塊級盒子:塊級元素,乙個元素佔一行,不換行,可以設定寬高

注意:block 和塊級元素並不是相等的,塊級元素還包括 item-list,table 等屬性

內聯盒子:內聯元素,在行內顯示,不支援設定寬高,預設的寬高就是文字的寬高

注意:inline 和內聯元素並不是相等的,塊級元素還包括 item-list,table 等屬性

塊級負責結構,內聯負責內容

內在盒子

內在盒子主要又分為四大塊:margin box、border-box、padding box、content box

margin box

並沒有margin-box的屬性,margin的背景永遠都是透明的

margin設定寬高的時候,對本身的尺寸是不會有所影響的,也就導致不會出現有margin-box屬性

block其實是由外在的塊級盒子和內在的塊級容器盒子組成

inline-block就是外在的內聯盒子和內在的塊級容器盒子組成

也就是這種原因使得inline-block可以在一行顯示inline也可以設定寬高block

inline就是內外都是內聯盒子的

寬高會作用在內在盒子上

寬度作用在content box上,當給元素設定寬度屬性之後,加上padding等,盒子變寬就是這個道理

流動性丟失,對於塊級元素當給元素設定了寬度之後,原有的預設的width:auto屬性失效後,流動性失效

關於height:100%的問題,當父元素的height:auto之後,子元素設定高度的百分比是沒有效果的

解決方式:

1、設定顯示的高度值

2、使用絕對定位(絕對定位的寬高百分比是相對padding box的,但是非絕對定位元素是相對於content box的)

流體布局下的寬度分離原則

width 屬性不影響padding/border屬性的情況下分開寫

設定寬度的元素獨佔乙個作用塊,方便維護但是通過padding,border屬性的變化,達到不修改 width 的效果更佳

顧名思義,就是盒尺寸box-sizing 主要用於改變 width 屬性

預設情況下,width 作用在content-box

通常寫 css 的時候,我們會寫box-sizing: border-box,也就是寬度作用在border-box

content box從寬度值中釋放,和 padding 共同分配 width

1、適用於自適應的流體布局,ie7 支援min-width/max-width

2、初始值的問題,max 系列的初始值是 none,但是 min 系類的初始值是 0

3、關於權值的問題,超越! important,超越最大

權值是最大的:max-width會覆蓋 width,儘管有! important加持

min 屬性會超越 max,min-width屬性會覆蓋max-width

在 html5 文件宣告中,內聯元素的所有解析和渲染表現就如同每乙個行框盒子前面有乙個「空白節點一樣」

永遠透明,永遠不佔據寬度,無法用指令碼獲取,但是又真正的存在

HTML文件流與元素型別基本介紹

常見預設行元素型別的標籤主要有span strong,em等。其主要特點如下 不可設定元素寬,高相關屬性。預設寬高為自身所包內容的寬高度 高度主要由line height決定 margin外邊距只對左,右,下方向生效。padding內邊距只對左,右方向生效。與其他行元素 包括行內塊元素 在同一行 與...

CSS世界(一)流與元素

流者,動也,切來由 流水落花春去也,天上人間 css的流方向 預設從左至右 從上之下good father son 乙個盒子包裹另乙個盒子,當包裹盒子沒有設定border和padding且div包裹盒子裡沒有內容,裡邊盒子的設定的上邊距不會起作用。css元素分 內聯級元素 和 塊級元素 內聯級元素 ...

CSS文件流與塊級元素和內聯元素

塊元素 block element 一般是其他元素的容器元素 塊元素一般都從新行開始,它可以容納內聯元素和其他塊元素,常見塊元素是段落標籤 p form 這個塊元素比較特殊,它只能用來容納其他塊元素。如果沒有css的作用,塊元素會順序以每次另起一行的方式一直往下排。而有了css以後,我們可以改變這種...