2017-10-20 7 views
0

私は対応力のあるWordpressのウェブサイトを構築しています。ブログフィードには、タイトルと画像を持つストーリーのリストがあります。 - 140x140px(ストーリーがリストに表示されている) 誰にでもこのsrcsetのどこが間違っているのか分かりますか?

  • 480PX上ワイド - 360x190px(3の列に表示されるストーリー)
    1. アップワイド479pxに次のように画像サイズがなければなりません

      私はこれにSRCSETを使用して、140x140pxイメージをブラウザ用に最大479px、360pxイメージをブラウザ用に480px以上読み込むようにしました。

      私はグーグルで、サイズやsrcsetについては文字通りあらゆる種類のドキュメンテーションを読んでいましたが、私は頭に浮かべることができません。これまでのところ私は、次のを作ってみた:

      <img 
       
          src="http://placekitten.com/140/140" 
       
          srcset=" 
       
          http://placekitten.com/140/140 140w, 
       
          http://placekitten.com/360/190 360w" 
       
          sizes=" 
       
          (max-width: 479px) 140px, 
       
          (min-width: 480px) 360px, 
       
          100vw" 
       
          alt="" 
       
          class="lazyload" 
       
      />

      残念ながら、このすべてが行う140x140pxの画像に設定されている画像の実際のSRCにもかかわらず、すべての幅で360x190pxを表示しています。

      私が逃したものは誰でも見ることができますか?私はそれが私が最も混乱しているサイズだと思う。私は文書化されたようなメディアクエリを追加しましたが、適用されないようですか?

      ありがとうございました!

    +1

    はあなたの**生成されるマークアップを共有してください。 PHPはサーバー側の言語であり、コードスニペットではレンダリングできません。 – Terry

    +0

    こんにちは!私はそれを更新しましたplacekitten画像を使用するが、私はそれが働いているのか分からないのですか?私はそれをローカルで実行しているだけなので、コードは私が扱っているものの一例です。 –

    +0

    どのブラウザを使用していますか?問題のあなたのコードは私のために働いています。 –

    答えて

    0

    <img>要素でこのsrcset戦略は、ブラウザがまだを画像をキャッシュしていないという事実に依存していることに注意してください。この戦略は、ブラウザの帯域幅を節約することを目的としています。したがって、広いビューポートから始めると、ブラウザは2つの画像のうち大きい方を取り出すだけで、サイズを変更しても小さい画像にフォールバックしなくなります。

    あなたは、さまざまなビューポートのブレークポイントで画像をロードするようにブラウザを強制する代わりに<picture>を使用する場合:**

    <picture alt="" class="lazyload"> 
     
        <source srcset="https://via.placeholder.com/360x190" media="(min-width: 480px)" /> 
     
        <img src="https://via.placeholder.com/140x140" /> 
     
    </picture>

    +0

    返信いただきありがとうございます!残念ながら、テストするためにそのコードをコピーして貼り付けてみましたが、ブラウザが479px未満の場合は360pxのワイドコードが表示されます。それで、私はそれが論理的にはうまくいくと思ったのですが、最大で479px、次に140pxのイメージ、480px以上で360pxのイメージを使用しますが、無視するように見えます。私はシークレットモードを試しましたが、キャッシングはしていますが運がない場合は入れてください! –

    +0

    @AliGreenそれは動作しますが、最初に低い解像度でテストしてキャッシュをクリアする必要があります。これを考えてみましょう:ブラウザの画像の解像度が高い場合は、ビューポートを縮小した後でも、より小さな画像に縮小したくありません。 – Terry

    +0

    私は網膜のMacbookプロでテストしています - それは2倍の解像度ですね。私はそれが問題かもしれないと思ったが、130pxの幅で(応答性の高いツールを使用して)Chromeをチェックし、360pxの幅で出てきた。 https://imgur.com/a/RVLjx –

    0

    下記のコードを確認してください。

    <picture> 
     
           <source class="img-fluid" srcset="//www.fillmurray.com/140/140" media="(max-width: 479px)"><img class="img-fluid" src="//www.fillmurray.com/360/190"> 
     
          </picture>

    関連する問題