margin兼容之margin-top的传递问题(面试题)
问题:margin的兼容margin-top的传递
描述:大盒子里面嵌套小盒子,给小盒子添加margin-top值,不但没有实现和大盒子之间的间距,反而传递到大盒子上,导致整体下移
解决兼容性问题:
- overflow:hidden解决margin-top的传递问题(此处不是溢出隐藏)
- padding-top:1px 这种方法会影响最后实际的高度,需要再高度height的基础上减掉,才不会影响最后实际的高度
- border-top:1px 这种方法会影响最后实际的高度,需要再高度height的基础上减掉,才不会影响最后实际的高度
- 给子元素的margin-top值改为给父元素加padding-top这样就避免了使用margin-top值导致的传递问题(转移了我们的目标对象)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <style type="text/css"> 7 *{ 8 margin: 0; 9 padding: 0; 10 } 11 /* .wrap{ 12 width: 300px; 13 height: 300px; 14 background-color:#f90; 15 } */ 16 .inner{ 17 margin-top: 20px; 18 width: 200px; 19 height: 200px; 20 background-color: aqua; 21 } 22 /* ===========================无情分割线======================= */ 23 /*解决方法1*/ 24 /* .wrap{ 25 width: 300px; 26 height: 300px; 27 background-color:#f90; 28 overflow: hidden; 29 } */ 30 /*解决方法2*/ 31 /* .wrap{ 32 width: 300px; 33 height: 299px; 34 background-color:#f90; 35 padding-top: 1px; 36 } */ 37 /* 解决方法3 */ 38 .wrap{ 39 width: 300px; 40 height: 299px; 41 background-color:#f90; 42 border: 0; 43 border-top-width: 1px; 44 border-style: solid; 45 border-color: transparent; 46 } 47 /* 解决方法4 */ 48 /* .wrap{ 49 width: 300px; 50 height: 300px; 51 background-color:#f90; 52 padding-top: 20px; 53 } 54 .inner{ 55 /* margin-top: 20px; */ 56 width: 200px; 57 height: 200px; 58 background-color: aqua; 59 } */ 60 </style> 61 </head> 62 <body> 63 <div class="wrap"> 64 <div class="inner"></div> 65 </div> 66 </body> 67 </html>
赞 (0)