【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 几种常见的内存溢出与解决办法

    几种常见的内存溢出与解决办法解決辦法:

    2022年7月1日
    22
  • CompletableFuture使用详解

    CompletableFuture使用详解一、简介1.1概述在上一篇文章《CompletionService使用与源码分析》中,已经介绍过了Future的局限性,它没法直接对多个任务进行链式、组合等处理,需要借助并发工具类才能完成,实现逻辑比较复杂。而CompletableFuture是对Future的扩展和增强。CompletableFuture实现了Future接口,并在此基础上进行了丰富的扩展,完美弥补了Future的局限性,同时CompletableFuture实现了对任务编排的能力。借助这项能力,可以轻松地组织不同任务的运行顺序、

    2022年6月28日
    37
  • 大数据开发工作辛苦吗?「建议收藏」

    大数据开发工作辛苦吗?「建议收藏」大数据开发工作辛苦吗?现在的社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。大数据并不在“大”,而在于“有用”。价值含量、挖掘成本比数量更为重要。因此对大数据的开发和分析对一个企业来说显得尤为重要。大数据开发人才也变得炙手可热。虽然大数据相关人才很受欢迎,但是有些人担心做了大数据开发之后,加班太多,会比较辛…

    2022年5月4日
    63
  • 线程安全Map比较

    线程安全Map比较线程安全 Map 比较 ConcurrentHa 以下简称 CHM 是 JUC 包中的一个类 Spring 的源码中有很多使用 CHM 的地方 之前已经翻译过一篇关于 ConcurrentHa 的博客 如何在 java 中使用 ConcurrentHa 里面介绍了 CHM 在 Java 中的实现 CHM 的一些重要特性和什么情况下应该使用 CHM 需要注意的是 上面

    2025年7月9日
    7
  • linux14:(0.7k)scp命令,fstab文件

    linux14:(0.7k)scp命令,fstab文件scp命令scp 可以在 2个 linux 主机间复制传输文件;命令基本格式:scp 选项 源路径 目标路径选项-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .-C 使能压缩选项 .-P 选择端口 . 注意 -p 已经被 rcp 使用 .-4 强行使用 IPV4 地址 .-6 强行使用 IPV6 地址 .copy 本地的档案到远程的机器上scp /etc/lilo.conf k@net67.ee.oit.edu

    2022年8月11日
    6
  • jb激活码_在线激活

    (jb激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1S…

    2022年3月27日
    45

发表回复

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

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