css中,为啥子元素的背景色会成为父元素的背景色。 代码如下:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css中,为啥子元素的背景色会成为父元素的背景色。 代码如下:相关的知识,希望对你有一定的参考价值。

<!DOCTYPE>
<html>

<head>

<style>

*
margin:0;
padding:0;


body
margin:0 50px;
background-color: yellow;
height:100%;


</style>
</head>

<body>

</body>
</html>

为什么 外边距的部分也成了黄色?

body是个特殊的元素,不要用普通元素(如DIV)的眼光来看待它。它本身具有块级元素的基本特征,如边框、外边距、宽度、高度等,但某些属性如背景色、背景图片,在文档本身(html)没有设定的情况下,body会把自己的背景色、背景图片作为html的公共设定,而在html本身设定了背景色或图片的情况下,body就会把自己的背景色或图片收回作为自己的私有设定,这个时候body就会完全表现为一个块级元素了。
所以,如果要给网页设定底层的背景色或背景图片,最好在html标签上设定,而不要用body。

补充一句:在IE6/7/8中,如果把第一行的<!DOCTYPE>去掉,则body是完全等同于文档窗口的,是无法设置大小、边距等等的(永远与文档窗口保持同等大小)。
参考技术A 没有看到你所谓的效果,只是给body加了一个背景颜色而已追问

左右两边 50pt 的部分并不属于 body ,却也是黄色。
如果加上样式
html
background-color:white;


可明显看到两边是白的,可无这一样式,两边确是黄色,为什么?

追答

把改成就只显示白色了

参考技术B body == * == html 这三个是一样的本回答被提问者采纳 参考技术C body的对象就是网页全部吧,不是子对象,你是在body写的

canvas一段背景色鼠标移入后

参考技术A CSS3 通过css3的关键帧等方式实现动画效果,看起来好像挺实用,但这样增加了一个没有意义的DOM节点,不符合语义化编程规范
SVG、Canvas 都可以使用脚本语言来实现动画
SVG 本质上是使用XML描述2D图形的语言(矢量图),SVG创建的每一个元素都是一个独立的DOM元素,既然是独立的DOM元素,那表示我们可以通过CSS和JS来控制DOM,也可以对每一个DOM元素进行监听,但由于都是DOM元素,所以如果我们修改了SVG中的DOM元素,浏览器就会自动进行DOM重绘
Canvas通过Javascript来绘制2D图形(位图),而Canvas只是一个HTML元素,其中的图形不会单独创建DOM元素,所以我们无法通过Js来操作Canvas内的图形,也无法监听具体图形
WebGL 用于3D展示、动画、游戏,说白了就是基于Canvas的3D框架

Canvas、SVG适用场景

Canvas 适用于位图,高数据量绘制频率的场景,小游戏,小特效,绘制图表、活动页面、炫酷背景
SVG 适用于矢量图,低数据量绘制频率的场景,如图形图表

以上是关于css中,为啥子元素的背景色会成为父元素的背景色。 代码如下:的主要内容,如果未能解决你的问题,请参考以下文章

用css选择器 如何选择自己的父元素

如何在html已有背景的情况下,在上面添加一个盒子?

小知识点总结HTMLCSSJavaScript

CSS给元素添加背景色

CSS给元素添加背景色

如何使用CSS为文本的宽度而不是整个元素的宽度设置背景色?