【CSS中背景图片定位方法】

CSS中背景图片的定位,困扰我很久了。今天总算搞懂了,一定要记下来。…

大家好,又见面了,我是全栈君。

CSS中背景图片的定位,困扰我很久了。今天总算搞懂了,一定要记下来。


在CSS中,背景图片的定位方法有3种:

  1)关键字:background-position: top left;

  2)像素:background-position: 0px 0px;

  3)百分比:background-position: 0% 0%;

上面这三句语句,都将图片定位在背景的左上角,表面上看效果是一样的,实际上第三种定位机制与前两种完全不同。

前两种定位,都是将背景图片左上角的原点,放置在规定的位置。请看下面这张图,规定的位置是”20px 10px”和”60px 50px”,都是图片的原点在那个位置上,图中用X表示。

bg2008050701.png

但是第三种定位,也就是百分比定位,不是这样。它的放置规则是,图片本身(x%,y%)的那个点,与背景区域的(x%,y%)的那个点重合。比如,如果放置位置是”20% 10%”,实际结果如下图,可以看到这个点是在图片本身的”20% 10%”的位置上。

bg2008050702.gif

下面是一个有趣的例子。

背景图片是四个边长为100px的方块叠在一起:

bg2008050703.png

请问怎样才能将其横过来:

bg2008050704.png

答案是,在网页中先设置四个div区域:

<div class=”box1″>
</div>

<div class=”box2″”>
</div>

<div class=”box3″>
</div>

<div class=”box4″>
</div>

然后,这样编写CSS:

.box1, .box2, .box3, .box4 {
  float:left;
  width:100px;
  height:100px;
  position:relative;
  background: #F3F2E2 url(1234.png) no-repeat;
}

.box1 {
  background-position:0% 0%;
}

.box2 {
  background-position:0% 33.33333%;
}

.box3 {
  background-position:0% 66.66666%;
}

.box4 {
  background-position:0% 100%;
}

点击这里查看最后的效果。可以看到第二和第三个方块的设置,并不是一般想象中的”0% 25%”和”0% 75%”。

不过说实话,这个例子用像素设置法更容易一些。使用百分比设置的主要优势在于,当页面缩放的时候,背景图片也会跟着一起缩放,具体请参考下面”延伸阅读”中的第二篇文章。

[延伸阅读]

1. CSS: Using Percentages in Background-Image

2. Creating Liquid Faux Columns

(完)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120842.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java将字符串转换为json对象的方法_java jsonobject转string

    java将字符串转换为json对象的方法_java jsonobject转string在与服务器交互的时候,我们往往会使用json字符串,今天的例子是java对象转化为字符串,代码如下protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Persionp1=newPersion(…

    2022年9月21日
    2
  • Application received signal SIGABRT[通俗易懂]

    ApplicationreceivedsignalSIGABRT(null)(( 0CoreFoundation0x0000000182bbadc8<redacted>+148 1libobjc.A.dylib0x000000018221ff80ob…

    2022年4月8日
    107
  • lmdb数据库的读取与转换(二) —— 数据集操作

    lmdb数据库的读取与转换(二) —— 数据集操作数据集的lmdb将数据集转换成lmdb实际上就是一条条地将img和label的key-value形式写进lmdb中importcv2importlmdbimportnumpyasnpenv=lmdb.open(‘./data/train/CVPR2016’)txn=env.begin()forkey,valueintxn.cursor():#遍历print(key)#print(value)env.close()遍历lmdb中..

    2022年9月25日
    5
  • VC++ InvalidateRect

    VC++ InvalidateRect     该函数向指定的窗体添加一个矩形,然后窗口客户区域的这一部分将被重新绘制。  BOOLInvalidateRect(  HWNDhWnd,//handleofwindowwithchangedupdateregion  CONSTRECT*lpRect,//addressofrectanglecoordinates  BOOLbEras

    2025年6月8日
    2
  • 福利 | 这些网站有免费代理IP!「建议收藏」

    福利 | 这些网站有免费代理IP!「建议收藏」闲来无事,为大家整理了一些免费代理IP的网站,比较适用于对ip质量要求不高,时效要求不长的小伙伴,日常经常用的小伙伴赶紧收藏啦!http://www.66ip.cn/index.htmlhttps://seofangfa.com/proxy/https://ip.jiangxianli.com/http://www.xiladaili.com/gaoni/6/http://www.xsdaili.cn/dayProxy/ip/2459.htmlhttp://www.dailii.

    2022年6月16日
    70
  • nonzero函数_python 类方法

    nonzero函数_python 类方法类的nonzero方法用于将类转换为布尔值。通常在用类进行判断和将类转换成布尔值时调用。比如语句ifA:print'foo'中就会调用A.nonzero()来判断。下面这个程序应

    2022年8月6日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号