web响应式图片设计实现

.header { cursor: pointer }
p { margin: 3px 6px }
th { background: lightblue; width: 20% }
table { text-align: center; margin-top: 20px; margin-left: 10px; margin-bottom: 20px }
a { cursor: pointer; text-decoration: none; color: gray }
a:hover { text-decoration: none; color: coral }

随着移动开发热潮的兴起,已经有越来越多的公司将移动端的开发列为核心,其中不论是webapp还是手机页面都是如此,在开发的过程中就涉及到了一个web响应式图片的问题,这里我们就来探讨一下响应式图片的实现

一、简单的响应式图片实现

最简单的图片响应式的实现就是通过限定图片的长宽的像素值,并把图片的宽度设置为100%,然后把高度设置为auto.

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>blog案例</title>
    <style type="text/css">
        img{
            width:100%;
            height:auto;
        }
    </style>
</head>
<body>
    <img src="img1.jpg">
</body>
</html>

效果如下:

从图中大致上可以看出图片随着窗口的大小发生了响应,但是录制工具渲染的效果不太理想,这个大家就将就着看吧

但是这一种方法有一个局限,就是完全随着屏幕的变大变小来拉伸一张图片,这样屏幕一旦变大了的话容易出现图片失真的现象,这个时候我们要达到的要求是最大也就是能够显示到图片原来的大小,视口变小的时候,图片也跟着变下。

这个时候代码可以这样改进:

img{
            max-width:100%;
            height:auto;
        }

这样做的好处是解决了图片因为响应屏幕宽度的变化而导致的失真的现象,在这里要说明一下就是图片放大到极致就是原图片的宽度,如果是屏幕比图片小的话,那么图片就会响应屏幕的大小发生变化,同时保持宽度被拉伸到100%

除了可以这样来设置响应式图片,我们还可以通过将图片设置为背景图片的方法来达到响应式

实现思路是将图片当做背景来使用,然后在背景图片中添加一个background-size: contain;属性

例如:将上面的代码我们可以这样来改写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>blog案例</title>
    <style type="text/css">
        div {
            width: 100%;
            height: 400px;
            background-image: url(‘img1.jpg‘);
            background-repeat: no-repeat;
            background-size: contain;
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

细心的读者是否想过这样做的根本还是没有解决图片的响应的问题,这样只不过说得上是让图片适应屏幕的大小而已,那么终究要才能实现图片的响应呢?这里我们的设计思路跟响应式布局有点相似,都是通过设置CSS的媒体查询来让浏览器在不同的情况下加载不同的图片,我们可以把上面的例子这样改写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>blog案例</title>
    <style type="text/css">
       body{
        background-repeat:no-repeat;
        background-image:url(‘img1.jpg‘);
       }
       @media only screen and (min-width: 400px) {
            body {
                background-image: url(‘img2.jpg‘);
            }
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

运行的效果如下:

当然除了上面的这种方法,在HTML5中还提供了picture元素,用于响应式图片的实现,picture元素的用法与video与audio的用法有点相似,都是通过在标签下面添加source标签用来显示你所要显示的图片,具体的使用案例如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>blog案例</title>
    <style type="text/css">
        img {display: block; margin: 0 auto;}
    </style>
</head>
<body>
    <picture>
      <source media="(min-width: 650px)" srcset="img1.jpg">
      <source media="(min-width: 465px)" srcset="img2.jpg">
      <img src="img3.jpg" alt="a cute kitten">
    </picture>
</body>
</html>

分析:source主要是用来显示要存放的图片,然后img默认是不显示的,但是如果是浏览器不支持picture的时候,img就会被显示出来,用来解决标签在不同浏览器之间的兼容性。source中的media是用来指定响应式图片的响应范围,srcset就是用来指定图片源。

这个就是原生的图片响应式实现,运行一下,效果跟上面的例子相同

六、小结

响应式图片我们可以当做一个知识点来进行储备就可以了,实现的原理也是五花八门,但是推荐大家使用picture来实现,一个是实现比较规范,另外一个是能够达到按需加载的要求,如果觉得本文有所获或者对你有帮助的话,请不吝点赞

时间: 2024-08-04 18:45:44

web响应式图片设计实现的相关文章

Web响应式设计中应避免的八大误区

开发一个带有响应式交互设计的网站变得非常有意义,因为其可以在不同的设备运行,因此,你可以节约针对不同平台开发不同网站的成本.但是,要做最大限度相应的网页设计,有些误区你应当避免. 不要优先为桌面版设计 开发者通常会犯的一个常见错误是,但他们设计网站时优先考虑桌面版,因为在这些人严重,将基于桌面版的网站转变为针对其他设备的响应式web设 计 是件很轻松愉快的事情.但是,这个发生在计划规划阶段的错误本身会变成一个非常巨大的问题.甚至会造成返工,当然,大量的错误也会蔓延出来. 然而,基于移动设备开发网

响应式网页设计中的图片处理

响应式网页设计,是一种正在流行的网页开发思想,它是利用灵活可变的栅格系统,令网页的显示模式可以根据访问设备的屏幕尺寸规格而进行自适应.预计2015年的时候,移动端的用户数量将会从目前的8亿,增长到19亿,而这也意味着目前我们为桌面浏览器而设计的网页,将会在他们的手机和平板上呈现出非常糟糕的使用体验. 但是随着实际应用状况的改变,响应式网页设计还是会出现一系列复杂的并发症.本文余下的部分,就是详细阐述如何在响应式网页中安置和处理多媒体元素,诸如图片和视频,最终的目的是帮你做出一个靠谱的网站,能让这

响应式网页设计:web产品RWD概念

RWD(Responsive Web Design) 可称为自适应网页设计.响应式网页设计.响应式网页设计等等,是一种可以让网页的内容可以随着不同的装置的宽度来调整画面呈现的技术,让使用者可以不需要透过缩放的方式来浏览网页,大大的提升画面的可浏览性及使用界面的亲和度:然而这对于行动商务越来越受到重视的现今来说,随之也越来越倍受重视. 近几年,随着行动装置(智慧型手机.平板)的普及,以及行动上网服务的使用率越来越高,传统网页的标准已经无法符合这些装置的需求来呈现了,尤其是以flash制作的动画,受

web响应式设计技能大盘点

响应式网页设计已经变成新的web标准,许多公司已经接受了这个挑战,并且已经建立起了专门的网页设计方案(比如只针对移动端的开发)或者已经开始试图解决跨平台的响应式网页设计方案. 1.计划 与往常一样,计划总是要放在第一优先级的.一旦你在纸上开始解决你的设计难题,你就已经准备好建立你的站点了. 2.充分利用好原型软件 推荐使用Adobe Edge Reflow,它能让你使用媒体查询,在程序内设置断点并设计适配桌面电脑.平板电脑和手机的布局.然后,你可以将CSS复制到另一个像Adobe Dreamwe

响应式网页设计:互联网web产品RWD概念

RWD(Responsive Web Design)可称为自适应网页设计.响应式网页设计.响应式网页设计等等,是一种可以让网页的内容可以随着不同的装置的宽度来调整画面呈现的技术,让使用者可以不需要透过缩放的方式来浏览网页,大大的提升画面的可浏览性及使用界面的亲和度:然而这对于行动商务越来越受到重视的现今来说,随之也越来越倍受重视. 近几年,随着行动装置(智慧型手机.平板)的普及,以及行动上网服务的使用率越来越高,传统网页的标准已经无法符合这些装置的需求来呈现了,尤其是以flash制作的动画,受限

【Bootstrap】3.优化站点资源、完成响应式图片、让传送带支持手势

A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap]2.作品展示站点 中的资源.特别的,来看一看我们能控制的.影响页面速度的重要因素 —— 文件大小,包括图片.CSS和 JavaScript 文件.只要简单几步,我们就可以给这些文件“瘦身”,缩短加载时间. A.1 优化图片 这些图片都通过 Photoshop 的 “保存为 Web 格式” 进行了一

响应式网页设计简单入门(强烈推薦!!!!)

响应式网页设计简单入门 Overview: 构造基本的HTML页面 动态加载样式表 Viewport 字体缩放 侧边栏 导航菜单 图片自适应 其他 总结 说到响应式网页设计(Responsive web design),最近在谷歌加上碰到个奇葩贴子,通过一个原始到无法再简单的网页Motherfucking Website及满屏幕的fuck道出了网页设计的真谛,这孩子不是个激进分子就是个报复社会型的货没错,虽然整篇文章就像是泼妇骂街,但我特么是笑着读完的.. 统计了下全文共用Fuck (包括fuc

HTML5+CSS3的响应式网页设计:自动适应屏幕宽度

这几天都在修改博客上面的样式.本来用的是d83.0的模板.自己又修改了许多地方,其中自己修改的一些地方在手机里面显示的效果不是很理想,于是想改成自适应的效果.对CSS3不是特别的熟练,只能去网上找找案例看了.发现一个不错的文章.写的比较入门,也很仔细.所以拿过来分享给大家.如果还想看图片的响应式案例可以看我找的另外的一篇<分享一个非常有用的HTML5+CSS3响应式图片案例>. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈

响应式网页设计

随着越来越多类型的移动设备的普及,网页设计也随之变化,响应式网页设计应用而生,目前已有有很多比较流行的框架解决此问题,无论切换任何设备,都会自动根据设备的大小进行动态变化,无需为每个量身定做不同类别的网页,大大节省了开发工作量,响应式网页设计已经成为一种趋势. 一.流行的前端(from_end)设计框架很多,大概有以下几种: 1. Bootstrap Boostrap绝对是目前最流行用得最广泛的一款框架.它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面.它