css学习之背景定位

资料

《css揭秘》,w3c

背景定位

background-position:设置背景图像的起始位置
在这里插入图片描述
场景1:让背景图片处于右下角

  background-image:url('/i/eg_bg_03.gif');
  background-repeat:no-repeat;
  background-position:right bottom;

在这里插入图片描述
场景2:在处于右下角的情况下,距离右侧10px,距离底部20px,修改 background-position

  • 方式1
  background-position:right 10px bottom 20px;

在这里插入图片描述

  • 方式2
    如果我们以左上角偏移的思路来考虑,其实就是希望它有一个 100% - 20px 的水平偏移量,以及 100% - 10px 的垂直
    偏移量。使用calc() ,可以获得同样的效果:
background-position: calc(100% - 10px) calc(100% - 20px);

calc() 函数内部的 - 和 + 运算符的两侧各加一个空白符,否则会产生解析错误!这个规则如此怪异,是为了向前兼容:未来,在 calc() 内部可能会允许使用关键字,而这些关键字可能会包含连字符(即减号)。

  • 方式3
    在给背景图片设置距离某个角的偏移量时,有一种情况极其常见:偏移量与容器的内边距一致。
padding: 20px 10px;
background-position: right 10px bottom 20px;

代码不够DRY:每次改动内边距的值时,我们都需要在几个地方更新这个值!
有一个更简单的办法可以实现这个需求:让它自动地跟着我们设定的内边距走,不用另外声明偏移量的值。即使用background-origin属性
在这里插入图片描述

padding: 20px 10px;
background: url("code-pirate.svg") no-repeat #58a
 bottom right; /* 或 100% 100% */
background-origin: content-box;

在这里插入图片描述
但是会发现 background-origin 在 div 等元素中有效果,但在 body 中不起作用,又惊奇,给body父节点html添加背景色之后,background-origin 又有了效果,如下图
在这里插入图片描述
后面查找了原因,是因为
应用于body元素的背景是特殊的,因为它会传播到html然后画布

对于其根元素是HTML HTML元素或XHTML html元素[HTML]的文档:如果根元素上的background-image的计算值为none且其background-color为透明,则用户代理必须改为传播计算的值该元素的第一个HTML BODY或XHTML body子元素的背景属性。该BODY元素的背景属性的使用值是它们的初始值,并且传播的值被视为在根元素上指定它们。建议HTML文档的作者指定BODY元素的画布背景而不是HTML元素。

总结

整理一下,不至于看了就忘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值