灵活的背景定位

background-position的扩展语法方案

在css3中,background-position属性已经得到了扩展,它允许我们指定背景图片距离任意角的偏移量,只要我们在偏移量前面指定关键字。举例来说,如果想让背景图片跟右边保持20px的偏移量,同时跟底边保持10px的偏移量,可以这样做:

1 .test {
2     width: 400px;
3     height: 300px;
4     background: url(111.png) no-repeat #58a;
5     background-position: right 20px bottom 10px;
6 
7 }

效果图:

background-origin方案

在网页开发生涯中,你可能多次写过类似background-position:top left;这样的代码。但是否疑惑过:这个top left 到底是哪个左上角?

每个元素身上都存在三个矩形框,如图1所示,border-box(边框的外延框),padding-box(内边距的外延框)和content-box(内容区的外延框)。那background-position这个属性指定的到底是哪个矩形框的左上角?

图1

  默认情况下,background-position是以padding-box为准的,这样边框才不会遮住背景图片。因此,top left默认指的是padding-box的左上角。不过,在CCS3中,我们得到了一个新属性background-origin,可以用它来改变这种行为。在默认情况下,它的值是padding-box。如果把它改成content-box,我们在background-position属性中使用的边角关键字将会以内容区的边缘作为基准,如图2所示:

图2

1 .test {
2     padding: 10px;
3     width: 400px;
4     height: 300px;
5     background: url(111.png) no-repeat #58a;
6     background-position: right 20px bottom 10px;
7     background-origin: content-box;
8 }

 cale()方案

如果我们仍然以左上角偏移的思路来考虑,其实希望它有一个100%-20px的水平偏移量,以及100%-10px的垂直偏移量。正好cale()函数允许我们执行此类运算,它可以完美的在background-postion属性中使用:

1 .test {
2     width: 400px;
3     height: 300px;
4     background: url(111.png) no-repeat #58a;
5     background-position: calc(100% - 20px) calc(100% - 10px);
6 
7 }
努力将自己的温暖带给身边的人!!!!!
原文地址:https://www.cnblogs.com/xiaoli52qd/p/6394407.html