搜索
首页web前端html教程前端干货!实用全面的CSS background 属性使用手册_html/css_WEB-ITnose

background是用来设置背景的元素,从最早的纯色填充发展到现在,不仅支持渐变,甚至能用上混合模式!今天@不到布这篇好文将一一为你阐释这些子属性的用法,周末学起来!

background 属性是CSS中用于设置元素背景的属性,最简单的background属性名,是针对背景若干设定的合并简写,最早的CSS只能使用单一背景图片,而在现在却可以设置多个背景图片。而不用图片的话,最早的background只能使用纯色填充,现在却可以使用各种渐变效果。现在所用的模型来自于CSS Backgrounds and Borders Module Level 3所定义的规范,主要分成了8个子属性。

背景颜色之 background-color

background-color是最早,最古老,最…常用的属性之一,取值是唯一的,颜色值。

背景图片之 background-image

background-image顾名思义是设置背景“图片”的,这里的图片并非我们通常意义上理解的“图片”,而是由CSS Image Values and Replaced Content Module所规定的一系列内容,用以替代CSS2中所规定的background-image属性与list-style-image属性中的url参数,或者作为伪元素content的值。现在浏览器也没有完全实现这些,可用的包括url()引用图片,和渐变“图片”,然后以逗号分隔所有图片(如果有)。

CSS 渐变

CSS渐变分成两种,linear-gradient()的线性渐变和radial-gradient()的径向渐变。两个渐变在早期不同浏览器上的实现语法大相径庭,所以用的人较少,还是倾向于使用图片,现在各个浏览器的显示和实现已经基本趋向于一致,而且在手机端也有比较好的实现,在移动端开发完全可以广泛使用了(但是在兼容IE9-的时候还是╮(╯_╰)╭),下面是详细介绍,也可以用 生成器 来搞定啦。

线性渐变:linear-gradient(, [, ]+);

  • 可以选择 to top、to bottom、to left、to right这4个关键字和 *deg 设置, 0deg(↓)就相当于 to bottom, 90deg(←) 相当于 to left,以此类推。
  • , 的值则为[ ]?,第一个和最后一个颜色不用写,中间的颜色如果不写的话,所有的颜色就会平均分布。

径向渐变:

radial-gradient([ [ || ] [ at ]? , | at , ]? [ , ]+)

我本想把这个语法简写一下的…减来简去发现还是这么写就好了(毕竟人家规范就是这么写的,果然深思熟虑过)…从后往前说

和线性渐变一样,[ ]?,也可以设定多个颜色值,而不写位置的话,就按照规定的值平均分布。颜色前面一大串:定义径向渐变的圆心、位置和渐变模式。 是形状,可选值为ellipses(椭圆)或者circles(正圆),如果整个元素是个正方形的话,两个形状就都一样啦。

是尺寸,可以定义渐变的数值半径,如果形状是椭圆的话,需要填写两个尺寸值,按顺序是水平半径和垂直半径,此时尺寸可以写百分数。

尺寸另外还有4个关键字可用:closest-side(最近的边)、farthest-side(最远的边)、closest-corner(最近的角)、farthest-corner(最远的角),这4个关键字是指圆心相对于元素而言的,顾名思义想一下就好。

是圆心位置,需要在位置前面加上at,可以用position常用的关键字,也可以使用数值定义。

比如如下三行代码,就是等价的:

radial-gradient(yellow, green);radial-gradient(ellipse at center, yellow 0%, green 100%);radial-gradient(farthest-corner at 50% 50%, yellow, green);

重复渐变:repeating-linear-gradient()和repeating-radial-gradient()

用法同上,只是这回是重复渐变了而已。 这里 有一些很漂亮的Demo,当然它主要是为展示background-blend-mode属性建立的。

背景重复之 background-repeat

background-repead用于设置背景的重复方式,可选值有下面几种:

  • no-repeat 不重复,等价于no-repeat no-repeat
  • repeat-X X轴方向(横向)重复,等价于repeat no-repeat
  • repeat-Y Y轴方向(纵向)重复,等价于no-repeat repeat
  • repeat 重复平铺,等价于repeat repeat 除了这4个常用的,还有两个…大概没什么人用,兼容性也不是很好的取值:
  • round 图像在指定方向平铺,会根据显示空间的大小缩放图像(什么时候缩放,什么时候增减平铺的数量是由浏览器决定的)
  • space 图像会尽可能重复,但不裁剪,第一张和最后一张固定在元素两端,剩下的均匀分布。此时background-position属性被忽视。另外只有在图像大过元素的时候会发生裁剪。

背景固定之 background-attachment

background-attachment用于设置背景相对的固定方式,可选值有:

  • scroll 默认值,背景相对于元素固定。
  • fixed 背景相对于整个窗口固定。随着最近全屏大图网站的流行,这种背景固定模式也日渐多见起来。
  • local 背景相对于元素内容固定,如果元素内有滚动条,背景会随着内容滚动。 local这种模式我们几乎不怎么用到,这里找到 一篇文章 ,作者写了一个Demo,在元素出现滚动条的时候,会在它的可滚动方向出现阴影。虽然是属于交互设计范畴,但随着各个网站更加强调重视用户体验,这种需求是早晚的事,而作者的Demo是非常有趣(且有效率)的实现方式。

背景定位之 background-position

background-positon,顾名思义就是用来定位的…但是这个定位吧…语法很复杂(或者说很随意)。可用的各种指示方向的关键字,也可以用数字单位或者百分比,写法有下面几种:

  • 并列写两个关键字(或值),第一个值代表它的水平位置,第二个值代表它的垂直位置(这个和padding、margin、border这些先上下再左右的属性刚好是反的…)。另外如果两个都是关键字,那么位置可以交换,也就是说,center left是合法的,然而50% left不行。
  • 只写一个关键字(或值),那么它的第二个值就默认为center(居中)。
  • 三、四值,可以从元素的四周定位,比如离右边10px,底边5px,就可以写成right 10px bottom 5px,两组关键字-值对可以交换位置,也可以用center替代关键字-值。这种写法目前(2016-06)只有FF支持。

背景裁切之 background-clip

background-clip是设定背景所覆盖的范围的属性。可选值有:

  • border-box 默认值,背景延伸到边框下,但是只有当边框的颜色是半透明的时候才能看到延伸过来的背景。
  • padding-box 边框下没有背景。
  • content-box 只有内容下有背景(padding的空间里都没有)

背景原点之 background-origin

background-origin指定了背景图片定位的原点。属性取值与background-clip相同,但是clip是会对背景图片进行裁切,而origin是用于定位的。

可以看这个 Demo ,展现得比较清晰了。

背景尺寸之 background-size

background-size用来设置背景尺寸,可选值有:

  • 一对值\百分比或auto,百分比是相对于background-origin所设置的尺寸而言的,auto就是图片原本的尺寸,两个数值先宽后高。
  • cover 缩放图片,令其完全覆盖背景区域,可能导致图片某些区域不可见。
  • contain 缩放图片,令其以最大尺寸完整展现在背景区域中,可能导致背景某些区域变成空白。

变形金刚之 background

background是上面8个属性的总和…可以把所有属性写在一起。顺序不限,以空格隔开即可,但有几个需要注意的点:

  • 如果需要设定背景尺寸,写法是/,必须设定 的同时,以 / 分隔 和 。
  • background-clip和background-origin的属性,如果只写了一个值,那么会同时应用在两个属性上,如果写了两个值,那么前者是background-origin,而后者是background-clip
  • 没有设置的会被设为默认值,之后也可以单独设置,这个和padding之类简写的方式相似。

合体战士之多重背景

从CSS3时代开始,CSS背景开始支持多个背景图,设置在一起了。

只要将每张背景图以逗号分开,那么浏览器就会依次加载,并把写在后面的叠在上面。

对于分开设置的背景属性,也可以以逗号分隔,分别设置。但是如果,你只想设置其中某一张图片的特定属性,那你就得把其他的也都写上才行…

以及,背景颜色是唯一的(摊手),在使用background简写的时候,背景颜色要设置在最后一个逗号之后。

还有什么?

还有,在去年最新的 Compositing and Blending 草案中,提出了混合模式的规范草案,涉及到背景的属性是background-blend-mode,于本文成文时,只有Chrome和FF两大浏览器支持这一属性。

如果各位有玩过Photoshop的话,应该会对Photoshop中的混合模式有所耳闻,二者意思差不多。background-blend-mode的可选参数包括:normal(普通),multiply(正片叠底),screen(滤色),overlay(叠加),darken(变暗),lighten(变亮),color-dodge(颜色减淡),color-burn(颜色加深),hard-light(强光),soft-light(柔光),difference(差值),exclusion(排除),hue(色相),saturation(饱和度),color(颜色),luminosity(明度)。

这些参数的中文都是我根据Photoshop的混合模式直接翻译过来的(繁体用户可以参考 这里 ),规范草案中也给出了每种混合模式的算法和演示效果,因为时间问题我就不一一验证效果了,如果有出入均以实际效果为准。MDN上有实际演示的 Demo ,我前面提到的那个 网站 也有很多实际的展示。

当然这些混合模式也可以应用在其他图像(比如SVG)上,我觉得这完全是为了让那些设计师和前端工程师之间少一些争吵多一些真诚(摊手)。

参考资料

  1. MDN相关页面 :除了上面说的,还有能否应用于 CSS 动画,以及兼容性的相关资料。
  2. W3C规范 :原始规范文档

【技多不压身的设计师才有高薪资!】

  1. 平面设计: 《超赞!设计师完全自学指南》
  2. 交互设计: 《交互设计师修炼指南!教你从零开始成为优秀交互设计师》
  3. UI设计: 《超实用新手指南!零基础如何自学UI设计?》
  4. 前端开发: 《天猫高手来教你!零基础如何系统地学习前端开发?》
  5. 抠图技巧: 《从菜鸟到高手!PHOTOSHOP抠图全方位攻略》
  6. 配色方案: 《色彩搭配速成!3个实用方法帮你全面搞定配色》
  7. DPI指南: 《基础知识学起来!为设计师量身打造的DPI指南》
  8. 交互设计自学路径图: 《零基础入门!给非科班生的自学路径图之交互设计篇》

【优设网 原创文章 投稿邮箱:2650232288@qq.com】

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
了解HTML,CSS和JavaScript:初学者指南了解HTML,CSS和JavaScript:初学者指南Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的角色:构建Web内容HTML的角色:构建Web内容Apr 11, 2025 am 12:12 AM

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

HTML和代码:仔细观察术语HTML和代码:仔细观察术语Apr 10, 2025 am 09:28 AM

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML,CSS和JavaScript:Web开发人员的基本工具HTML,CSS和JavaScript:Web开发人员的基本工具Apr 09, 2025 am 12:12 AM

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

HTML,CSS和JavaScript的角色:核心职责HTML,CSS和JavaScript的角色:核心职责Apr 08, 2025 pm 07:05 PM

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

HTML容易为初学者学习吗?HTML容易为初学者学习吗?Apr 07, 2025 am 12:11 AM

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

HTML中起始标签的示例是什么?HTML中起始标签的示例是什么?Apr 06, 2025 am 12:04 AM

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何利用CSS的Flexbox布局实现菜单中虚线分割效果的居中对齐?如何利用CSS的Flexbox布局实现菜单中虚线分割效果的居中对齐?Apr 05, 2025 pm 01:24 PM

如何设计菜单中的虚线分割效果?在设计菜单时,菜名和价格的左右对齐通常不难实现,但中间的虚线或点如何...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。