Heim  >  Artikel  >  Web-Frontend  >  Wie erstelle ich eine CSS-Bildüberlagerung mit unterschiedlichen Höhen, aber gleichbleibender Breite?

Wie erstelle ich eine CSS-Bildüberlagerung mit unterschiedlichen Höhen, aber gleichbleibender Breite?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 10:09:27487Durchsuche

How to Create a CSS Image Overlay with Different Heights but Consistent Width?

CSS-Overlay auf Bildern: Eine umfassende Anleitung

Einführung

Das Erstellen eines Bild-Overlays ist eine häufige Aufgabe im Webdesign. Sie können einem Bild Text, Symbole oder andere Informationen hinzufügen und so einen optisch ansprechenden und informativen Effekt erzielen. In diesem Artikel untersuchen wir, wie wir dies mithilfe von CSS erreichen können, und konzentrieren uns dabei insbesondere auf den Fall, dass Bilder unterschiedliche Höhen haben und gleichzeitig eine einheitliche Breite beibehalten.

Erstellen der Bildüberlagerung

Um diesen Effekt zu erzielen, verwenden wir einen Div-Container, um das Bild und den Overlay-Inhalt zu speichern. Die folgenden CSS-Regeln erstellen das Overlay:

.image-container {
    position: relative;
    width: 200px;
}

.image-container .after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    display: none;
    color: #FFF;
}

.image-container:hover .after {
    display: block;
    background: rgba(0, 0, 0, .6);
}

HTML-Struktur

Die HTML-Struktur enthält das Bild und den Overlay-Inhalt:

<div class="image-container">
    <img src="image.jpg">
    <div class="after">This is some content</div>
</div>

Verbesserung des Overlays

Um das Erscheinungsbild des Overlays zu verbessern, können wir zusätzliche CSS-Stile hinzufügen. Zum Beispiel:

.image-container .after .content {
    position: absolute;
    bottom: 0;
    text-align: center;
    width: 100%;
    padding: 5px;
}

Dadurch wird der Overlay-Inhalt unten vertikal ausgerichtet.

Benutzerdefinierte Demo

Hier ist eine komplexere Demo mit Extras Stil, wie ein Symbol und Text:

.image-container {
    position: relative;
    display: inline-block;
}

.image-container img {
    display: block;
}

.image-container .after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: none;
    color: #FFF;
}

.image-container:hover .after {
    display: block;
    background: rgba(0, 0, 0, .6);
}

.image-container .after .content {
    position: absolute;
    bottom: 0;
    font-family: Arial;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
    padding: 5px;
}

.image-container .after .zoom {
    color: #DDD;
    font-size: 48px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -30px 0 0 -19px;
    height: 50px;
    width: 45px;
    cursor: pointer;
}

.image-container .after .zoom:hover {
    color: #FFF;
}
<div class="image-container">
    <img src="image.jpg">
    <div class="after">
        <span class="content">This is some content. It can be long and span several lines.</span>
        <span class="zoom"><i class="fa fa-search"></i></span>
    </div>
</div>

Diese aktualisierte Demo fügt dem Overlay ein animiertes Zoom-Symbol hinzu, das für zusätzliches visuelles Interesse sorgt.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine CSS-Bildüberlagerung mit unterschiedlichen Höhen, aber gleichbleibender Breite?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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