margin兼容之margin-top的傳遞問題(面試題)


問題:margin的兼容margin-top的傳遞

描述:大盒子里面嵌套小盒子,給小盒子添加margin-top值,不但沒有實現和大盒子之間的間距,反而傳遞到大盒子上,導致整體下移

解決兼容性問題:

  1. overflow:hidden解決margin-top的傳遞問題(此處不是溢出隱藏)
  2. padding-top:1px 這種方法會影響最后實際的高度,需要再高度height的基礎上減掉,才不會影響最后實際的高度
  3. border-top:1px 這種方法會影響最后實際的高度,需要再高度height的基礎上減掉,才不會影響最后實際的高度
  4. 給子元素的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>


免責聲明!

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



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