美文网首页
CSS 灵活的背景定位(三种方案)

CSS 灵活的背景定位(三种方案)

作者: 巴斯光年lip | 来源:发表于2017-06-05 16:27 被阅读0次

1.background-position 方案

它允许我们指定背景图像距离任意角的偏移量,只要我们在偏移量前面指定关键字。然而它在默认状态下是这样的:

默认位置:背景图片紧贴左上角
为什么背景图片的位置是边框内呢?
答案是:默认情况下,background-position 是以padding-box 为准的,这样边框才不会遮盖背景图片。

当我们给它指定偏移量的时候,例如:

background:url(xxx.jpg ) no-repeat #C4D9E6;
background-position: right 20px bottom 20px;

背景图片将被指定到右下角,跟右边缘保持20px的偏移量,跟底边保持20px的偏移量。
*如果只规定了一个关键词,那么第二个值将是"center"。

right 20px bottom 20px
然而,在不支持background-position属性的浏览器中,背景图片会回到默认位置。会干扰到文字的可读性。于是,需要提供一个回退方案,把 bottom right定位值写到background属性里面。
background:url(xxx.jpg ) no-repeat bottom right #C4D9E6;
background-position: right 20px bottom 20px;

2.background-origin 方案

它规定 background-position 属性相对于什么位置来定位。
语法:background-origin: padding-box|border-box|content-box;

padding:10px;
background:url(xxx.jpg ) no-repeat bottom right #C4D9E6;
background-origin: content-box;

默认情况下,背景图片通过 padding-box 定位,如果把它的值改成content-box,那么图片距离边角的偏移量就跟内边距一样了。

3.calc() 方案

语法:calc() = calc(四则运算)

用于动态计算长度值。
任何长度值都可以使用calc()函数进行计算;
calc()函数支持 "+", "-", "*", "/" 运算;
calc()函数使用标准的数学运算优先级规则;

在第一种方案中,我们想要把背景图片定位到距离底边20px, 且距离右边20px的位置。如果我们仍然以左上角偏移的思路来思考,起始就是希望它有一个 100%-20px 的水平偏移,以及100%-20px 的垂直偏移。所以我们可以把 calc() 函数在background-position 属性中使用:

background:url(xxx.jpg ) no-repeat #C4D9E6;
background-position: calc(100% - 20px) calc(100% - 20px) ;

*需要注意的是,运算符 "-" 前后都需要保留一个空格,例如:width: calc(100% - 10px);

实现第一种方案的效果

参考书籍:Lea Verou《CSS揭秘》

相关文章

  • CSS 灵活的背景定位(三种方案)

    1.background-position 方案 它允许我们指定背景图像距离任意角的偏移量,只要我们在偏移量前面指...

  • 灵活的背景定位

    background-position的扩展语法方案background-position属性允许我们制定背景图片...

  • CSS定位与浮动2016/6/12

    CSS 定位 (Positioning) CSS 有三种基本的定位机制:普通流、浮动和绝对定位。 position...

  • 网页布局基础

    1、CSS的三种定位机制 CSS 规定的定位机制有三种,分别是: 标准文档流(Normal flow): 特点:从...

  • CSS 定位

    CSS定位 CSS 定位机制 CSS中一共有三种基本定位机制:普通流、浮动、绝对定位。如果不进行专门指定,所有的标...

  • 3、灵活的背景定位

    插入背景图时,为了保证图片与盒子边距有一定的距离,可以直接使用background-position属性的扩展语法...

  • CSS 定位(postion、z-index)

    CSS 定位 CSS有三种基本的定位机制:普通流,浮动,绝对定位(absolute, fixed):普通流是默认定...

  • HTMLCSS学习笔记(七)-- 定位与锚点

    CSS文档流 CSS 有三种基本的定位机制:普通流、浮动流、定位流 POSTION position定位属性,检索...

  • CSS定位

    CSS定位 定位有三种,分别是相对定位(relative)、绝对定位(absolute)、固定定位(fixed)。...

  • css - 定位

    CSS 定位机制 CSS 有三种基本的定位机制:普通流、浮动和绝对定位。除非专门指定,否则所有框都在普通流中定位。...

网友评论

      本文标题:CSS 灵活的背景定位(三种方案)

      本文链接:https://www.haomeiwen.com/subject/uopifxtx.html