盒模型 + 布局

切換盒模型:
box-sizing : content-box 是W3C盒子模型
box-sizing: border-box是IE盒子模型

盒模型:Margin Edge / borderEdge / padding Edge / Content Edge

標準盒模型 : width 等于 content部分寬度; height 等于 content部分高度

image.png

IE盒模型 : width 等于 content + padding + border 總寬度; height 等于content + padding + border總高度

image.png

塊元素 VS 行內元素

塊級元素:獨占一行,width默認100%,可以控制height,margin,padding,border

塊級元素:
address blockquote 【canvas article aside audio】(HTML5)
dd div dl fieldset form 【figcaption figure footer】(HTML5)
h1, h2, h3, h4, h5, h6
hr noscript ol p pre section table 【header hgroup output 】(HTML5)
tfoot ul 【video】HTML5

行內元素:可以設置border,padding,margin-left,margin-right,border-top,border-top

行內元素
b,big,i,small,tt
abbr,acronym,cite,code,dfn,em,kbd,strong,samp,var
a,bdo,br,img,map,object,q,script,span,sub,sup,button,input,label,select,textarea

頁面布局

塊級元素進行左右布局——float + clear
讓一個元素既不占一行,又能設置寬高屬性——display

display:block(塊級) | inline(行內) | inline-block(行內塊級) | flex(彈性盒布局)

彈性布局

display:flex;

.box{

/*主軸方向:左到右 | 右到左 |  上到下 | 下到上*/
flex-direction : row | row-reverse | column | column-reverse;

/*換行:不換  |  換行  | 換行并第一行在下方*/
flex- wrap : nowrap | wrap | wrap-reverse;

/*主軸方向和換行簡寫*/
flex-flow : <flex-direction>  || <flex-wrap>

/*主軸對齊方式:左對齊 | 右對齊 | 居中對齊 | 兩端對齊 | 平均分布*/
justify-content:  flex-start | flex-end | center | baseline | stretch;

/*交叉軸對齊的方式:頂端對齊 | 底部對齊 | 居中對齊 |  上下對齊并鋪滿 |文本基線對齊 */
align-items : flex-start | flex-end | center | baseline |stretch;

/*多主軸對齊:頂部對齊 |  底部對齊 |  居中對齊 | 上下對齊并鋪滿 | 上下平均分布*/
align-content : flex-start  | flex-end | center | space-between | space-around | stretch
}

但flex不能解決兼容性問題,因此還需要positionfloat

網(wǎng)頁的布局

普通布局

Flex——Flexible Box,解釋為“彈性布局”,為盒模型提供最大的靈活性
任何一個容器都可以指定為Flex布局

.box{  display:flex; }

行內元素也可使用Flex布局

.box{ display:inline-flex; }

webkit內核的瀏覽器,必須加上-webkit前綴

.box{  display:-webkit-flex;   display:flex;}

設置為Flex布局以后,子元素的float、clear、vertical-align屬性失效

Flex布局相關

Flex布局

采用Flex布局的元素,稱為FLex容器(flex container);
所有子元素自動成為容器成員,稱為Flex項目(flex item);
容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸cross axis

定位部分

position:absolute(絕對) | relative (相對) | fixed (固定) | static(默認沒有定位) | inherit

  • absolute:生成絕對定位元素,相對于static定位以外的第一個父元素進行定位。 位置通過left, top, right, bottom;即相對的元素可能是
  • fixed:生成絕對定位的元素, 相對于瀏覽器窗口進行定位。
  • relative:生成相對定位的元素。相對于其正常位置進行定位。 在一個相對定位的元素上設置top,right,bottom,left;
  • static:默認,沒有定位,元素出現(xiàn)在正常的流中;top,bottom,left,rightz-index會被忽略
  • inherit: 規(guī)定應該從父元素繼承position屬性的值

生成一個網(wǎng)頁的過程:

1.HTML代碼轉換成DOM
2.CSS代碼轉化成CSSOM(CSS Object Model)
3.結合DOM和CSSOM,生成一棵渲染樹(包含每個節(jié)點的視覺信息)
4.生成了布局(layout),即被所有渲染樹的所有節(jié)點進行平面合成。
5.將布局繪制到(paint)在屏幕上。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. 前言 前端圈有個“梗”:在面試時,問個css的position屬性能刷掉一半人,其中不乏工作四五年的同學。在...
    YjWorld閱讀 4,877評論 5 15
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,091評論 1 92
  • (注1:如果有問題歡迎留言探討,一起學習!轉載請注明出處,喜歡可以點個贊哦?。ㄗ?:更多內容請查看我的目錄。) ...
    love丁酥酥閱讀 1,891評論 0 0
  • 夜深了,忽然想起白天閃過腦子里的一個段子,最近在練筆和學習寫文章,隨感而發(fā),真隨性,隨手要拿捏,記錄,興許以后...
    A_A董海燕閱讀 364評論 0 0
  • 昨晚,看了電影頻道的節(jié)目,《戰(zhàn)狼》和《忍者神龜》,有點太嗨了,忘了交作業(yè)。 早起進群一看,好悲傷呀!發(fā)了10元的紅...
    風雨同舟_f997閱讀 243評論 3 2

友情鏈接更多精彩內容