请教:body标签margin属性的作用效果为何与外部元素相关?
关于body标签margin属性的解释
- 浏览器默认会给
<html>和<body>设置默认样式:比如Chrome中<body>默认有8px的margin,<html>默认margin为0,但它是页面的根容器,<body>的margin是相对于它来生效的。 - 你说的“修改margin的效果与外部元素相关”是完全正确的:因为
<body>是<html>的直接子元素,它的margin表现会直接受<html>的样式影响。比如:- 如果
<html>没设置背景,<body>的margin区域会显示浏览器的默认背景; - 要是给
<html>加了背景色,<body>的margin区域就会被<html>的背景覆盖。
- 如果
- 你觉得“讨论body标签时修改其margin无意义”其实不准确,但核心确实是不能孤立看
<body>的margin,必须结合<html>的样式一起分析:- 举两个实际场景的代码例子:
/* 场景1:仅修改body的margin */ body { margin: 20px; } /* 此时页面四周会出现20px的空白,这是因为html默认背景透明,空白区域显示浏览器自带的背景色 *//* 场景2:给html添加背景色 */ html { background-color: #eee; } body { margin: 20px; } /* 此时页面四周的20px区域会变成浅灰色,因为html的背景覆盖了body的margin区域 */
- 举两个实际场景的代码例子:
- 总结:修改
<body>的margin是有实际意义的(比如消除页面默认空白),但要注意它的表现和父元素<html>的样式紧密相关,讨论时不能脱离<html>单独看<body>的margin效果。
内容的提问来源于stack exchange,提问作者OUTC-K
相关产品推荐
相关产品推荐

