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. C#单例模式的三种写法 以及 继承面试题

    1.没有考虑线程安全 public class Singleton { private static Singleton _instance = null; private Singleton(){} ...

  2. IOS学习之路十七(通过delegate进行页面传值)

    加入有A B两个页面,要实现从A跳到B的时候把值传过去,现在用delegate协议来实现 在A中定义一个协议,定义一个实现该协议的属性变量 在B中定义一个值(要获得的值类型)和set方法. 要传值B ...

  3. C#制作高仿360安全卫士窗体3

    C#制作高仿360安全卫士窗体(三)   距上篇C#制作高仿360安全卫士窗体(二)也将近一个多月了,这个月事情还是像往常一样的多.不多我也乐在其中,毕竟我做的是我喜欢做的东西.今天特地抽空把怎么制作 ...

  4. iOS 动画类型 笔记

    #pragma mark Core Animation - (IBAction)buttonPressed1:(id)sender { UIButton *button = (UIButton *)s ...

  5. mybatis配置Log4j带不出日志

    使用Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)日志. 无法输出日志的时候,无论怎么配置log4j,不管是properties的还是xml的,都不起作用. log4j.prope ...

  6. MySQL中函数、游标、事件、视图

    MySQL中函数.游标.事件.视图基本应用举例(代码) MySQL中function用户自定义函数c,fun,fun是面向过程的实现方式只能传入参数,或不传入参数,不能传出参数,必有返回值函数中是不能 ...

  7. dtree实现上下级关系的显示

    在实际开发中我们常常要涉及到到在页面上显示上下级关系这样的需求 ,我的实现方法: 环境:S2SH+mysql 数据库结构如下图: 其中mgr字段是指经理,也就是自己的上一级 映射信息: Action和 ...

  8. Android开发(22)--seekBar采用handler消息处理操作

    本案例简单实现进度条可走,可拖拽的功能,下面请看源码: 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/ ...

  9. 【实用技巧】去除BootStrap所有圆角效果

    满屏的圆角有没有审"美"疲劳啊?教你一键去除所有圆角效果: * { -webkit-border-radius: 0 !important; -moz-border-radius: ...

  10. 解决hexo神烦的DTraceProviderBindings MODULE_NOT_FOUND

    原文:http://kikoroc.com/2016/05/04/resolve-hexo-DTraceProviderBindings-MODULE-NOT-FOUND.html 今晚折腾hexo的 ...