zoukankan      html  css  js  c++  java
  • 响应式图片的3种解决方案

    目前已经有几种备选的解决方案解决这些问题

    1. 创建一个新的(HTML)元素
    2. 创建新的图像格式
    3. 使用特定技术手段

    下面我们一一简述各种方案。

    创建新元素(或属性)

    该方法已经在使用了,不过在使用方式上存在一些争议。这些争议主要来自两方面:业界的web开发者和浏览器制造者。web开发者提议创建一个新的picture元素(类似HMTL5中的video这样的元素),该元素中包含其他的图片源,示例代码如下:·

    //code from http://caibaojian.com/3-solutions-for-responsive-image.html
    <picture alt="image description">
      <source src="/path/to/medium-image.png" media="(min- 600px)">
      <source src="/path/to/large-image.png" media="(min- 800px)">
      <img src="/path/to/mobile-image.png" alt="image description">
    </picture>

    其中的img元素是默认情况下显示的图片源。

    在其上面的两个source元素则是在特定媒体查询(media queries)条件下显示的图片——这也是开发者所喜欢的一种解决方案。

    Scott Jehl针对图片元素创建了polyfill项目,就是利用了这种思想,你现在可是就可以使用它了。·

    <span data-picture data-alt="A giant stone face at The Bayon temple in Angkor Thom, Cambodia">
            <span data-src="small.jpg"></span>
            <span data-src="medium.jpg"     data-media="(min- 400px)"></span>
            <span data-src="large.jpg"      data-media="(min- 800px)"></span>
            <span data-src="extralarge.jpg" data-media="(min- 1000px)"></span>
    
            <!-- Fallback content for non-JS browsers. Same img src as the initial, unqualified source element. -->
            <noscript>
                <img src="small.jpg" alt="A giant stone face at The Bayon temple in Angkor Thom, Cambodia">
            </noscript>
        </span>

    浏览器开发者则是通过给img元素标签增加srcset属性来解决此问题的,功能一样,然而直觉上不好理解。

    //code from http://caibaojian.com/3-solutions-for-responsive-image.html
    <img src="path-to-default-image.jpg" alt=""
      srcset="path-to-default-image.jpg 600w 200h 1x,
                       path-to-another-image.jpg 600w 200h 2x,
                       path-to-a-third-image.jpg 200w 200h">

    以srcset的一个值为例讲解:

    path-to-another-image.jpg 600w 200h 2x

    •   path-to-another-image.jpg 是不言自明的,当符合下述条件时就使用该 图片
    •   依据media queries要求,设备最小尺寸为600w和200h
    •   浏览器有以2x像素密度显示的能力
  • 相关阅读:
    SQL Server ---------- 分离数据库 生成 .mdf文件
    WindowsServer -------------部署软件
    hibernate的配置文件(ORM元数据配置、主配置文件)
    The database returned no natively generated identity value错误解决方案
    权限管理
    虚拟机Linux系统ip查询失败问题
    文件处理(链接命令)
    文件处理(创建、查看)
    汉诺塔——递归
    hibernate(概念、ORM思想)
  • 原文地址:https://www.cnblogs.com/Javi/p/6681898.html
Copyright © 2011-2022 走看看