BFCçè§£
cssä¸çBFCæ¯ä»ä¹å¢ï¼
1ãæ¦å¿µï¼
BFCï¼Block Formatting Contextï¼æ ¼å¼åä¸ä¸æï¼æ¯web页é¢ä¸ç模åå¸å±çcssæ¸²ææ¨¡å¼ï¼æä¸ä¸ªç¬ç«ç渲æåºåæè 说æ¯ä¸ä¸ªé离çç¬ç«å®¹å¨ã
2ãå½¢æBFCçæ¡ä»¶
- æµ®å¨å ç´ ï¼floaté¤none以å¤çå¼ï¼
- å®ä½å ç´ ï¼positionï¼absolute,fixedï¼ï¼
- display为ä¸ä¸å ¶ä¸çå¼inline-block, table-cell, table-caption;
- overflowé¤äºvisible以å¤çå¼ï¼hidden, auto, scrollï¼;
3ãBFCçç¹æ§
- å é¨çå ç´ ä¼å¨åç´æ¹åä¸ä¸ä¸ªæ¥ä¸ä¸ªçæ¾ç½®ï¼
- åç´æ¹åä¸çè·ç¦»ç±marginå³å®ï¼å¦æåçmarginå å çé®é¢ï¼æä¹å¤çï¼ï¼ï¼
- BFCçåºåä¸ä¼è·floatçå ç´ åºåéå ï¼
- 计ç®BFCé«åº¦æ¶åï¼æµ®å¨å ç´ ä¹åä¸è®¡ç®ï¼
- BFCå°±æ¯é¡µé¢ä¸çä¸ä¸ªç¬ç«ç容å¨ï¼å®¹å¨éé¢çåå ç´ ä¸ä¼å½±åå¤é¢å ç´ ã
åºè¯ä¸å¤è¯´ï¼ä¸ä»£ç ï¼
ç¹æ§1ï¼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/**/
.container {
position: absolute; /*触åBFCï¼å建BFCç¯å¢*/
height: auto;
background-color: #eee;
}
div {
height: 20px;
}
.box1 {
width: 500px;
background-color: red;
}
.box2 {
width: 300px;
background-color: green;
}
.box3 {
width: 50px;
background-color: yellow;
float: left;
}
.box4 {
width: 100px;
height: 50px;
background-color: blueviolet;
}
</style>
</head>
<body>
<div class="container">
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
</div>
<!-- ææçåå左对é½ï¼åç´æ¹åä¸ï¼çåé½ä¸ä¸ªæ¥ä¸ä¸ªæ -->
</body>
</html>
ç¹æ§2ï¼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/**/
.container {
position: absolute; /*触åBFCï¼å建BFCç¯å¢*/
height: auto;
background-color: #eee;
}
.box1 {
width: 500px;
height: 50px;
margin: 10px 0;
background-color: red;
}
.box2 {
width: 500px;
height: 50px;
margin: 30px 0;
background-color: red;
}
</style>
</head>
<body>
<div class="container">
<div class="box1"></div>
<div class="box2"></div>
</div>
<!-- -->
</body>
</html>
æ¤æ¶åçäºç©ºç½è¾¹çå å é®é¢ï¼ é£ä¹ææ²¡ææ¹æ³è®©åç´å¤è¾¹è·ä¸å å å¢ï¼
çæ¡æ¯ï¼æã
ç¹æ§5ï¼bfcå°±æ¯é¡µé¢ä¸çä¸ä¸ªç¬ç«å®¹å¨ï¼å®¹å¨éé¢çåå ç´ ä¸ä¼å½±åå¤é¢å ç´ ï¼åæ ·å¤é¢çå ç´ ä¸ä¼å½±åå°BFCå çå ç´ ãæä»¥å°±è®©box1æbox2åå¤äºå¦ä¸ä¸ªBFCä¸å°±è¡äºã
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/**/
.container {
position: absolute; /*触åBFCï¼å建BFCç¯å¢*/
height: auto;
background-color: #eee;
}
.box1 {
width: 500px;
height: 50px;
margin: 10px 0;
background-color: red;
}
.box2 {
width: 500px;
height: 50px;
margin: 30px 0;
background-color: red;
}
.wrap {
overflow: hidden;
}
</style>
</head>
<body>
<div class="container">
<div class="wrap">
<div class="box1"></div>
</div>
<div class="box2"></div>
</div>
<!-- -->
</body>
</html>
ç¹æ§3ï¼
左边åºå®å®½åº¦ï¼å³è¾¹èªéåºï¼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/**/
.col:nth-of-type(1){
float: left;
width: 300px;
height: 300px;
background-color: red;
margin-right: 10px;
}
.col:nth-of-type(2) {
overflow: hidden;
height: 300px;
background-color: aquamarine;
}
</style>
</head>
<body>
<div class="col"></div>
<div class="col"></div>
<!-- -->
</body>
</html>
å·¦å³å®å®½ï¼ä¸é´èªéåºï¼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/**/
.col:nth-of-type(1),
.col:nth-of-type(2){
float: left;
width: 200px;
height: 300px;
background-color: red;
}
.col:nth-of-type(2) {
float: right;
}
.col:nth-of-type(3) {
overflow: hidden;
height: 300px;
background-color: aquamarine;
}
</style>
</head>
<body>
<div class="container">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
</div>
<!-- -->
</body>
</html>
æåç¯ç»é®é¢ï¼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/**/
.main {
width: 500px;
margin: 0 auto;
}
.left {
float: left;
width: 30px;
height: 30px;
background-color: red;
}
p {
background-color:aqua;
}
</style>
</head>
<body>
<div class="main">
<div class="left"></div>
<p>
伿å¨ç¥ï¼æµ®å¨ççåä¼é®çä¸é¢ççåï¼ä½æ¯ä¸é¢çåéçæåæ¯ä¸ä¼è¢«é®ççï¼æååèè¿ä¼ç¯ç»æµ®å¨ççåãè¿ä¹æ¯ä¸ä¸ªæ¯è¾æè¶£çç¹æ§,没æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·æ²¡æçç¥å·
</p>
</div>
<!-- -->
</body>
</html>
å°è¯ç»på ç´ ï¼ overflow: hidden;ççæä»ä¹æ ·çææå¢ï¼
ä¸å¾è·æä»¬å¹³æ¶åçææï¼å·¦è¾¹å¾çï¼å³è¾¹æåçææå¾åå§ï¼
overflow: hidden;è¿ææ¸ æ¥æµ®å¨çææï¼ä½æ¯è¿ä¸ªææä½¿ç¨çæ¶åï¼è¿æ¯è¦æ³¨æçï¼å ä¸ºä¼æä¸äºææ³ä¸å°çbugï¼