margin常见问题以及解决办法:
1.在给子元素设置margin-top属性时会将值传递给父元素,导致整个盒子下移;
解决方法:
父元素:
1.设置border:给父元素设置一个border
2.设置padding:设置margin-top,记住当设置这个属性时,要记得在相应的高度上减去相同大小,否则会影响盒子的大小;
3.overflow:hidden
4.开启浮动(不推荐使用,会产生一些浮动影响,关于浮动影响可以关注下一篇文章)
子元素:
1.开启浮动
2.相邻两个盒子垂直方向的margin外边距只能加一个;
解决方案:
只给其中一个设置两个值之和即可;
3.关于margin:0 auto;属性是如何达到水平居中效果的?
首先我们需要知道在水平方向由margin-left border-left padding-left width padding-right border-right margin-right这七个元素,他们之间的关系需要满足:
margin-left+border-left +padding-left+width +padding-right +border-right +margin-right=父元素的内容区的宽度
当不满足以上这几个元素时,会自动调节margin-right,也就是我们常见的刚开始页面靠左显示;
其中可以设置auto值的有margin-left margin-right width
当给外边距设置一个auto时,设置的那个为最大
当给一个外边距和一个宽度设置auto时,,宽度为最大,外边距为0;
当给两个外边距设置auto时,左右距离相等,达到水平居中效果;
当三个值都设置auto时,宽度为最大,两个外边距为0;