CSS盒模型面試知識點


一、基本概念

1、基本概念:標准盒模型+怪異盒模型(IE模型)

基本組成:由margin、padding、content組成。

 

2、標准盒模型和IE模型的區別

標准盒模型width指的是內容區域content的寬度;height指的是內容區域content的高度。

標准盒模型下盒子的大小  = content + border + padding + margin

怪異盒模型中的width指的是內容、邊框、內邊距總的寬度(content + border + padding);height指的是內容、邊框、內邊距總的高度

怪異盒模型下盒子的大小=width(content + border + padding) + margin

 

3、CSS如何設置標准模型和IE模型

如果doctype協議缺失,會由瀏覽器自己界定,在IE瀏覽器中IE9以下(IE6.IE7.IE8)的版本觸發怪異模式,其他瀏覽器中會默認為W3c標准模式。

box-sizing: content-box  標准盒模型

box-sizing: border-box  IE盒模型

 

二、盒模型 垂直外邊距重疊問題

1、根據盒模型解釋邊距重疊問題

(1)什么是外邊距重疊

垂直方向上的相鄰外邊距會發生外邊距重疊。(a必須是相鄰的;b必須是垂直方向上的)

兩個或是多個盒子(可能相鄰也可能嵌套)的相鄰邊界(中間沒有任何內容、補白、邊框)重合在一起而形成的一個單一邊界。

邊距重疊發生場景:

1、父元素與子元素之間,父元素的上下外邊距和子元素的上下外邊距之間重疊,選擇最大值去渲染。

2、空元素,如果設置了margin-top和margin-bottom,則會在兩者之間取一個最大值作為最終外邊距。

3、兄弟元素,兄弟元素之間的相鄰外邊距會取外邊距的最大值而不是外邊距之和。

 

Ⅰ父元素邊界重疊

<style> .parent{background: #e7a1c5;} .child{background: #ff6875;height:100px;margin-top:10px;}
    </style>
</head>
<body>
    <div class="parent">
        <div class="child"></div>
    </div>    
</body>

預想中效果是:

 實際上是:

 父元素高度並不是110px,而是100px,父元素發生了高度坍塌。

原因:如果塊元素的margin-top 與它的第一個子元素的margin-top之間沒有border、padding、inline content、clearance來分隔;

或者塊元素的margin-bottom和它最后一個子元素margin-bottom之間沒有border、padding、inline content、height、min-height、max-height分隔。那么外邊距就會重疊,父元素高度塌陷。

子元素多余的外邊距會被父元素的外邊距截取。

 

Ⅱ 兄弟元素的邊界重疊

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style> .parent{overflow:hidden;width:300px; background: #8fdbdb;} .parent>p{background: #ff6875;margin:20px auto 30px;}
    </style>

</head>
<body>
    <div class="parent">
        <p>1</p><p>2</p><p>3</p>
    </div>    
</body>

 可以看到盒子1和2,盒子2和3之間的間距不是50px。兄弟元素垂直外邊距重疊選取外邊距最大值30px。

 

Ⅲ 空元素邊距重疊

假設有一個空元素,它有外邊距,但是沒有邊框或填充內容。在這種情況下,上外邊距與下外邊距就碰到了一起,外邊距就會合並。

注意:給子元素設置了上外邊距100px,子元素和父元素保持相對位置一起下移了100px(如果父子元素的垂直外邊距相鄰了,那么子元素的外邊距會傳遞給父元素。

 

三、BFC解決高度坍塌

(1)什么是BFC

Block Formatting Context)簡稱BFC,塊級格式化環境

開啟BFC的元素會有以下特征:

1.父元素的垂直外邊距不會和子元素重疊。

2.開啟BFC的元素不會被浮動元素覆蓋。

3.開啟BFC的元素可以包含浮動的子元素。

 

(2)如何創建BFC

1、overflow不為visible

2、float不為none

3、position不為static或relative時

4、display為inline-block、table-cell、table、table-caption時

 

(3)BFC使用場景

詳細內容:https://www.cnblogs.com/nyw1983/p/11374405.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM