今天在群里面,有人抛出了一个关于css中margin-right没有效果的问题。CSS代码和HTML代码例如以下:
.style1{ 400px; height:440px; background-color:red; border:5px solid silver; margin-top:20%; margin-right:30%; }
<html> <head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> <body> <div class="style1"><img src="bei.jpg"></div> </body> </html>
把他的代码copy下来,换一张图片,我做了一个test,还真的不行。
难道是top会隐藏掉right的效果?或者跟顺序有关?后来证明这些都是错误的想法。结合w3school对margin-right和自己隐约的记忆:浏览器是默认左对齐的。灵感一来,margin-right事实上有效果的,仅仅是在默认即标准流的情况的下显示不出来效果。假设脱离标准流呢?想到这个,就立刻在css文件里加了一个:float:right;然后在測试的时候就能看到margin-right的效果了。
用float:left也是不行的,这跟默认的情况是差点儿相同的。
PS:关于right属性无效的原因:right属性仅仅有在position是absolute的情况下才有效,而默认的position值是static,right属性是无效的。建议能不使用right就不要使用right属性。