神奇的现象——body背景

 当我们设置 body 背景时,有一个神奇的现象。

当 HTML 元素有背景时

html {
  background-color: lightblue
}

body {
  width: 100px;
  height: 100px;
  border: 3px dashed #f66e6e;
  background-color: thistle;
}

显示如下:

注意:

由于 body 设置了宽高,如果页面中有其他内容(如文本、图片等),这些内容可能会超出 body 显示区域,并展示在浅蓝色背景上。 

当 HMTL 元素没有背景时

html {
}

body {
  width: 100px;
  height: 100px;
  border: 3px dashed #f66e6e;
  background-color: thistle;
}

显示如下:

画布

一块区域,用来填充背景,正常情况下,背景颜色填充的是边框盒,画布区域比较特殊。

边框盒(border box)指 border + padding + content 的区域。

特点:最小宽度为视口宽度,最小高度为视口高度。

HTML元素的背景

覆盖画布,给 html 设置背景,将作为整个页面的背景,实际设置的是画布的背景。

BODY元素的背景

如果 html 元素有背景,body 元素的背景正常,也就是背景覆盖边框盒(图一)。

如果 html 元素没有背景,body 元素的背景覆盖画布(图二)。

### 设置网页背景的方法 #### 使用 `background-color` 属性设置背景颜色 为了改变网页的背景颜色,可以通过CSS中的`background-color`属性完成这一操作。此属性不仅能够应用于整个网页,还可以针对特定元素如表格或分层结构指定不同的背景色[^2]。 ```css body { background-color: lightblue; } ``` 上述代码片段展示了如何将页面主体(`body`)的背景设为浅蓝色。 #### 应用 `background-image` 定义背景图片 除了纯色外,利用`background-image`可引入图像作为页面背景。配合其他相关联的样式规则能进一步定制视觉效果,例如防止图案平铺、固定其相对屏幕的位置以及调整尺寸等特性均通过对应的CSS指令达成[^4]。 ```css body { background-image: url('images/background.jpg'); background-repeat: no-repeat; /* 图像仅展示一次 */ background-attachment: fixed; /* 当浏览者滚动时保持不动 */ background-size: cover; /* 确保覆盖全部可视区而不变形 */ } ``` 这里给出了一组完整的配置实例,它会加载位于服务器上名为`background.jpg`文件充当整体布局背后的装饰,并确保该图形不会被复制多份呈现出来;即使用户上下移动视窗内容,这张底图依旧维持原位不变;最后,“cover”的选项使得无论设备分辨率高低都能完美适配而无拉伸失真现象发生。 #### 组合使用多种背景属性简化书写方式 当涉及到多个关于背景样式的定义时,可以采用简写的`background`形式一次性声明所有参数,在提高效率的同时也增强了代码易读性。 ```css body { background: #f0f0f0 url('/path/to/image.png') no-repeat center / contain fixed; } ``` 这段示范说明了怎样把之前提到过的几个独立命令合并成一句简洁明了的形式表达相同的意思——即指定了灰度较高的基色调配上一张中心居中放置且比例适应容器宽度高度变化但不超过边界的PNG格式插画作品作衬托之用。 #### HTML内联样式与标签属性的应用场景 尽管推荐做法是在外部样式表或者文档头部集中管理全局性的外观逻辑,但在某些特殊场合下也可能见到直接嵌入到HTML标记里的局部化修饰手段。比如`<body>`标签自带了一个叫做`background`的老式属性可以直接指向一幅JPEG照片链接地址并附加额外的渲染指示符来微调显示行为[^3]。 ```html <body background="/assets/pattern.jpeg" style="background-repeat:no-repeat;background-attachment:fixed;"> ``` 不过值得注意的是这种方法已经逐渐被淘汰,现代开发实践中更倾向于遵循分离关注点的原则从而获得更好的维护性和扩展能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值