So zeigen Sie im img-Tag in HTML nur die Bildmitte an (drei Methoden)

So zeigen Sie im img-Tag in HTML nur die Bildmitte an (drei Methoden)

Derzeit gibt es drei Möglichkeiten, die Mitte eines Bildes im img-Tag in HTML anzuzeigen. Ich werde sie hier aufzeichnen.

Die erste Methode: Verwenden Sie CSS clip:rect (oben rechts, unten links). Bei der Verwendung muss position: absolute wie folgt verwendet werden:

<img src="upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg"
     Stil = "Position: absolut; Clip: Rechteck (0px, 250px, 200px, 50px); Breite: 300px; Höhe: 200px">

Das Festlegen der Breite und Höhe des Bildes entspricht dem proportionalen Skalieren des Bildes auf seine tatsächliche Breite und Höhe und dem anschließenden Festlegen des Zuschneidebereichs des Bildes mithilfe der Rect-Methode.

- Die zweite Methode: Verwenden des Hintergrundattributs von img:

<style type="text/css">
        img {
            background-image: url(upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg);//Hintergrundbild festlegen background-repeat: no-repeat;//Das Hintergrundbild wird nur einmal angezeigt.
            Hintergrundanhang: scrollen;//
            background-position: -50px 0px;//Legt den Versatz des Hintergrundbildes fest. Diese -50 entsprechen einem gesamten Hintergrund, der 50 nach links versetzt ist, damit die Bildmitte angezeigt werden kannbackground-size: 300px 200px;////Legt die Größe des Hintergrundbildes fest, die der tatsächlichen Breite und Höhe des Bildes entspricht, die proportional skaliert wirdbackground-color: transparent;//
            Breite: 200px;//
            Höhe: 200px;//
        }
    </Stil>

Verwenden Sie den Hintergrund, um die Mittelposition der Bildanzeige zu steuern. Sie müssen den Hintergrund so einstellen, dass er proportional zur tatsächlichen Breite und Höhe des Bildes skaliert wird, und dann die Bewegung des Hintergrunds versetzen, um die Breite und Höhe des Bildes zu steuern. Es ist zu beachten, dass die Quelle des Bildes nicht festgelegt werden kann. Wenn das img-Tag die Quelle nicht festlegt, wird auf dem angezeigten Bild ein grauer Rand angezeigt, und es gibt keine Möglichkeit, ihn zu entfernen. border:0px hat keine Wirkung. Meine vorherige Lösung bestand darin, ein standardmäßig vollständig transparentes Bild in die Quelle einzufügen, wodurch das Problem gelöst wurde.

Die dritte Methode: img in div einbinden und divs overflow: hidden; zur Steuerung verwenden. Dies ist flexibler in der Anwendung.

<div style="Breite: 100px;Höhe: 100px;Überlauf: versteckt">
<img src="upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg" style="position: relativ" id="img_id">
</div>
<Skript>
    var img = document.getElementById("img_id");
    var image = neues Bild();
    var realWidth = 0; //Die tatsächliche Breite des Bildes speichern var realHeight = 0; //Die tatsächliche Höhe des Bildes speichern //Breite und Höhe des Bildes abrufen image.src = "upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg";
    //Verarbeitung des erfolgreichen Ladens image.onload = function () {
        realWidth = image.width; //Die tatsächliche Breite des Bildes abrufen realHeight = image.height; //Die tatsächliche Höhe des Bildes abrufen //Lass die Breite und Höhe von img proportional zur tatsächlichen Breite und Höhe des Bildes sein und verschiebe dann, wenn (realWidth > realHeight){
            img.width = (100/realHeight)*realWidth; //Proportionale Skalierungsbreite img.height = 100; //Konsistent mit Div-Höhe img.style.left = '-' + ((100/realHeight)*realWidth-100)/2 + 'px'; //Setze den relativen Positionsversatz des Bildes auf die halbe Breite-Höhe des img-Tags }else if (realWidth < realHeight){
            img.width = 100; // gleiche Höhe wie div img.height = (100/realeBreite)*realeHöhe; // proportionale Skalierungshöhe img.style.top = '-' + ((100/realeBreite)*realeHöhe-100)/2 + 'px'; // setze den relativen Positionsversatz des Bildes auf die halbe Höhe-Breite des img-Tags }else {
            Bildbreite = 100;
            Bildhöhe = 100;
        }
    };
    //Verarbeitung von Bildladefehlern img.onerror = function () {
        img.src = „https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1492076382452&di=04ebd6c4688b2ffbd8ae18e685234704&imgtype=0&src=http%3A%2F%2Fd.hiphotos.baidu.com%2Fzhidao%2Fwh%253D450%252C600%2Fsign%3D0c96dc86da33c895a62b907fe4235fc6%2F0823dd54564e9258d2bb2dff9f82d158ccbf4e17.jpg“;
        Bildbreite = 100;
        Bildhöhe = 100;
    }
</Skript>

Die obigen Kommentare sind sehr klar. Die Hauptsache ist, dass div die Größe steuert und das img-Tag seine eigene Größe entsprechend der Größe von div anpasst. Der Versatz wird durchgeführt, um den mittleren Bildteil anzuzeigen. Persönlich halte ich die dritte Methode für besser.

Oben sind die Methoden (drei Methoden), die ich Ihnen in HTML vorgestellt habe, um nur die Mitte des Bildes im img-Tag anzuzeigen. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

<<:  Implementierungsprinzip und Konfiguration der MySql Master-Slave-Replikation

>>:  So kommunizieren Sie zwischen dem WIN10-System und der internen Container-IP von Docker

Artikel empfehlen

Eine kurze Erläuterung der MySQL-Benutzerberechtigungstabelle

MySQL erstellt bei der Installation automatisch e...

Implementierung der Anmeldeseite des tatsächlichen Kampfprotokolls von Vue

Inhaltsverzeichnis 1. Vorbereitende Maßnahmen 1.1...

CocosCreator - modulares Lernskript

Modulares Cocos Creator-Skript Mit Cocos Creator ...

So verhindern Sie, dass sich vsftpd-Benutzer über SSH anmelden

Vorwort vsftp ist eine benutzerfreundliche und si...

Natives JS zum Erzielen eines nahtlosen Karusselleffekts

Native js realisiert den Karusselleffekt (nahtlos...

Lösung für die Navicat Premier-Remoteverbindung zum MySQL-Fehler 10038

Schlägt die Remote-Verbindung zu MySQL fehl, kann...

Erläuterung der neuen Funktion von Hadoop 2.X, der Papierkorbfunktion

Durch Aktivieren der Papierkorbfunktion können Si...