似乎我的浏览器在<body>
元素上设置了默认边距,因此如果某个元素E(在body元素内声明)的边距为10px,则E将从浏览器的边缘移除距离= body_Margin + 10px。
a)假设我们还有一个绝对定位的元素B:
#B
{
position:absolute;
width:150px;
top:128px;
right:0px;
margin:0px;
}
然后我预计B将从浏览器的右边缘移除10px的距离,但是B忽略了body元素的默认边距,因此它的距离是0px。那是为什么?
b)
body
{
background-color: blue;
margin:70px;
}
由于body元素的边距为70px,因此边距是透明的(因此它们的背景颜色与元素不同),我希望浏览器窗口的边缘有白色,但是相反,它们的颜色与身体元素相同(蓝色)?!
答案 0 :(得分:3)
虽然我同意这不是一个问题,但考虑到浏览器的不同,通常可以接受:
html, body {
margin: 0px;
padding: 0px;
}
...在您的CSS中确保您拥有完全控制权。为什么浏览器会做他们的工作?我会把这个留给其他人推测。
答案 1 :(得分:3)
海报问为什么元素B不受身体元素边缘的影响。
引自问题:
...我希望B将从浏览器的右边缘移除10px的距离,但是B忽略了body元素的默认边距,因此它的距离是0px。那是为什么?
答案是:
来自w3schools的Read this page。它说:
绝对:生成一个绝对定位的元素,相对于第一个具有静态位置的父元素定位。
当您绝对定位元素(B)时,将其从文档的正常流程中删除。因为它的所有父元素(一直到文档正文)都设置为静态(默认),所以它们的边距将被忽略。
你可以将身体的位置设置为相对(我会小心这个 - 它也可能影响其他元素),或者你可以改变B的右边:
right:0px;
为:
right:10px;