background-position百分比原理详解


Posted in HTML / CSS onMay 08, 2021

今天帮别人调代码时,看到一个样式:

background-position: 50% 0;
background-size: 100% auto;

对background-size:100% auto,意思是背景图片宽度为元素宽度*100%,高度等比缩放。

对background-position很自然的以为百分比是根据父元素宽度计算的,但background-position真的不是,它有一套自己的原理。下面详细介绍。

一、等价写法

在看各类教程时有以下等价写法:

  • top left, left top 等价于 0% 0%.
  • top, top center, center top 等价于 50% 0%.
  • right top, top right 等价于 100% 0%.
  • left, left center, center left 等价于 0% 50%.
  • center, center center 等价于 50% 50%.
  • right, right center, center right 等价于 100% 50%.
  • bottom left, left bottom 等价于 0% 100%.
  • bottom, bottom center, center bottom 等价于 50% 100%.
  • bottom right, right bottom 等价于 100% 100%.

那么为什么left,top就等价于0% 0%,right bottom等价于100% 100%呢?

二、background-position百分比计算公式

background-postion:x y;
x:{容器(container)的宽度—背景图片的宽度}*x百分比,超出的部分隐藏。
y:{容器(container)的高度—背景图片的高度}*y百分比,超出的部分隐藏。

有了这个公式,就很容易理解百分百写法了,推算一下也就很容易理解上面各类等价写法了。

三、举例

1、background-position:center center等价于background-position:50% 50%等价于background-position:?px ?px

例子中用到背景图如下【尺寸:200px*200px】:

background-position百分比原理详解

背景图在容器中居中。

<style type="text/css">
.wrap{
    width: 300px;
    height: 300px;
    border:1px solid green;
    background-image: url(img/image.png);
    background-repeat: no-repeat;
/*    background-position: 50% 50%;*/
    background-position: center center;
}
</style>
<div class="wrap">
</div>

效果都是让背景图片居中

background-position百分比原理详解

如上通过设置百分比和关键字能实现背景图居中,如果要实现通过具体值来设置图片居中该设置多少?

根据上面公式:

x=(容器的宽度-背景图宽度)*x百分比=(300px-200px)*50%=50px;

y=(容器的高度-背景图高度)*y百分比=(300px-200px)*50%=50px;

即设置background-postion:50px 50px;

测试一下:

<style type="text/css">
.wrap{
    width: 300px;
    height: 300px;
    border:1px solid green;
    background-image: url(img/image.png);
    background-repeat: no-repeat;
/*    background-position: 50% 50%;*/
/*    background-position: center center;*/
    background-position: 50px 50px;
}
</style>
<div class="wrap">
</div>

效果同样居中。

到此这篇关于background-position百分比原理详解的文章就介绍到这了,更多相关background-position 百分比内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
纯CSS3实现8组超炫酷鼠标滑过图片动画
Mar 16 HTML / CSS
利用CSS3的border-radius绘制太极及爱心图案示例
May 17 HTML / CSS
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
Jun 03 HTML / CSS
让IE支持HTML5的方法
Dec 11 HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
Jun 09 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
Apr 24 HTML / CSS
多视角3D逼真HTML5水波动画
Mar 03 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
Dec 29 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
Mar 13 HTML / CSS
HTML5 表单验证失败的提示语问题
Jul 13 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
Sep 17 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
Aug 18 HTML / CSS
不要在HTML中滥用div
css display table 自适应高度、宽度问题的解决
CSS 新特性 contain控制页面的重绘与重排问题
CSS3新特性详解(五):多列columns column-count和flex布局
css position fixed 左右双定位的实现代码
Apr 29 #HTML / CSS
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
CSS3实现的侧滑菜单
You might like
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php cli换行示例
2014/04/22 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
超清晰的document对象详解
2007/02/27 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
再谈JavaScript线程
2015/07/10 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
从Python的源码来解析Python下的freeblock
2015/05/11 Python
python函数装饰器用法实例详解
2015/06/04 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
百货商场楼层班组长竞聘书
2014/03/31 职场文书
给客户的检讨书
2014/12/21 职场文书
小学中等生评语
2014/12/29 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
导游词之湖北武当山
2019/09/23 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers