HTML5中的picture元素响应式处理图片方法

所谓的响应式设计,是指在不同的屏幕分辨率,不同的像素密度比,不同宽度的终端设备中,网页布局可以自适应的调整。响应式设计的本意是使原本pc上的网站兼容移动终端,大部分响应式网页是通过媒体查询,加载不同样式的css文件实现的。这样的弹性化布局使网站在不同的设备终端布局都比较合理。本文主要介绍了详解html5中的picture元素响应式处理图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

虽然响应式设计的好处多多,但是也有诸多缺陷。由于PC端和移动终端访问的是同一个网站,PC端可以不计较流量限制,但是移动端不可能不计较。

HTML5中的picture元素响应式处理图片方法

为适配不同终端机型的屏幕宽度和像素密度,我们一般会使用如下方法设置图片的CSS样式:

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

登录后复制

将图片的最大宽度设置为100%,以确保图像不会超出其父级元素的宽度,如果父级元素的宽度发生改变,图片的宽度也随之改变,height:auto 可以确保图片的宽度发生改变时,图片的高度会依据自身的宽高比例进行缩放。

立即学习“前端免费学习笔记(深入)”;

这样当我们在移动设备上访问响应式网页里的图片时,只是把图片的分辨率做了缩放,下载的还是PC端的那张大图,这样不仅浪费流量,而且浪费带宽,而且会拖慢网页的打开速度,严重影响用户的使用体验。

新的解决方案:

是HTML5的一个新元素;

如果元素与当前的,

可以根据不同的条件加载不同的图像,这些条件可以是视窗当前的高度(viewport),宽度(width),方向(orientation),像素密度(dpr)等;

举几个栗子

如下栗子中针对不同屏幕宽度加载不同的图片;当页面宽度 在320px到640px之间时加载minpic.png;当页面宽度大于640px时加载middle.png

            this is a picture

登录后复制

2.如下栗子中添加了屏幕的方向作为条件;当屏幕方向为横屏方向时加载_landscape.png结尾的图片;当屏幕方向为竖屏方向时加载 _portrait.png结尾的图片;

                    this is a picture

登录后复制

3.如下栗子中添加了屏幕像素密度作为条件;当像素密度为2x时加载_retina.png 2x 的图片,当像素密度为1x时加载无retina后缀的图片;

            this is a picture

登录后复制

4.如下栗子中添加图片文件格式作为条件,当支持webp格式图片时加载webp格式图片,当不支持时加载png格式图片;

        this is a picture

登录后复制

5.如下例子中添加宽度描述;页面会根据当前尺寸选择加载不大于当前宽度的最大的图片;

this is a picture

登录后复制

6.如下例子中添加sizes属性;当窗口宽度大于等于800px时加载对应版本的图片;

this is a picture

登录后复制

兼容性:

目前只有Chrome , Firefox , Opera 对其兼容性较好,具体兼容性如图:

HTML5中的picture元素响应式处理图片方法

优点:

加载适当大小的图像文件,使可用带宽得到充分利用;

加载不同剪裁并具有不同横纵比的图像,以适应不同宽度的布局变化;

加载更高的像素密度,显示更高分辨率的图像;

步骤:

创建标签;

在这些标签内创建一个你想用来执行任何一个特性的标签;

添加一个media属性,用来包含你想要的特性,如宽度(max-width,min-width),方向(orientation)等;

添加一个srcset属性,属性值为相应的图像文件名称,进行加载。如果你想提供不同的像素密度,例如Retina显示屏,可以添加额外的文件名到srcset属性中;

添加一个回退的HTML5中的picture元素响应式处理图片方法标签;

的工作原理

语法

由上面的示例代码可知,在没有引入js和第三方库,CSS中没有包含media queries的情况下,元素可以实现只用HTML来声明响应式图片;

元素

标签它本身没有属性。神奇的地方是被用来当做的容器。
元素,是用来加载多媒体的比如视频和音频,已经被更新用到图片的加载并且一些新的属性已经被添加:

srcset (必需)

接受单一的图片文件路径(如:srcset=”img/minpic.png”).

或者是逗号分隔的用像素密度描述的图片路径(如:srcset=”img/minpic.png,img/minpic_retina.png 2x”),1x 的描述是默认不使用的。

media (可选)

接受任何验证的media query,你可以看到在CSS @media选择器(如:media=”(min-width: 320px)”).

在之前的语法的例子里已经用到了。

sizes(可选)

接收单一的宽度描述(如:sizes=”100vw”)或者单一的media query宽度描述(如:sizes=”(min-width: 320px) 100vw”).

或者逗号分隔的media query对宽度的描述(如:sizes=”(min-width: 320px) 100vw, (min-width: 640px) 50vw, calc(33vw – 100px)”) 最后的一个被当做默认的。

type(可选)

接受支持的MIME类型(如: type=”image/webp” or type=”image/vnd.ms-photo”)

浏览器会根据这些提示和属性来加载确切的图片资源。根据标签的列表顺序。浏览器会使用第一个合适的元素并忽略掉后面的标签。

添加最后的HTML5中的picture元素响应式处理图片方法元素

HTML5中的picture元素响应式处理图片方法元素在内部用来当浏览器不支持时或者没有源标签匹配时的显示。在内使用HTML5中的picture元素响应式处理图片方法标签是必须得,如果你忘记了,将不会有图片显示出来。

HTML5中的picture元素响应式处理图片方法来声明默认的图片显示。将HTML5中的picture元素响应式处理图片方法标签放到内的最后,浏览器在找到HTML5中的picture元素响应式处理图片方法标签之前会忽略的声明。这个图片标签也需要你写上它的alt属性。

文中借鉴了很多其他的文章,到这里针对于picture的所有介绍就结束了,那么现在就去试试它吧~

相关推荐;

实例讲解响应式框架Bootstrap栅格系统

几款适合web程序员的响应式框架

HTML5响应式banner制作教程

以上就是HTML5中的picture元素响应式处理图片方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2900697.html

(0)
上一篇 2025年3月11日 00:01:48
下一篇 2025年2月24日 18:16:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • HTML5 Web Worker的使用实例教程

    web worker是html5提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web worker运行而不冻结用户界面。本文主要介绍了浅谈html5 web worker的使用,小编觉得挺不错的,现在分享给大…

    编程技术 2025年3月11日
    200
  • html5 Canvas实现图片旋转

    本文主要介绍了htm5l canvas实现图片旋转的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 众所周知canvas是位图,你可以在里面渲染你要的东西,不过你只能操作canvas的属…

    2025年3月10日 编程技术
    200
  • HTML5 type=file文件上传功能实例详解

    本文主要和大家介绍html5新特性之type=file文件上传功能,需要的朋友可以参考下,希望能帮助到大家。 1、语法 2、属性(以下三个仅HTML5支持,因此存在兼容性问题) (1)multiple :表示用户是否可以选择多个值。mult…

    2025年3月10日
    200
  • Html5之IphoneX适配方法分享

    iphonex 的适配,关键在于怎么让页面适应 “齐刘海”、底部操作区域以及大圆角问题。iphonex 相对于其他手机,不同之处在于设备虽同样都是一个屏幕,但其实被分为了好几个模块,本文主要和大家介绍了html5 iphonex 适配方法的…

    2025年3月10日
    200
  • px单位html5响应式方案详解

    移动端h5响应式方案最近这几年用得最多的最多的就是rem方案了。这个需要计算根元素的font-size来实现响应式。本文主要和大家介绍了px单位html5响应式方案的相关资料,希望能帮助到大家。 但这种方案也有一个缺点,那就是font-si…

    编程技术 2025年3月10日
    200
  • 纯HTML5+CSS3制作图片旋转

    这篇文章主要介绍了纯html5+css3制作图片旋转,html5结合css3 实现的一些动画特效,实现起来比较容易,感兴趣的小伙伴们可以参考一下 此实例可以应用到许多项目中,很实用,希望大家可以掌握。 效果图如下: 这个效果实现起来其实并不…

    2025年3月10日
    200
  • 使用HTML5和CSS3实现生日蛋糕的制作

    这篇文章主要介绍了关于使用HTML5和CSS3实现生日蛋糕的制作,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 “祝你生日快乐,祝你生日快乐……”,过生日有生日歌,生日蛋糕也是必不可少的,这篇文章主要为大家详细介绍了程序员利…

    2025年3月10日
    200
  • 利用html和CSS3实现导航栏

    本篇文章给大家分享基于html和css3制作酷炫的导航栏,效果非常美观,需要的朋友可以从参考下  主要亮点:   1 ul 水平显示   2 li 去掉圆点   3 li中字体水平、竖直居中 立即学习“前端免费学习笔记(深入)”;   4 …

    2025年3月10日
    200
  • HTML5 input placeholder的颜色修改

    这篇文章主要介绍了有关html5 input placeholder 颜色修改方面的知识,需要的朋友可以参考下  Chrome支持input=[type=text]占位文本属性,但下列CSS样式却不起作用:  CSS input[place…

    编程技术 2025年3月10日
    200
  • 如何用纯CSS 实现一个颜色卡的效果

    这篇文章主要介绍了关于如何用纯CSS 实现一个颜色卡的效果,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 源代码下载 每日前端实战系列的全部源代码请从 github 下载: https://github.com/comeho…

    2025年3月10日
    200

发表回复

登录后才能评论