该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

随着逐浪CMS新版的一些效果逐渐放出,有不少的朋友想全屏的背景图片如何设计。

在不同的时代有不同的流行网站显示形式,当前很流行的一种网页形式就是满屏大图,本文将用最简单的方式实现该效果。用到了CSS 属性background-size ,无需javascript。

先看demo,打开后,调整浏览器窗口大小,观察背景图的变化。

如果在你的项目中也需要这样的效果,那么你就来对地方了。

基本语法:

.css{ background-image:url("wood.jpg");background-size:cover;background-repeat: no-repeat;background-attachment: fixed;}核心概念

使用background-size 属性,填充整个viewport

当css属性background-size 值为cover时,浏览器会自动按比例缩放背景图的宽和高,直到大于或等于viewport的宽和高

使用媒体查询为移动设备提供更小尺寸的背景图

为什么要给移动设备提供小尺寸背景图呢?在demo中,我们看到的背景图的实际尺寸为5498px * 3615px,使用这么大尺寸图片的目的是满足绝大多数宽屏显示器,并且不会显示模糊,而代价就是1.7MB的图片体积。

但是在移动设备上没有必要使用这么大的图片,同时大图还会导致加载变慢,尤其是在移动网络下。

需要说明的是:为移动设备提供小背景图对该技术方案来说是可选的。

实践

HTML

后面我们会给body标签指定背景图,这样背景图就可以填充整个浏览器viewport了。

其实,该方案对所有的块级容器都可以生效。如果你的块级容器的宽高是动态的,那么背景图将自动伸缩,充满整个容器。

CSS body标签的样式如下:

body {/* 加载背景图 */background-image: url(images/background-photo.jpg);/* 背景图垂直、水平均居中 */background-position: center center;/* 背景图不平铺 */background-repeat: no-repeat;/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */background-attachment: fixed;/* 让背景图基于容器大小伸缩 */background-size: cover;/* 设置背景颜色,背景图加载过程中会显示背景色 */background-color: #464646;}

上面最重要的一条就是:

background-size: cover;

这样浏览器就会按比例缩放背景图直至背景图宽高不小于容器的宽高(在上面的例子中,就是body标签)。

这里需要注意的一点就是:如果背景图小于body标签的尺寸(例如在高分辨率显示器上,或页面内容特别多时),浏览器会拉伸图片。我们都知道,当把一个图片拉伸时,图片会变模糊。

因此,在选择背景图时,要特别注意尺寸。为了照顾到大尺寸屏幕,demo里用的图片尺寸为5498px * 3615px 。

同时,为了让背景图始终相对于viewport居中,我们声明了:

background-position: center center;

上面的规则会把背景图缩放的原点定位到viewport的中心。

接下来我们需要解决的问题是:当内容的高度大于viewport的高度时,会出现滚动条。我们希望背景图始终相对于viewport固定,即使用户滚动时也是一样。

解决办法就是:

background-attachment: fixed;(可选)使用媒体查询应对小屏幕

为了应对小屏幕,我用photoshop将背景图按比例缩放到768px * 505px,然后通过smush.it 压缩图片体积。这样就将图片体积从1741KB降到114KB,节省了93%。

下面是媒体查询的写法:

@media only screen and (max-width: 767px) { body { background-image: url(images/background-photo-mobile-devices.jpg); }}

上面的媒体查询将max-width: 767px 设为断点,也就是说当浏览器viewport大于767px时,会使用大背景图,反之使用小背景图。

使用上面媒体查询不利的一面是,如果你把浏览器窗口从1200px缩小到640px(反之亦然),你会看到一个短暂的闪烁,因为小背景图或大背景图正在加载。

html 背景图片比例,CSS实现响应式全屏背景图+用CSS3实现全屏按比例缩放背景图片...相关推荐

  1. Gradify - 提取图片颜色,创建响应式的 CSS渐变

    被请求的HTTP对象之间的延迟会有一个时间段,这个期间网页看起来不完整.Gradify 可以分析出图像中4个最常见的颜色,创建一个梯度(或纯色)作为图片占位符.Gradify 可以在在任何图像发现最突 ...

  2. 判断两个图片的特征向量_响应式布局提高篇 图片正确的打开方式

    作者 | Brilliant Open Web团队 编辑 | Aaron 本文承接上一章的内容,接着介绍响应式布局设计,主要讲如何实现响应式图片.通过对图片适配问题的说明,加深对响应式图片的理解,并分 ...

  3. html桌面卡牌效果,html+css实现响应式卡片悬停效果

    话不多,看效果先: 卡片悬停,响应式卡片,简约效果. 实现: 1. 定义标签,.kapian为最底层盒子,然后两个子盒子一个放图片,一个放文本: The aurora borealis natural ...

  4. css响应式布局_Web前端新手怎么入门 如何用CSS做响应式布局

    Web前端新手怎么入门?如何用CSS做响应式布局?很多Web前端新手对响应式布局和自适应布局的概念以及制作方法分不清,简单来说响应式布局相当于流动网格布局,而自适应布局等于使用固定分割点来进行布局.接 ...

  5. window safari 怎么进入响应式_Web前端新手怎么入门 如何用CSS做响应式布局

    Web前端新手怎么入门?如何用CSS做响应式布局?很多Web前端新手对响应式布局和自适应布局的概念以及制作方法分不清,简单来说响应式布局相当于流动网格布局,而自适应布局等于使用固定分割点来进行布局.接 ...

  6. 如何用一简单的CSS制作响应式HTML网页

    如何用简单的CSS制作响应式HTML网页 #故事前端开发 在这篇文章中,我将教你如何使用CSS网格来创建一个超级酷的图像网格,它随着屏幕的宽度而改变列的数量. 最赞的一点就是:这个响应式效果只需要添加 ...

  7. CSS:响应式下的折叠菜单(条纹式)

    2019独角兽企业重金招聘Python工程师标准>>> 原文:CSS: Responsive Navigation Menu 译文:CSS:响应式导航菜单 译者:dwqs 写在之前, ...

  8. [css] 说说响应式设计(responsive design)和自适应设计(adaptive design)的区别?

    [css] 说说响应式设计(responsive design)和自适应设计(adaptive design)的区别? 响应式是通过视口分辨率识别不同客户端展现不同的布局和内容,一套代码.自适应是通过 ...

  9. 在html中写响应式布局的代码,CSS实现响应式布局的方法

    用CSS实现响应式布局 响应式布局感觉很高大上,很难,但实际上只用CSS也能实现响应式布局 要用的就是CSS中的没接查询,下面就介绍一下怎么运用: 使用@media 的三种方法 1.直接在CSS文件中 ...

最新文章

  1. 设计模式之美:Adapter(适配器)
  2. 聚类算法(3):DBSCAN密度聚类
  3. Linux 机器 CPU 毛刺问题排查
  4. 前端面试题整理【转】
  5. 实现线段切割法_漫画:如何实现抢红包算法?
  6. QT5获取运行程序的工作目录与程序所在的目录
  7. Java 的 安全性 体现在哪里?面试题
  8. 多线程、多平台环境中的跟踪 - 使用 log4j 和 UNIX 命令来挖掘跟踪数据
  9. PyTorch实战福利从入门到精通之七——卷积神经网络(LeNet)
  10. matlab怎么相加相同id的几行,matlab几个有用的技巧
  11. 常见数据分析误区有哪些
  12. 【贪心】【codevs】1098 均分纸牌
  13. 申音:被人为割裂的中国互联网
  14. java jdk 1.5下载_jdk 1.5 64位
  15. 【脑电数据十折交叉验证】实现对数据自动划分训练集与测试集得出平均分类准确率
  16. 康佳电视android,康佳电视怎么连接手机 康佳电视连接手机步骤【图文介绍】
  17. python 小海龟 教案_幼儿园小班健康活动《勇敢的小海龟》教案
  18. Ps简单的墨笔画制作
  19. UIView的bounds、frame、center/position、anchorPoint的关系
  20. 1977-1998全国历年高考状元现状

热门文章

  1. 【C++】(九)作用域、生命期、头文件和工程文件
  2. 仿钉钉考勤统计页面的日历组件,通过日历展示每日考勤打卡情况,支持在日历上打两种不同类型的点,大致适配各种分辨率效果图
  3. XDUOJ题解合集(待填坑)
  4. 国仁网络资讯:微信视频号怎么给自己账号精准定位;账号定位又分为哪些类?
  5. c#精华网站收集(转摘自梅川酷子的博客)
  6. 磁共振t1t2信号记忆顺口溜_【 磁共振t1与t2是啥意义】_特点_特征-大众养生网
  7. portknocking(端口试探)简介
  8. uniapp 跳转公众号获其他小程序
  9. Windows10 系统安装微软商店(ms-windows-store)
  10. elasticsearch基本使用