热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解剖css3的background-size属性

在我们做项目过程中,可能会遇到一个问题,就是给个背景图的尺寸大小是一样的,可是屏幕大小却有很多种。比如app前面的几个引导页,你收到的是固定大小尺寸的照片,怎么让这个屏幕可以跟背景图片相适应呢?

在我们做项目过程中,可能会遇到一个问题,就是给个背景图的尺寸大小是一样的,可是屏幕大小却有很多种。

比如app前面的几个引导页,你收到的是固定大小尺寸的照片,怎么让这个屏幕可以跟背景图片相适应呢?

有一些解决方案是,根据不同的屏幕大小做不同的照片尺寸,可是这样添加了设计师的工作量,又要加载很多图片,性能变差了不说,还加多了工作量。

有人说那把图片压缩啊,或者用css sprite 拼合成一张图片然后根据background-position设置背景的位置。

可是这些对我来说:“hao gui ma fan”哦

这时我就想到之前用过css3的一个新属性,就是可以使图片布满整个屏幕,就是“background-size”:"cover";

然后我就用了,可是我的图片,在不同屏幕显示不同的尺寸,我要显示的内容跑到屏幕外了,之后我就查了background-size的具体用法

在google的时候,看到了一篇background-size说的挺好的一篇文章,http://www.w3cplus.com/content/css3-background-size

  background-size: auto || <length> || <percentage> || cover || contain

然后出现了下面的取值说明:

1、auto:此值为默认值,保持背景图片的原始高度和宽度;

2、此值设置具体的值,可以改变背景图片的大小;

3、此值为百分值,可以是0%〜100%之间任何值,但此值只能应用在块元素上,所设置百分值将使用背景图片大小根据所在元素的宽度的百分比来计算。

4、cover:此值是将图片放大,以适合铺满整个容器,这个主要运用在,当图片小于容器时,又无法使用background-repeat来实现时,我们就可以采用cover;将背景图片放大到适合容器的大小,但这种方法会使用背景图片失真;

5、contain:此值刚好与cover相反,其主要是将背景图片缩小,以适合铺满整个容器,这个主要运用在,当背景图片大于元素容器时,而又需要将背景图片全部显示出来,此时我们就可以使用contain将图片缩小到适合容器大小为止,这种方法同样会使用图片失真。

当background-size取值为时可以设置两个值,也可以设置一个值,当只取一个值时,第二个值相当于auto,但这里的auto并不会使背景图片的高度保持自己原始高度,而会与第一个值相同。

看完之后,我就把每个值都试了一遍,可是不对哦,每个属性都不是我要的。

后来认真解析一遍,发现其实每个属性都有自己的结果,具体解释看上面。这时不如直接获取屏幕的宽度和高度,(因为我写的页面是用js写的)

这时果断用了var wid_height=$(window).height();来获取屏幕的高,

然后呢,在传入页面时,在写app页面时,就已经将width设置为“:@app width 1”,就是屏幕的宽度,至于为什么这么写,这是框架封装出来的, 就不要想那么多了。

然后在设置的时候就以“background-size”:"100%"+win_height;来传入。(这里用的方法就是“background-size”:" ")

测试一下,大功告成。很开心,用最简单的方法将问题解决了,界面又好看。

总结一下,首先就是有一点基础,所以知道用什么,之后呢,google是一个好帮手,但是google来的东西毕竟是其他人的,你要善于理解其本质并加以运用,最后还要结合你当前所处的环境,才能最终解决你所遇到的问题。

好了,不啰嗦那么多,旁边的程序猿又说我在装逼了,其实我只是想把自己用最好的、简单的方法将复杂的问题解决,这个思想传递下去。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 一篇文章搞定css3 3d效果
    css33d学习心得卡片反转魔方banner图首先我们要学习好css33d一定要有一定的立体感通过这个图片应该清楚的了解到了x轴y轴z轴是什么概念了。首先先给大家看一个小 ... [详细]
  • vue使用
    关键词: ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了在Python中使用zlib模块进行字符串的压缩与解压缩的方法,并探讨了其在内存优化方面的应用。通过压缩存储URL等长字符串,可以大大降低内存消耗,虽然处理时间会增加,但是整体效果显著。同时,给出了参考链接,供进一步学习和应用。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • Isthereanywaytostylethislistusingpurecsssoallelementsabovemycursorwillbehighlight ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
author-avatar
专业STB
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有