35、CSS进阶——画布背景

news/2024/12/2 12:39:37/

画布的背景

首先,看一个现象。

对于一个没有body元素子元素的html文档,添加样式

body{background: #008c8c;
}

对于没有设置尺寸样式的body元素,其display值默认为block;width默认为auto,吸收剩余空间,因此其宽度应该撑满整个页面。而height默认为0,且body内部没有内容,因此其高度应该为0。设置其背景颜色,本来应该覆盖body元素的边框盒(这点由background-clip属性的默认值决定的)。但是,实际情况如下。

body-background

body设置的背景颜色实际上却填充满了页面。

如果我们给body元素设置确切的宽高

body{background: #008c8c;width: 100px;height: 100px;border: 2px dashed;
}

显示效果如下

body-background2

可以看出,body的背景颜色依然反常的越出body的边框盒。

但是,如果此时给body元素的父元素html设置background,反常的背景覆盖转而让html承担,body元素的背景颜色覆盖恢复正常。

html{background: lightblue;
}
body{background: #008c8c;width: 100px;height: 100px;border: 2px dashed;
}

html-background

画布

画布(canvas),一块区域。这块区域有以下特点:

  1. 最小宽度为视口宽度
  2. 最小高度为视口高度

这里的canvas只是指一种区域,不是html5中的<canvas>元素。

HTML元素的背景

  • 覆盖画布

body元素的背景

  • 如果html元素有背景,body元素正常(背景覆盖边框盒)

  • 如果html元素没有背景,body元素的背景覆盖画布

主要针对背景颜色和背景图的设置。

html/body元素的背景如此设置,便于整个网页背景的设置,避免设置背景的宽度/高度不够。

关于画布(html/body)背景图

  1. 画布背景图宽度百分比,相对于视口
body{width: 2000px;height: 100px;background: url("img/main_bg.jpg") no-repeat;background-size: 100%;border: 2px solid #f40;
}

画布背景图宽度百分比

  1. 画布背景图高度百分比,相对于网页(html元素)高度
body{width: 200px;height: 400px;background: url("img/main_bg.jpg") no-repeat;background-size: 100% 100%;border: 2px solid #f40;
}

画布背景图的高度百分比

  1. 画布背景图横向位置百分比、预设值,相对于视口
body{width: 2000px;height: 400px;background: url("img/main_bg.jpg") no-repeat;background-size: 50%;background-position: center bottom;border: 2px solid #f40;
}

画布背景图横向位置百分比

  1. 画布背景图纵向位置百分比、预设值,相对于网页高度
body{width: 2000px;height: 400px;margin-top: 100px;margin-left: 200px;background: url("img/main_bg.jpg") no-repeat;background-size: 50%;background-position: center center;border: 2px solid #f40;
}

画布背景图的纵向百分比

画布背景在横向始终处于中间位置,纵向位于html元素的中间位置。


http://www.ppmy.cn/news/852719.html

相关文章

BFC讲解

文章目录 写在前面什么是BFC解决了什么问题如何解决包含内部浮动元素排除外部浮动解决margin重叠解决margin塌陷 总结 写在前面 因为这篇文章内容属于比较常见的一个面试题&#xff0c;所以帖子里面很多讲过了&#xff0c;我还是决定还是写一篇关于BFC的文章&#xff0c;因为考…

关于Keil5 .c文件所支持的.h文件未全部显示的问题。(初学者常犯错误)

问题&#xff1a;编译时显示很多变量未定义&#xff0c;可能原因是为包含变量所定义的头文件。 分析&#xff1a;为节省硬件资源&#xff0c;将本项目中用不到的库文件注释掉了。 解决&#xff1b;点击 stm32f10_conf &#xff08;对应到自己的芯片可能是f40等&#xff09;&a…

【嵌入式 · STM32】STM32F407引脚复用对照表

PWM 注&#xff1a;红色标注代表 TIMx_CHxN U(S)ART ADC DMA

MATLAB Simmechanics/Simscape四旋翼无人机控制仿真(5) F250旋翼仿真搭建

MATLAB Simmechanics/Simscape四旋翼无人机控制仿真&#xff08;5&#xff09; F250旋翼仿真搭建 MATLAB Simmechanics/Simscape四旋翼无人机控制仿真&#xff08;5&#xff09; F250旋翼仿真搭建1 效果 MATLAB Simmechanics/Simscape四旋翼无人机控制仿真&#xff08;5&#x…

vue---十分钟搞懂vue计算属性

计算属性 前言 这篇文章介绍vue组件基础中的计算属性&#xff0c;文章持续输出中&#xff01; 废话不多说&#xff0c;直接上刺刀&#xff01;&#xff01; 1. 什么是计算属性 计算属性本质上就是一个 function 函数&#xff0c;它可以实时监听 data 中数据的变化&#xff0…

3GPP TS 29244 f40与f50对比差异

在进一步学习29244标准时&#xff0c;想尝试分析每两个版本之间的细微差异&#xff0c;以了解这几年29244标准的变化&#xff0c;试图从这些变化中以一窥需求的变化。在学习的同时特意整理出来&#xff0c;大家共同学习提高。 5.2.1A.3 Application detection with PFD The d…

R语言数据统计分析与ggplot2高级绘图教程

详情点击链接&#xff1a;R语言数据统计分析与ggplot2高级绘图教程 一&#xff1a;R语言与数据管理1.1 R语言 1.2 R包安装 1.3 R数据读取与重构 1.4 dp1yr包与数据编辑二&#xff1a;R试验设计与数据分析2.1 试验设计 2.2 RCB设计 2.3 BIB设计 2.4 正交设计 2.5 析因设计三&am…

CSS3颜色表达方法

CSS颜色表达方法 CSS中在进行颜色的表示时&#xff0c;通常有以下三种方式&#xff1a; 1.纯英文单词&#xff08;土鳖式&#xff09; css代码&#xff1a; Element{color: red; } Element1{color: green; }这种方法只能练习的时候使用&#xff0c;一般实际开发中不使用。 …