Heim Web-Frontend CSS-Tutorial Wie man Bilder mithilfe des Bildelements in HTML5 responsiv verarbeitet

Wie man Bilder mithilfe des Bildelements in HTML5 responsiv verarbeitet

Jan 05, 2018 pm 05:58 PM
h5 html5

Das sogenannte Responsive Design bedeutet, dass das Webseitenlayout auf Endgeräten mit unterschiedlichen Bildschirmauflösungen, unterschiedlichen Pixeldichteverhältnissen und unterschiedlichen Breiten adaptiv angepasst werden kann. Die ursprüngliche Absicht des responsiven Designs besteht darin, die ursprüngliche PC-Website mit mobilen Endgeräten kompatibel zu machen. Die meisten responsiven Webseiten werden durch Medienabfragen und das Laden von CSS-Dateien unterschiedlicher Stile implementiert. Diese Art des flexiblen Layouts macht das Layout der Website auf verschiedenen Geräteterminals sinnvoller. In diesem Artikel wird hauptsächlich die reaktionsfähige Bildverarbeitung von Bildelementen in HTML5 ausführlich erläutert. Der Herausgeber findet sie recht gut, daher werde ich sie jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

Obwohl responsives Design viele Vorteile hat, hat es auch viele Nachteile. Da der PC und das mobile Endgerät auf dieselbe Website zugreifen, muss sich der PC nicht um das Verkehrslimit kümmern, das mobile Endgerät kann es jedoch nicht ignorieren.

Um uns an die Bildschirmbreite und Pixeldichte verschiedener Terminalmodelle anzupassen, verwenden wir im Allgemeinen die folgende Methode, um den CSS-Stil des Bildes festzulegen:

<style>
    img{
        max-width:100%;
        height:auto;
    }
</style>
Nach dem Login kopieren

Stellen Sie die maximale Breite des Bildes auf 100 % ein, um sicherzustellen, dass das Bild die Breite seines übergeordneten Elements nicht überschreitet. Wenn sich die Breite des übergeordneten Elements ändert, ändert sich auch die Breite des Bildes: Auto kann sicherstellen, dass sich die Breite des Bildes ändert. Die Höhe des Bildes wird entsprechend seinem eigenen Verhältnis von Breite zu Höhe skaliert.

Wenn wir auf einem mobilen Gerät auf das Bild in der responsiven Webseite zugreifen, skalieren wir nur die Auflösung des Bildes und laden das große Bild auf den PC herunter. Dies verschwendet nicht nur Datenverkehr, sondern auch Bandbreite Darüber hinaus wird die Öffnungsgeschwindigkeit von Webseiten verlangsamt und das Benutzererlebnis erheblich beeinträchtigt.

Neue Lösung: <picture>

  1. <picture> ist ein neues Element von HTML5; Die Arbeit mit responsiven Bildern wird verbessert, wenn das <picture>-Element in Verbindung mit den aktuellen <audio>-, <video>-Elementen funktioniert, sodass mehrere <source>-Tags darin festgelegt werden können. Name, geladen entsprechend unterschiedlicher Bedingungen;

  2. <Bild> kann unterschiedliche Bilder entsprechend unterschiedlicher Bedingungen laden ), Ausrichtung, Pixeldichte (DPR) usw.;

  3. Geben Sie ein paar Kastanien an

  4. In der folgenden Kastanie werden verschiedene Bilder für unterschiedliche Bildschirmbreiten geladen Die Seite Minpic.png wird geladen, wenn die Breite zwischen 320px und 640px liegt; middle.png wird geladen, wenn die Seitenbreite größer als 640px ist.

2. In der folgenden Kastanie wird die Bildschirmrichtung hinzugefügt als Bedingung; wenn die Bildschirmausrichtung im Hochformat ist, wird das Bild mit der Endung _landscape.png geladen; wenn die Bildschirmausrichtung im Hochformat ist, wird das Bild mit der Endung _portrait.png geladen;

3. Die Bildschirmpixeldichte wird als Bedingung in der folgenden Kastanie hinzugefügt: Wenn die Pixeldichte 2x beträgt, laden Sie das Bild _retina.png 2x, wenn die Pixeldichte 1x beträgt, laden Sie das Bild ohne Retina-Suffix ;
&lt;picture&gt;
    &lt;source media=&quot;(min-width: 320px) and (max-width: 640px)&quot; srcset=&quot;img/minpic.png&quot;&gt;
    &lt;source media=&quot;(min-width: 640px)&quot; srcset=&quot;img/middle.png&quot;&gt;
    &lt;img src=&quot;img/picture.png&quot; alt=&quot;this is a picture&quot;&gt;
&lt;/picture&gt;
Nach dem Login kopieren

4. Fügen Sie das Bilddateiformat als Bedingung in der folgenden Kastanie hinzu: Wenn das Bild im Webp-Format unterstützt wird, wird das Bild im Webp-Format geladen, und wenn das Bild im PNG-Format nicht unterstützt wird, Das Bild im PNG-Format wird geladen.
&lt;picture&gt;
    &lt;source media=&quot;(min-width: 320px) and (max-width: 640px) and (orientation: landscape)&quot; srcset=&quot;img/minpic_landscape.png&quot;&gt;
    &lt;source media=&quot;(min-width: 320px) and (max-width: 640px) and (orientation: portrait)&quot; srcset=&quot;img/minpic_portrait.png&quot;&gt;
    &lt;source media=&quot;(min-width: 640px) and (orientation: landscape)&quot; srcset=&quot;img/middlepic_landscape.png&quot;&gt;
    &lt;source media=&quot;(min-width: 640px) and (orientation: portrait)&quot; srcset=&quot;img/middlepic_portrait.png&quot;&gt;
    &lt;img src=&quot;img/picture.png&quot; alt=&quot;this is a picture&quot;&gt;
&lt;/picture&gt;
Nach dem Login kopieren

Fügen Sie im folgenden Beispiel eine Breitenbeschreibung hinzu größtes Bild;
&lt;picture&gt;
    &lt;source media=&quot;(min-width: 320px) and (max-width: 640px)&quot; srcset=&quot;img/minpic.png,img/minpic_retina.png 2x&quot;&gt;
    &lt;source media=&quot;(min-width: 640px)&quot; srcset=&quot;img/middle.png,img/middle_retina.png 2x&quot;&gt;
    &lt;img src=&quot;img/picture.png,img/picture_retina.png 2x&quot; alt=&quot;this is a picture&quot;&gt;
&lt;/picture&gt;
Nach dem Login kopieren

6. Fügen Sie das Größenattribut im folgenden Beispiel hinzu; laden Sie die entsprechende Version des Bildes, wenn die Fensterbreite größer oder gleich 800 Pixel ist; >Kompatibilität:
&lt;picture&gt;
    &lt;source type=&quot;image/webp&quot; srcset=&quot;img/picture.webp&quot;&gt;
    &lt;img src=&quot;img/picture.png&quot; alt=&quot;this is a picture&quot;&gt;
&lt;/picture&gt;
Nach dem Login kopieren

Derzeit sind nur Chrome, Firefox und Opera damit kompatibel. Die spezifische Kompatibilität ist wie folgt:

&lt;img src=&quot;picture-160.png&quot; alt=&quot;this is a picture&quot;
     sizes=&quot;90vw&quot; 
     srcset=&quot;picture-160.png 160w,
             picture-320.png 320w,
             picture-640.png 640w,
             picture-1280.png 1280w&quot;&gt;
Nach dem Login kopieren

<source media="(min-width: 800px)"
        sizes="90vw" 
        srcset="picture-landscape-640.png 640w,
                picture-landscape-1280.png 1280w,
                picture-landscape-2560.png 2560w">
&lt;img src=&quot;picture-160.png&quot; alt=&quot;this is a picture&quot;
     sizes=&quot;90vw&quot; 
     srcset=&quot;picture-160.png 160w,
             picture-320.png 320w,
             picture-640.png 640w,
             picture-1280.png 1280w&quot;&gt;
Nach dem Login kopieren
Vorteile:

Laden Sie Bilddateien in geeigneter Größe, damit die verfügbare Bandbreite voll ausgenutzt wird.

Laden Sie Bilder, die unterschiedlich zugeschnitten sind und unterschiedliche Seitenverhältnisse haben, um Layoutänderungen bei unterschiedlichen Anforderungen zu berücksichtigen Breiten;

  1. Ladet höhere Pixeldichte, zeigt Bilder mit höherer Auflösung an

  2. Erstellen Sie <picture></picture>-Tags. Erstellen Sie innerhalb dieser Tags ein <source></scource>-Tag 🎜>

  3. Fügen Sie ein Medienattribut hinzu, um die gewünschten Eigenschaften wie Breite (maximale Breite, minimale Breite), Ausrichtung (Ausrichtung) usw. einzuschließen 🎜>

    Fügen Sie ein srcset-Attribut hinzu. Der Attributwert ist der entsprechende Bilddateiname, und laden Sie ihn. Wenn Sie unterschiedliche Pixeldichten bereitstellen möchten, z. B. bei Retina-Anzeigen, können Sie dem srcset-Attribut zusätzliche Dateinamen hinzufügen.

🎜>

    <picture> Arbeitsprinzip
  1. <picture> Wie aus dem obigen Beispielcode ersichtlich ist, ohne Einführung von js und Bibliotheken von Drittanbietern, Wenn Medienabfragen nicht in CSS enthalten sind, kann das <picture>-Element reaktionsfähige Bilder allein mit

  2. <source> deklarierenDas

    <picture>-Tag selbst hat keine Attribute. Das Zauberhafte daran ist, dass <picture> als Container für <source> verwendet wird. Das
    <source>-Element, das zum Laden von Multimedia-Inhalten wie Video und Audio verwendet wird, wurde zum Laden von Bildern aktualisiert und einige neue Attribute wurden hinzugefügt:

    srcset (erforderlich)

    Akzeptiert einen einzelnen Bilddateipfad (z. B. srcset="img/minpic.png")

    Oder einen durch Kommas getrennten Bildpfad, der die Pixeldichte beschreibt (z. B. srcset=" img/). minpic.png, img/minpic_retina.png 2x“), 1x Beschreibungen werden standardmäßig nicht verwendet.

    Medien (optional)

    Akzeptiert jede validierende Medienabfrage, wie Sie im CSS-@media-Selektor sehen können (z. B. media="(min-width: 320px)") >

    wurde im vorherigen <picture>-Syntaxbeispiel verwendet.

    Größen (optional)

    Erhält eine einzelne Breitenbeschreibung (z. B. „sizes="100vw") oder eine einzelne Medienabfrage-Breitenbeschreibung (z. B. „sizes="(min-width: 320px ). )") Die letzte wird als Standard angesehen.

    Typ (optional)

    Akzeptieren Sie unterstützte MIME-Typen (z. B.: type="image/webp" oder type="image/vnd.ms-photo")

    Der Browser lädt die genaue Bildressource basierend auf diesen Hinweisen und Attributen. Gemäß der Listenreihenfolge der Tags. Der Browser verwendet das erste entsprechende <source>-Element und ignoriert nachfolgende <source>-Tags.

    Fügen Sie das letzte <img>-Element hinzu

    Das <img>-Element wird innerhalb des <picture> verwendet, um es anzuzeigen, wenn der Browser es nicht unterstützt oder wenn keine Übereinstimmung vorhanden ist Quell-Tag. Es ist zwingend erforderlich, das Tag <img> innerhalb von <picture> zu verwenden.

    Verwenden Sie <img>, um die Standardbildanzeige zu deklarieren. Platzieren Sie das <img>-Tag am Ende des <picture>, und der Browser ignoriert die <source>-Deklaration, bevor er das <img>-Tag findet. Für dieses Bild-Tag müssen Sie auch sein Alt-Attribut schreiben.

    Dieser Artikel basiert auf vielen anderen Artikeln. Alle Einführungen zum Bild finden Sie hier. Probieren Sie es jetzt aus Framework Bootstrap-Grid-System mit Beispielen

    Mehrere responsive Frameworks, die für Webprogrammierer geeignet sind

    HTML5-Responsive-Banner-Produktions-Tutorial

Das obige ist der detaillierte Inhalt vonWie man Bilder mithilfe des Bildelements in HTML5 responsiv verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Verschachtelte Tabelle in HTML

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Tabellenrahmen in HTML

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

HTML-Rand links

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

HTML-Tabellenlayout

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

Text in HTML verschieben

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

HTML-geordnete Liste

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

HTML-Onclick-Button

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

HTML-Eingabeplatzhalter

See all articles