Javascript 图像宽度与视口宽度不成比例时的响应图像?

Javascript 图像宽度与视口宽度不成比例时的响应图像?,javascript,css,image,twitter-bootstrap,responsive-design,Javascript,Css,Image,Twitter Bootstrap,Responsive Design,我正在使用Twitter引导,我想在我的页面中包括一些图片,如下所示: <div class="row"> <div class="span3"><img src="img1.png" /></div> <div class="span3"><img src="img2.png" /></div> <div class="span3"><img src="img3.png" /></

我正在使用Twitter引导,我想在我的页面中包括一些图片,如下所示:

<div class="row">
<div class="span3"><img src="img1.png" /></div>
<div class="span3"><img src="img2.png" /></div>
<div class="span3"><img src="img3.png" /></div>
<div class="span3"><img src="img4.png" /></div>
</div>

但是,很难使图像具有响应性,因为使用引导时,图像宽度与视口宽度没有直接关系,这排除了(例如)方法

在上面的示例中,在1080像素宽的屏幕上,图像堆叠,因此每个div占视口宽度的25%以下,并且每个图像只需要约250px宽。但是,在750像素宽的屏幕上,div垂直堆叠以占据100%的视口宽度,因此每个图像需要约750px宽

我在想我可以做一些类似的事情:

  • 默认情况下,加载间隔符。gif:
  • 在页面加载时,检查图像的宽度,并加载适当的大小
但后来我意识到这对非JavaScript用户不起作用。默认情况下,我可以加载一个小图像,但是非JS用户在大屏幕上的体验不好,一些用户还必须同时加载小图像和大图像


有什么建议吗?

如果您主要关心的是不要在移动设备上加载不必要的大图像,并且您正在寻找一个非JS选项,那么您可能会发现类似的东西很有用。基本上,您通过Sencha传送所有图像:

<div class="row">
  <div class="span3"><img src="http://src.sencho.io/http://yourimageserver.com/img1.png" /></div>
  <div class="span3"><img src="http://src.sencho.io/http://yourimageserver.com/img2.png" /></div>
  <div class="span3"><img src="http://src.sencho.io/http://yourimageserver.com/img3.png" /></div>
  <div class="span3"><img src="http://src.sencho.io/http://yourimageserver.com/img4.png" /></div>
</div>


然后,Sencha服务器检查HTTP请求头中的用户代理,然后根据他们关于浏览器的规格提供预定大小的服务。

如果您试图解决此客户端问题,可以使用

基本上,它实现了与所提出的解决方案类似的解决方案。您将在标记中插入以下内容(来自PictureFill网站上的示例):

并在css中使用媒体查询来确保250x250图像堆栈


希望有帮助

尝试改用
行流体
<div data-picture data-alt="A giant stone face at The Bayon temple in Angkor Thom, Cambodia">
    <div data-src="small.jpg"></div>
    <div data-src="medium.jpg"     data-media="(min-width: 400px)"></div>
    <div data-src="large.jpg"      data-media="(min-width: 800px)"></div>
    <div data-src="extralarge.jpg" data-media="(min-width: 1000px)"></div>

    <!-- Fallback content for non-JS browsers. Same img src as the initial, unqualified source element. -->
    <noscript>
        <img src="external/imgs/small.jpg" alt="A giant stone face at The Bayon temple in Angkor Thom, Cambodia">
    </noscript>
</div>
 <div data-src="image_250x250.jpg"     data-media="(min-width: 1080px)"></div>
 <div data-src="image_750x750.jpg"     data-media="(min-width: 750px)"></div>