CSS背景background详解,background-position详解-程序员宅基地

技术标签: CSS  css  

背景(background)是css中一个重要的的部分,也是需要知道的css的基础知识之一。这篇文章将会涉及css背景(background)的基本用法,包括诸如 background-attachment 等的属性,也会介绍一些有关背景(background)的常用技巧,以及 css3 中的 背景(background)(包含4个新的背景(background)属性)。

css2 中的背景(background)

概述

CSS2 中有5个主要的背景(background)属性,它们是:

* background-color: 指定填充背景的颜色。

* background-image: 引用图片作为背景。

* background-position: 指定元素背景图片的位置。

* background-repeat: 决定是否重复背景图片。

* background-attachment: 决定背景图是否随页面滚动。

这些属性可以全部合并为一个缩写属性: background。需要注意的一个要点是背景占据元素的所有内容区域,包括 padding 和 border,但是不包括元素的 margin。它在 Firefox, Safari ,Opera 以及 IE8 中工作正常,但是 IE6 和 IE7 中,background 没把 border 计算在内。

 

基本属性

 

背景色(background-color)

background-color 属性用纯色来填充背景。有许多方式指定这个颜色,以下方式都得到相同的结果。

1

2

3

background-colorblue;

background-colorrgb(00255);

background-color#0000ff;

background-color 也可被设置为透明(transparent),这会使得其下的元素可见。

 

背景图(background-image)

background-image 属性允许指定一个图片展示在背景中。可以和 background-color 连用,因此如果图片不重复地话,图片覆盖不到地地方都会被背景色填充。代码很简单,只需要记住,路径是相对于样式表的,因此以下的代码中,图片和样式表是在同一个目录中的。

1

background-imageurl(image.jpg);

但是如果图片在一个名为 images 的子目录中,就应该是:

1

background-imageurl(images/image.jpg);

糖伴西红柿:使用 ../ 表示上一级目录,比如 background-image: url(../images/image.jpg); 表示图片位于样式表的上级目录中的 images 子目录中。有点绕,不过这个大家应该都知道了,我就不详说了。

 

背景平铺(background-repeat)

设置背景图片时,默认把图片在水平和垂直方向平铺以铺满整个元素。这也许是你需要的,但是有时会希望图片只出现一次,或者只在一个方向平铺。以下为可能的设置值和结果:

1

2

3

4

5

background-repeatrepeat/* 默认值,在水平和垂直方向平铺 */

background-repeatno-repeat/* 不平铺。图片只展示一次。 */

background-repeatrepeat-x/* 水平方向平铺(沿 x 轴) */

background-repeatrepeat-y/* 垂直方向平铺(沿 y 轴) */

background-repeat: inherit; /* 继承父元素的 background-repeat 属性*/

 

【重点】背景定位(background-position)

background-position 属性用来控制背景图片在元素中的位置。技巧是,实际上指定的是图片左上角相对于元素左上角的位置。
下面的例子中,设置了一个背景图片并且用 background-position 属性来控制它的位置,同时也设置了 background-repeat 为 no-repeat。计量单位是像素。第一个数字表示 x 轴(水平)位置,第二个是 y 轴(垂直) 位置。

1

2

3

4

5

6

7

8

9

10

11

/* 例 1: 默认值 */

background-position0 0/* 元素的左上角 */

 

/* 例 2: 把图片向右移动 */

background-position75px 0;

 

/* 例 3: 把图片向左移动 */

background-position-75px 0;

 

/* 例 4: 把图片向下移动 */

background-position0 100px;

 

background-position 属性可以用其它数值,关键词和百分比来指定,这比较有用,尤其是在元素尺寸不是用像素设置时。

关键词是不用解释的。x 轴上:

  • * left
  • * center
  • * right

y 轴上:

  • * top
  • * center
  • * bottom

顺序方面和使用像素值时的顺序几乎一样,首先是 x 轴,其次是 y 轴,像这样:

1

background-positionright top;

使用百分数时也类似。需要主要的是,使用百分数时,浏览器是以元素的百分比数值来设置图片的位置的。看例子就好理解了。假设设定如下:

1

background-position100% 50%;

This goes 100% of the way across the image (i.e. the very right-hand edge) and 100% of the way across the element (remember, the starting point is always the top-left corner), and the two line up there. It then goes 50% of the way down the image and 50% of the way down the element to line up there. The result is that the image is aligned to the right of the element and exactly half-way down it.

糖伴西红柿:这一段没想到合适的翻译,保留原文,意译。 

update: 感谢天涯的指教,这段搞明白了。使用百分数定位时,其实是将背景图片的百分比指定的位置和元素的百分比位置对齐。也就是说,百分数定位是改变了背景图和元素的对齐基点。不再像使用像素和关键词定位时,使用背景图和元素的左上角为对齐基点。例如上例的 background-position: 100% 50%; 就是将背景图片的 100%(right) 50%(center) 这个点,和元素的 100%(right) 50%(center) 这个点对齐。

这再一次说明了,我们一直认为已经掌握的简单的东西,其实还有我们有限的认知之外的知识。

注意原点总是左上角,最终的效果是笑脸图片被定位在元素的最右边,离元素顶部是元素的一半,效果和 background-position: right center; 一样。

 

背景附着

background-attachment 属性决定用户滚动页面时图片的状态。三个可用属性为 scroll(滚动),fixed(固定) 和 inherit(继承)。inherit 单纯地指定元素继承他的父元素的 background-attachment 属性。

为了正确地理解 background-attachment,首先需要明白页面(page)和视口(view port)是如何协作地。视口(view port)是浏览器显示网页的部分(就是去掉工具栏的浏览器)。视口(view port)的位置固定,不变动。

当向下滚动网页时,视口(view port)是不动的,而页面的内容向上滚动。看起来貌似视口(view port)向页面下方滚动了。如果设置 background-attachment: scroll,就设置了当元素滚动时,元素背景也必需随着滚动。简而言之,背景是紧贴元素的。这是 background-attachment 默认值。

用一个例子来更清楚地描述下:

1

2

3

4

5

background-imageurl(test-image.jpg);

 

background-position0 0;

background-repeatno-repeat;

background-attachmentscroll;

当向下滚动页面时,背景向上滚动直至消失。

但是当设置 background-attachment 为 fixed 时,当页面向下滚动时,背景要待在它原来的位置(相对于浏览器来说)。也就是不随元素滚动。

用另一个例子描述下:

1

2

3

4

background-imageurl(test-image.jpg);

background-position0 100%;

background-repeatno-repeat;

background-attachmentfixed;

页面已经向下滚动了,但是图像仍然保持可见。

需要重视的一点是背景图只能出现在它父元素能达到的区域。即使图片是相对于视口(view port)定位地,如果它的父元素不可见,图片就会消失。参见下面的例子。此例中,图片位于视口(view port)的左下方,但是只有元素内的图片部分是可见的。

1

2

3

4

background-imageurl(test-image.jpg);

background-position0 100%;

background-repeatno-repeat;

background-attachmentfixed;

因为图片开始在元素之外,一部分图片被切除了。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43564570/article/details/113616689

智能推荐

springboot对于参数的处理,get和post,@GetMapping和@PostMapping_springboot中写get和post接口是的参数用什么注解-程序员宅基地

文章浏览阅读3.3k次。(1)@GetMapping只能通过url传参数。所对应的接口参数只能是用@RequestParam注解或者不注解(2)@PostMapping既可以通过url传参数,也可以通过body传json参数。所对应的接口参数可以有@RequestParam注解,也可以有@RequestBody注解,也可以没有注解。(3)不管是@GetMapping还是@PostMapping,除了@RequestBody注解对应的参数是通过json在body里面传参数外,@RequestParam注解和没有注解都是在ur_springboot中写get和post接口是的参数用什么注解

查询快递物流提前签收的单号,快速分析筛选的方法_快递签收快速比对-程序员宅基地

文章浏览阅读152次。并分析物流,还有很多小伙伴们不知道这种批量查询的方法,下面就以查询快递物流信息,快速分析筛选出提前签收件为例,一起看如何操作吧。此批单号中有提前签收的单号,就会被分析筛选出显示在窗口上。任意双击一个单号查看,物流显示已签收了,但是还有物流动态,说明提前签收分析筛选成功。那么全部查询完成单号物流后,如何快速分析出有提前签收的单号呢?打开左上角的“工具”菜单,用里面的“提前签收分析”功能。全部单号自动发送到主界面上,一行一个,打开“刷新物流”菜单,用“刷新当前页单号”开始查询物流。运行快递批量查询高手软件。_快递签收快速比对

K8S 5G 专有词汇_multiprotocol over frame relay-程序员宅基地

文章浏览阅读2.6k次。5G词汇 导出与导入导出导入Local list of abbreviations(Please note: the list below was created a long time ago, and has been transferred across different web pages over time. It is likely not as updated as the on..._multiprotocol over frame relay

jQuery-Ajax(详解)_jquery.ajax-程序员宅基地

文章浏览阅读2.7w次,点赞77次,收藏419次。安装Web环境Ajax方法需要与Web服务器端进行交互,需要有环境才可正常使用,安装环境的工具包有很多,可以选择自行下载。jQuery中的Ajax在jQuery中,$.Ajax()方法属于最底层的方法,第2层是load(),$.get(),和$.post(),第3层是$.getScript()和$.getJSON()方法。一、 load( ) 方法结构load( url , [data] , [callback] )参数解释捕获.PNG1.1 应用1.1.1首先构建一_jquery.ajax

abaqus切削为什么没有切屑_基于ABAQUS的高速切削切屑形成过程的有限元模拟-程序员宅基地

文章浏览阅读809次。【实例简介】基于有限元分析软件ABAQUS的Johnson-Cook材料模型以及断裂准则模拟高速切削淬硬钢锯齿状切屑形态,并讨论刀具前角和锯齿状切屑形态对切削力的影响。研究表明仿真结果和试验结果是一致的,文中介绍的有限元模拟方法可以准确地模拟并预测高速切削淬硬钢时的切屑形成过程。刀4有限元模拟及试验结果将有限元模拟仿真预测的切屑形态与试验结果进行比较,如图2、图3、图4所示。预测的切屑形态结果以积..._abaqus切屑

python判断素数的函数_python基础——filter函数-程序员宅基地

文章浏览阅读1.2k次。python基础——filter函数Python内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。例如,在一个list中,删掉偶数,只保留奇数,可以这么写:#在一个list中,删掉偶数,只保留奇数def is_odd(..._并发编程判断大素数def main(): if __name__ == '__main__': primes=list(map(int

随便推点

Springboot计算机毕业设计小程序就医管理【附源码】开题+论文+mysql+程序+部署-程序员宅基地

文章浏览阅读789次,点赞17次,收藏12次。首先,通过整合医疗资源,优化就医流程,可以减少患者等待时间,提高医疗服务效率,为患者提供更加便捷、高效的医疗服务。就医管理小程序能够整合医疗资源,优化就医流程,提高医疗服务效率,为患者提供更加便捷、高效的医疗服务。通过实现用户管理、附近医院查询、门诊部管理、检查部管理、住院部管理、药房管理等功能模块,为患者提供挂号预约、门诊报告查询、检查安排查看、药方安排查询等便捷服务;通过本研究的实施,我们预期将开发出一款功能完善、操作便捷的就医管理小程序,为患者提供高效、优质的医疗服务。

联盟鱼的一种说法_联盟鱼lead-程序员宅基地

文章浏览阅读74次。一种是库料,简单的理解为就是通过一些技术手段,一下子可以获取一部分数量的信息,至于这些信息是什么时候存在的不清楚,然后再有测活软件,一一筛选,得到有效利用的,然后再找对应的项目来做。做国外广告联盟的人或者是亚马逊圈里面,再有通道都会接触到这些技术,所谓需不需要吧,最起码是要懂得的。当然这些都是可以通过一定技术来实现的,需要匹配不同的资源,需要哪些数据再去结合就够了。不管国外LEAD也好,还是其他的也罢,言尽于此。还有一种就是所谓的新鲜的,如同去菜市场买菜一样,看到活蹦乱跳的大鲤鱼,这种情况下,叫做鲜鱼。_联盟鱼lead

学习FreeRTOS前的准备工作_学习freertos之前-程序员宅基地

文章浏览阅读3.7k次。--转自:http://bbs.armfly.com/read.php?tid=1552了解FreeRTOS之前,一定要搞清楚FreeRTOS, SafeRTOS和OpenRTOS之间的关系1. 先说FreeRTOS和OpenRTOSFreeRTOS和OpenRTOS的共享相同的源码,只是 OpenRTOS 为 FreeRTOS 披上’commercial and legal _学习freertos之前

夜神模拟器浏览器下载安装burp证书,der证书安装不上 的解决办法。_windows 夜神证书 安装不了-程序员宅基地

文章浏览阅读343次。大家不要慌,咱们进入设置,点击安全,然后看图2。点击下载证书,发现双击打不开。_windows 夜神证书 安装不了

电动汽车常规充电、快速充电、更换电池充电负荷蒙特卡洛法模拟(Matlab代码实现)-程序员宅基地

文章浏览阅读309次,点赞7次,收藏10次。运用蒙特卡洛法模拟电动汽车的充电方式,包括常规充电、快速充电以及更换电池充电曲线,并研究这些方式对日负荷曲线的影响。通过模拟这些充电方式,我们可以深入了解电动汽车在不同充电模式下对电网的影响,从而为未来电动汽车的普及和充电基础设施的规划提供重要参考。通过这样的蒙特卡洛法模拟研究,您可以获得关于不同类型电动汽车充电负荷的信息,帮助优化充电桩的布局和安排,改善充电服务和系统性能。可以计算充电桩的利用率、充电时长的分布、平均等待时间等指标,评估不同类型电动汽车充电负荷的特征和影响因素。行百里者,半于九十。

面向联邦学习的知识图谱系统设计与构建(开题报告)_联邦式知识图谱-程序员宅基地

文章浏览阅读536次,点赞19次,收藏13次。总体而言,面向联邦学习的知识图谱系统设计与构建不仅有望解决当前联邦学习中的一系列挑战,同时也为构建更智能、安全和高效的分布式智能系统提供了新的思路和工程实践。技术方案的选择应考虑如何通过知识图谱系统的设计和优化方法,提高联邦学习模型的训练效率。4.在实验阶段,通过验证系统性能,实际应用于联邦学习场景,为实际应用提供了具体的解决方案,并在实验结果中展现了创新性和可行性。2.提出的模型训练优化方法通过知识图谱系统的应用,为联邦学习中的模型训练问题提供了新的解决思路,具有一定的创新性。_联邦式知识图谱