background-size做自适应的背景图

在我们做页面布局的时候往往会遇到这样的情况当我固定一个元素的尺寸,在像元素加入背景的时候发现背景图片的原始尺寸很大,当我把背景图写入时往往超过元素很大一部分我们只能看见一部分的背景图在元素内显示!

如图所示这是我的背景图

我有一个div要加入这张背景图结果发现显示的结果和设计需要的效果完全不一样。

div{

width: 400px;

height: 200px;

border: 1px solid red;

background: url(2.jpg) 0 0 no-repeat;

}

<div></div>

出现这样的情况原因?

首先我们需要找出问题所在从上面两张图就能看出原图的尺寸要大出元素设置的宽高;

找到问题所在如何进行处理那?

CSS3 提供给我background-size这个属性让我能更好的对背景图进行自适应处理。

background-size为我们提供了4个参数

length/percentage/cover/contain

length: 设置背景图像的高度和宽度, 第一个值设置宽度,第二个值设置高度, 如果只设置一个值,则第二个值会被设置为 "auto"。

percentage: 以父元素的百分比来设置背景图像的宽度和高度。值得设置与length相同。

cover:把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法显示在背景定位区域中。

contain: 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域。

对上述4个参数做了如下验证:

<style>
div{width: 400px;height: 200px;border: 1px solid red;background: url(2.jpg) 0 0 no-repeat;}
.length{background-size: 400px 200px;}
.length2{background-size: 400px ;}
.percentage{background-size: 100% 100%;}
.percentage2{background-size: 100% ;}
.cover{background-size: cover;}
.cover2{width: 1000px;height:200px;border: 1px solid red;background: url(2.jpg) 0 0 no-repeat;background-size: cover;}
.contain{background-size: contain;}
.contain2{height: 80px;background-size: contain;}
</style>

<h3>像素级的缩放设置</h3>
<div class="length"></div>
<h3>像素级的缩放只设置一个参数时候第二个参数为auto</h3>
<div class="length2"></div>
<h3>百分比的缩放设置</h3>
<div class="percentage"></div>
<h3>百分比的缩放当只设置一个参数时第二个参数为auto</h3>
<div class="percentage2"></div>
<h3>cover</h3>
<div class="cover"></div>
<p>突然发现背景图怎么没显示完全。<br>
cover是按比例去设置背景图片的,它会把图片设置到最大程度进行<br>
适配如本图它的高度已经到了极限所以它就不会再去做宽度的适应,<br>就像上面关于cover介绍的后半部分:背景图像的某些部分也许无法显示在背景定位区域中。
</p>
<h3>为了更好的理解我们做一个宽度达到极限的例子</h3>
<div class="cover2"></div>
<p>按比例适应时发现宽度可以放大到最大程度,高度因为比例的变化会有一部分被隐藏掉了</p>
<h3>contain</h3>
<div class="contain"></div>
<p>最大程度去适应背景,同样做一个相反的例子进行比较如下图</p>
<div class="contain2"></div>

最终实现的结果

像素级的缩放设置

像素级的缩放只设置一个参数时候第二个参数为auto

百分比的缩放设置

百分比的缩放当只设置一个参数时第二个参数为auto

Cover

突然发现背景图怎么没显示完全。
cover是按比例去设置背景图片的,它会把图片设置到最大程度进行
适配如本图它的高度已经到了极限,所以它就不会再去做宽度的适应,
就像上面关于cover介绍的后半部分:背景图像的某些部分也许无法显示在背景定位区域中。

为了更好的理解我们做一个宽度达到极限的例子

按比例适应时发现宽度可以放大到最大程度,高度因为比例的变化会有一部分被隐藏掉了

Contain

最大程度去适应背景,同样做一个相反的例子进行比较如下图

background-size做自适应的背景图的更多相关文章

  1. Unity2D 背景图铺满与Camera.Size的计算公式

    在unity制作2D游戏的教程,背景图sprite铺满显示时Camaer的Size调到多少合适,作个笔记. 资源参数 background.png 2048x640,Sprite的像素单位:100 调 ...

  2. css为网页顶部和底部都加入背景图

    网页背景图是我们常用的功能,一般来说.给网页加一个背景图,只要在网页的body标签中加入css属性就行. 代码如下:<body style="background-image:url( ...

  3. Lodop打印控件不打印css背景图怎么办

    background:url()这是css背景图,http协议会按异步方式下载背景图,所以很容易等不到下载完毕就开始打印了,故lodop不打印css背景图.Lodop不打印css背景图,但是有其他方法 ...

  4. css背景图充满屏幕

    代码: body { /* 加载背景图 */ background: url(resource/inv_bg.png); /* 背景图不平铺 */background-repeat: no-repea ...

  5. IOS从背景图中取色

    ​1. [代码][其他]代码     void *bitmapData; //内存空间的指针,该内存空间的大小等于图像使用RGB通道所占用的字节数. static CGContextRef Creat ...

  6. 全屏背景图的实现及background的相关属性

    今天需要做一个占满设备宽度的轮播图,这里作为demo仅展示一张图,下面分别是要操作的图片(这里做了缩放处理,实际的图比较大),以及要实现的效果图,很明显两者是不成比例的:      (图一)     ...

  7. 20190328-CSS样式一:字体样式font-、文本样式text-、背景图样式background-

    目录 CSS参考手册:http://css.doyoe.com/ 1.字体简写:font:font-style || font-variant || font-weight || font-size ...

  8. css 背景(background)属性、背景图定位

    background属性: Background属性是css中应用比较多,且比较重要的一个属性,它是负责给盒子设置背景图上和背景颜色的,background是一个复合属性,它可以分解成如下几个设置项: ...

  9. background 设置文本框背景图

    background 属性的作用是给元素设置背景,它是一个复合属性,常用的子属性如下: background-color 指定元素的背景颜色. background-image 指定元素的背景图像. ...

随机推荐

  1. centos安装svn

    原文链接:http://blog.csdn.net/liuyuan_jq/article/details/2110814 1.SVN简介由于前些年在版本的管理上采用的都是CVS系统,总体上而言还是很优 ...

  2. 简单好用的Adapter---ArrayAdapter

    简单好用的Adapter---ArrayAdapter 拖延症最可怕的地方就是:就算自己这边没有拖延,但对方也会拖延,进而导致自己这边也开始拖延起来!现在这个项目我这边已经是完工了,但是对方迟迟没有搞 ...

  3. Nunit NMock Ncover单元测试

    Nunit中如何进行事务性单元测试   单元测试要求:单元测试方法并不真正去变更数据库,也就是说单元测试不依赖于数据库中的数据.那我们如何解决执行单元测试方法后,不变更数据库中数据呢? 一般的解决方案 ...

  4. 快速构建C++项目工具Scons,结合Editplus搭建开发环境

    Windows下C++开发工具用的最多的非VS莫属了(当然也有很多比如eclipse,Qt等等),便捷的项目构建向导,再加上强大的VC助手,使得开发和调试得心应手.并不是说vc就没有缺点,相反缺点也不 ...

  5. Linux CPU affinity

    在Linux中,我们知道可以通过nice.renice命令改变进程的执行优先级,优先级高的进程优先执行,从而一定程度上保证重要任务的运行. 除了nice.renice外,可以通过CPU  affini ...

  6. anadonca环境配置和模块安装

    1.最方便的python环境配置: 下载anaconda即可,自带spyder,集成科学计算的库,自带pip,不用折腾. 想用sublime编写python并运行的话,需要自己配置编译环境,并下载插件 ...

  7. react+redux渲染性能优化原理

    大家都知道,react的一个痛点就是非父子关系的组件之间的通信,其官方文档对此也并不避讳: For communication between two components that don't ha ...

  8. CSS两端对齐

    前面的话   两端对齐在导航条Tab的制作中非常常用.本文将详细介绍CSS两端对齐的3种实现方式 flex   弹性盒模型flex作为强大的弹性布局方式,可以hold住大部分的布局效果,当然也包括两端 ...

  9. .NET基础——方法

    这一篇,我们来学习C#中的方法——函数 1.  方法的功能  方法的功能:用来复用代码的,当我们在一个程序中反复的写了同样的代码,我们就可以把需要重复写的代码定义在一个方法中,用到的时候只需要调用就可 ...

  10. ASP.NET上传大文件出现网页无法显示的问题

    使用FileUpload上传的时候,默认允许大小是4M,而当小于4M的时候正常运行:当超过4M将显示网页无法显示.解决方法如下: 在web.config中的<system.web>< ...