1、介紹一下標準的css盒模型?
盒模型是由四個部分組成的,分別是content、margin、padding、border,標準盒模型和IE盒模型的區(qū)別在于計算width寬度所對應(yīng)范圍不同,標準盒模型的width只包含了content,而IE盒模型的width包含了,content,border,padding,可以通過修改元素的box-sizing屬性來改變元素的盒模型,content-box用的是標準盒模型,border-box用的是IE盒模型,默認值為content-box;
2、p標簽和div標簽有什么區(qū)別?
1、語義:p標簽的語義是段落,而div是沒有語義的,只是一個盒子;
2、默認樣式:p標簽有默認的樣式(上下margin),div沒有
3、回流與重繪
回流:當(dāng)一些元素的幾何屬性(布局、大小、尺寸)發(fā)生變化的時候就產(chǎn)生了回流;
重繪:當(dāng)元素的屬性(外觀、顏色)發(fā)生變化就產(chǎn)生了重繪;
回流必將引起重繪,重回不一定一起回流;
4、display:none和visibility=hidden和opacity有什么區(qū)別?
1、占據(jù)空間:display不會,opacity和visibility會
2、觸發(fā)事件:display和visibility不會觸發(fā)自己身上綁定的事件,opacity會觸發(fā)
3、性能上:display會引起頁面的回流,visibility會引起頁面重繪
5、行內(nèi)元素、塊級元素和行內(nèi)塊元素
行內(nèi)元素:
1、設(shè)置寬高無效;
2、不會自動換行;
3、對margin左右方向有效,上下無效,對padding設(shè)置上下左右都有效 ;
塊級元素:
1、可以設(shè)置寬高;
2、可以自動換行;
3、對margin和padding設(shè)置上下左右都有效;
行內(nèi)塊元素:
1、可以設(shè)置寬高;
2、不會自動換行;
3、對margin和padding設(shè)置上下左右都有效;
為什么img是inline還可以設(shè)置寬高
它被成為可替換元素,它的內(nèi)容不是通過在標簽內(nèi)添加內(nèi)容,而是通過某個屬性來顯示內(nèi)容??商鎿Q元素擁有內(nèi)置寬高,性質(zhì)如同行內(nèi)塊元素一致。典型的還有iframe、video;
6、link標簽和@import有什么區(qū)別
1、link標簽屬于html標簽,@import是css提供的;
2、link標簽比@import語法兼容性好;
3、link標簽會跟隨頁面一起加載,@import只會等到頁面加載完畢后加載;
2、觸發(fā)事件:display和visibility不會觸發(fā)自己身上綁定的事件,opacity會觸發(fā)
3、性能上:display會引起頁面的回流,visibility會引起頁面重繪
7、如何清除浮動?
1、在浮動元素最后創(chuàng)建一個空的div并且加上clear:both屬性;
2、給浮動元素的容器加上overflow:hidden屬性;
3、給浮動元素的容器加::after偽元素,添加clear:both屬性(注意:還需添加display:block轉(zhuǎn)為塊級元素)
4、給浮動元素的容器也加上浮動屬性,不推薦這樣做會使整體浮動,影響整體布局;
8、
未完待續(xù)...