CSS属性总结之background

最近在学习css3的一些新属性,就把一些使用中遇到的方法和问题做一个小结。

background-color

背景颜色在IE7之前只显示到padding区域,不包含border。而现代浏览器background-color都是从border的左上角,到border的右下角。

background-color: rgba(0,255,0,0.5);

background-image

背景图图有几种情况:默认情况下(repeat),会从border区域开始布满,当然也包含了border区域;

当设置为no-repeat时,是从padding的左上角到border的右下角;

背景图图应用:

logo中添加用于SEO的文字

html结构是:h1>a,a中的文字用于搜索,再讲a转块,转块之后就可以设置宽高,这样就可以看到后面加的背景图图了,宽高就等于背景图图的宽高,但是搜索的文字会覆盖在背景图上,使用text-indent给a一个-999px的值让文字出去很远很远的位置,再给a一个overflow:hidden就可以把文字切掉了。当然,也可以将文字的font-size设为0,但是在IE6、7下会出现不兼容问题,有一小条文字在图图上,so用text-indent就好了。

padding区域挤出用来放背景图

这种方法加图图,通常是这个图图并不重要,主要用于修饰的时候,重点在文字部分。

为什么要加在padding呢?当想放一张图图在盒子中,通常是在no-repeat情况下,那么no-repeat时图图可以到padding区域,但是width是用来写文字的,so就只能加在了padding,具体加在top还是left看具体情况而定。

注意:要设置背景图,那么盒子必须要有一个宽高,如果是行内那就先转块,如果是浮动的那就先清除浮动(清除浮动方法再另外总结)。

在CSS3中可以重复填写url()实现多背景,既可以这样写

background-image: url(), url();
background-position: right bottom, left top;复制代码

还可以写成综合样式:

background: url() right bottom, url() left top;
复制代码

新属性: background-clip

可以控制背景图图和背景颜色的绘制范围。

      :content-box,此时color和image只出现在内容区域(width),不会扩展到padding,更加到不了border了;:padding-box,此时color和image只出现到padding区域,在padding以内绘制;:border-box,看名字就知道可以绘制到border了。
复制代码

background-clip应用举例:

在导航栏中,鼠标经过时不看到切换状态的变化,同时在视觉上分隔每个li的链接,使用padding-box声明,让背景色只到padding,然后给border设置为transparent(为了显示后面的其他实色)也可以设置颜色给border,这样后面的页面透过边框可见。

.multi_drop_menu li a {  display:block;border-right-style:solid;Background-clip:padding-box;Text-decoration:none;Color:#555;Background-color:#eee;Border-width:3px;Border-color:transparent;
}
复制代码

插播一个background-origin:属性值和background-clip一样有三个,分别表示背景图的原点在content、padding和border区域。

background-position

默认情况下是left top;居左上对齐,此时如果是no-repeat图图就只在左上位置,如果是repeat那会以左上顶点为原点向各个方向重复展开;通过设置位置来居左、中、右对齐,center center是以中心为原点,如果no-repeat那么图图就居中,repeat就会以最中心的图图为原点向各个方向展开来。 特殊情况是当背景图片的size大于盒子的边界,还是可以设置对齐位置,但是此时image不论是否设置了no-repeat都会扩展到border下面。

  • 应用在body或盒子的大背景,position:center top;

  • banner通栏,width:100%; position:center top;

像素表示法:两个属性值都是用px为单位的数值表示。

  • 第一个值:数值是几,表示图片的左上角距离border以内的左上角,水平位移多少距离。
  • 第二个值:数值是几,表示图片的左上角距离border以内的左上角,垂直位移多少距离。

像素表示法的两个属性值区分正负,正负值表示移动的方向不同。

  • 正数:图片的左上角相对于盒子border以内的左上顶点,向右、向下移动。
  • 负数:图片的左上角相对于盒子border以内的左上顶点,向左、向上移动。

像素定为法可以应用在sprite图图找图上,所以,怎么摆放精灵图就是一件要提前算计好的了,如果盒子在页面左边,那在sprite里面放在右边,这样右边宽一些也不会有其他图图出现,相反盒子在页面右边就放在sprite的左侧。

还有一种百分比的表示方法,

  • 0% 0%相当于left top;50% 50%相当于center center;
  • 100% 100%相当于将图图右下角对齐到了border内侧的右下角。一种简单的计算方法就是找出100% 100%对应的像素值,其他值再按照百分比计算出像素值再去定位,100%=盒子width + paddind - 图图width

注意: 修改background属性时,使用单一属性层叠,若使用综合属性则其他属性不变,只改变需要修改的,在使用综合属性时,要特别注意position后面两个值得顺序!

background-attachment :

scroll
fixed
复制代码

设置背景图是否随着页面滚动而滚走,默认scroll随着盒子滚动跟着走,fixed不随着滚,永远固定在浏览器窗口的某个位置,注意在小盒子内部使用fixed定位之后,参考点将从border的内左上点,变成浏览器窗口的左上顶点,,此时上面框里面的背景图相对于browser的左上顶点定位,页面滚动他也不后跟着滚,如果第一个box滚上去出了页面,那么图图也将被其他盒子挡住了,因为背景图就是在盒子下层在背景色上层的。

新属性:background-image 背景图渐变

渐变分两种,linear-gradient (线性渐变)和 radial-gradient (放射性渐变,从一点向四周发散)。

  • background:linear-gradient(red,blue); 背景颜色从红色到蓝色的渐变;
  • background:linear-gradient(to right,red,blue); 背景颜色从红色到蓝色的渐变;
  • background:linear-gradient(-45deg,red,blue); 背景颜色把起点从默认的中上设定到了左上。

比如淘宝搜索框的渐变色:

.search ul li.active a{background: linear-gradient(to right, #FF8F00, #FF5300);color: #fff;font-weight: bold;border-radius: 5px 5px 0 0;}
复制代码

新属性:background-size

背景尺寸是CSS3规定的属性,用来控制背景图图的size:

  • 50%:缩放图图,让图图填充背景区的一半;
  • 100px 50px; 把图图调整到固定的宽高;
  • cover;拉大图片,让图图完全填满背景区,保持宽高比;等价于background-size: 100% auto;
  • contain;缩放图图,让图图恰好适合背景区,保持宽高比。等价于background-size: auto 100%;

注意不要把图图拉的太大,会造成失真!

应用举例:在精灵图中想要放大或者缩小其中某一个图

将容纳背景图的盒子的宽高相应的x2,同时,背景定位的位置值x2,背景size也同时x2,即可实现精灵图中选中的图放大两倍效果。 如果只是直接应用backg-size只会改变背景图也就是整张精灵图的size。

转载于:https://juejin.im/post/5a3c6888f265da433470181b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

官宣!微软发布 VS Code Server!

北京时间 2022 年 7 月 7 日,微软在 VS Code 官方博客中宣布了 Visual Studio Code Server!远程开发的过去与未来2019 年,微软发布了 VS Code Remote,开启了远程开发的新时代!2020 年,微软发布了 GitHub Co…

iis管理常用命令 创建IIS站点 应用应用程序 及虚拟目录

::防止中文输出乱码 chcp 65001::临时设置PATH set PATH%SystemRoot%\system32\inetsrv;%PATH% ::列出所有站点 appcmd list site::站点名称 set sitename"WisdomEducation"::绑定域名和端口号 set domain"http/*:8080:,https/*:8443:"::网站源文件物理路径…

【QGIS入门实战精品教程】4.4:QGIS如何将点自动连成线、线生成多边形?

个人简介:刘一哥,多年研究地图学、地理信息系统、遥感、摄影测量和GPS等应用,精通ArcGIS等软件的应用,精通多门编程语言,擅长GIS二次开发和数据库系统开发,具有丰富的行业经验,致力于测绘、地信、数字城市、资源、环境、生态、国土空间规划、空间数字建模、无人机等领域…

.NET7之MiniAPI(特别篇) :Preview6 缓存和限流

前几在用MiniAPI时还想没有比较优雅的缓存,这不,Preivew6就带来了。使用起来很简单,注入Sevice,引用中间件,然后在Map方法的后面跟CacheOutput()就ok了,CacheOutpu也有不同的参数,可以根据每个方…

蓝桥杯C1

转一篇写的炒鸡棒的博客。讲了表达式求值和词法分析。 http://blog.csdn.net/StevenKyleLee/article/details/43099789 转载于:https://www.cnblogs.com/wangkaipeng/p/6343204.html

曾鸣:未来十年,将确定智能商业的格局|干货

2019独角兽企业重金招聘Python工程师标准>>> 20年来风云变幻,潮起潮涌,我自己最深的一个感受,是对“势”这个字的理解。 第一,敬畏。对于商业规律和对大势的把握,很容易在三五年内决定一个企业的命运。 第二…

Jedis 设置key的超时时间

一分钟之内只能发送一次短信, 若用户刷新页面,然后输入原来的手机号,则继续计时 方案:服务器端要记录时间戳 方法名:sMSWaitingTime 功能:返回倒计时剩余时间,单位秒 Java代码 /*** * 倒计时还剩余多长时间 * param mobile : 手机号 * return : second */…

[转]IIS7全新管理工具AppCmd.exe的命令使用

IIS 7 提供了一个新的命令行工具 Appcmd.exe,可以使用该工具来配置和查询 Web 服务器上的对象,并以文本或 XML 格式返回输出。 下面是一些可以使用 Appcmd.exe 完成的任务的示例: •创建和配置站点、应用程序、应用程序池和虚拟目录。 •停止…

【QGIS入门实战精品教程】4.1:QGIS栅格数据地理配准完整操作流程

推荐阅读:ArcGIS地理配准完整操作步骤 文章目录 一、安装地理配准插件二、准备实验数据三、配准操作流程1. 添加栅格数据2. 添加地面控制点3. 配准设置4. 开始配准5. 精度评价一、安装地理配准插件 点击下拉菜单【插件】→【管理并安装插件】,如下图所示: QGIS默认已经安装…

聊聊 C++ 中的几种智能指针 (上)

一:背景 我们知道 C 是手工管理内存的分配和释放,对应的操作符就是 new/delete 和 new[] / delete[], 这给了程序员极大的自由度也给了我们极高的门槛,弄不好就得内存泄露,比如下面的代码:void test() {int* i new i…

【Android 学习】深入理解Handler机制

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/51355051 Android 提供了Handler和Looper来来满足线程间的通信,而前面我们所说的IPC指的是进程间的通信。…

第五天个人总结

1.昨天做了什么 页面完善 2.今天要做什么 暂未知转载于:https://www.cnblogs.com/sunshine-z/p/8298895.html

【QGIS入门实战精品教程】4.3:QGIS属性表按字段链接外部属性数据

属性数据是GIS空格数据的重要组成部分。属性数据采集的基本操作由于地理实体(如建筑物) 位于地块之内成者与地块有关(如道路),因此,描述地理实体的属性数据和描述地块实体与地理实体之间关系的属性数强大多数都是土地信息的范畴土地空间数据库的属性教据主要是用来描述空间目…

解决 Cmder 的光标跟文字有个间距 及常用配置

具体的方法: 菜单 > SettingStartup > Environment set PATH%ConEmuBaseDir%\Scripts;%PATH% set LANGzh_CN.UTF8 chcp 65001 如果无效:在 Cmder 下的 verndor 目录里,修改 clink.lua 文件大约40和46行,把符号 λ 改为 # …

32 commons-lang包学习

maven依赖 <dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency>一、DateUtils类1、日期比较 public static boolean isSameDay(Date date1, Date date2)&…

做一个高德地图的 iOS / Android .NET MAUI 控件系列 - 创建控件

我们知道 MAUI 是开发跨平台应用的解决方案 &#xff0c;用 C# 可以直接把 iOS , Android , Windows , macOS , Linux ,Tizen 等应用开发出来。那我们在这个框架除了用底层自定义的 UI 控件外&#xff0c;如果我们要用如高德地图这样的第三方控件&#xff0c;要如何做呢&#x…

flask中的session,render_template()第二和参数是字典

1. 设置一个secret_key 2.验证登入后加上session,这是最简单,不保险 . 3.注意render_template传的参数是字典 转载于:https://www.cnblogs.com/cuzz/p/8087844.html

统一设置网站html文件输出编码为utf-8,以解决乱码问题

如果设置整站&#xff0c;就在根目录web.config设置如下参数&#xff0c;如果是指定目录&#xff0c;在该目录下的web.config文件设置如下参数&#xff0c;如果没有web.config文件&#xff0c;可以直接新建一个&#xff1a; <?xml version"1.0" encoding"…

失败记录两则

一&#xff0c;未找出为什么有的CPU应用超高&#xff0c;而另一些CPU静静啥也不干。可能是将JOB的优先级设置低了&#xff1f; 二&#xff0c;给BOSS的三星I9300线刷港版ROM失败。可能文件坏&#xff0c;最可能数据线不是原装&#xff1f;

【QGIS入门实战精品教程】1.1:QGIS与GIS的区别和联系

「刘一哥GIS」系列专栏《QGIS入门实战精品教程(配套案例数据)》目录 1. QGIS概述 QGIS(在2.0版本之前称之为Quantum GIS)于2002年由Gary Sherman创立,在2007年由OSGeo接管,并于2009年发布了1.0版本,目前最高版本为3.22。QGIS采用开源证书GNU GPLv2 (GNU General Public…