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. GEF-whole-upload教程中遇到的问题及解决方案

    最近在学习GEF开发,使用的是GEF-whole-upload这个教程.由于教程当时所使用的版本与本人使用的版本有一些差异,中间出现了不少问题,现在将解决方案分享给大家. 本人使用的Eclipse版本 ...

  2. ASP.NET MVC 之Model的呈现

    ASP.NET MVC 之Model的呈现(仅此一文系列三) 本文目的 我们来看一个小例子,在一个ASP.NET MVC项目中创建一个控制器Home,只有一个Index: public class H ...

  3. ORA-12520错误解决方法

    ORA-12520监听程序无法为请求的服务器类型找到可用的处理程序 以下不知道是不是解决方法的方法,因为我只重启下oracle服务就好了,并没进行任何修改 引用别人的文章: 1)数据库是专用服务器,但 ...

  4. URLDecoder: Incomplete trailing escape (%) pattern

    在使用URLDecoder对字符串进行解码的时候 报以下异常信息: Exception in thread "main" java.lang.IllegalArgumentExce ...

  5. IceMx.Mvc 我的js MVC 框架 开篇

    开篇 这篇文章是后补的,前端时间想写一些对于js开发的一些理解,就直接写了,后来发现很唐突,所以今天在这里补一个开篇. 我的js Mvc 框架 基于实用设计,过分设计等于没设计.本着简单的原则,它只实 ...

  6. videojs设置播放点

    videojs提供了currentTime的函数可以设置当前的播放时间,但是在实际运用当中出现了问题 var vid1 = videojs('vid1'); vid1.src('http://vide ...

  7. WCF双工学习笔记

    WCF双工的作用在于服务端执行某个方法的时候调用客户端的方法,有点类似委托的感觉,实际项目中在什么情况下使用还没想到. WCF双工支持两种bind,一是nettcp.另一个是wsDualHttp,这里 ...

  8. CSS样式基础知识

    CSS样式基础知识 CSS样式概述 CSS是Cascading Style Sheet 的缩写.译作“层叠样式表单”.是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言. 引用位 ...

  9. JAVA多线程经典问题 -- 生产者 消费者

    工作2年多来一直也没有计划写自己的技术博客,最近辞职在家翻看<thingking in JAVA>,偶尔看到了生产者与消费者的一个经典的多线程同步问题.本人在工作中很少使用到多线程以及高并 ...

  10. 语音频谱语音信号处理之(四)梅尔频率倒谱系数(MFCC)

    今天一直在查找语音频谱之类的问题,今天正好有机会和大家共享一下. 语音信号处置之(四)梅尔频率倒谱系数(MFCC) zouxy09@qq.com http://blog.csdn.net/zouxy0 ...