Positionieren von text über Bild (html,css)
So, ich habe ein Bild und ich möchte, um die Anzeige in der Mitte der Sie etwas text ein.
Code:
.img {
position: relative;
}
.img h3 {
position: absolute;
width: 100%
top: 85px;
text-align: center;
}
Ok, so habe ich es geschafft, es zu tun. Aber hier ist die Sache: wenn ich die Größe in meinem browser und das Bild wird kleiner, der text geht aus dem Bild.
Also meine Frage ist, muss ich die @media
Regel für die verschiedenen Dimensionen? Und wie weiß ich, welche Dimensionen zu verwenden, in meinem CSS?
Oder gibt es vielleicht etwas, was ich tun kann, damit mein text-element bleibt immer im Bild?
Vielen Dank im Voraus.
- Verwenden Sie eine
%
Einheit fürtop
. Wenn Sie wollen mehr spezifische Hilfe, geben Sie uns eine minimale reproduzierbare Beispiel, was Sie bisher so können wir das Problem sehen. - können Sie Ihre html
- Danke!!! hinzufügen von % statt Pixel arbeitete für die Höhe ein problem. Ich habe auch ein problem mit der Textausrichtung und ich Frage mich, ob das text-align:center; ist nicht korrekt? Hier ist der html -
<div class="homeimg1"> <img src="http://localhost/ks/wp-content/uploads/1.jpg" alt="" width="355" height="245" /> <h3>SET UP</h3> </div>
- check out my Antwort für 4 verschiedene Möglichkeiten, wie Sie erreichen, was Sie wollen, mit was für Ihren speziellen Fall am besten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie eine Reihe von verschiedenen Optionen, die Sie nutzen können, jeder mit seinen pros & cons und mit einem Unterschied in der browser-Unterstützung:
1. Flexbox: (Unterstützung)
Flexbox ist die einfachste option, die Sie haben, ohne Verwendung von Tabellen oder dass man Ihre Elemente aus dem document flow, aber es ist nicht so stark unterstützt wie andere praktikable Möglichkeiten. Ich habe Vertrauen, es wird schon bald genug.
Code:
CSS:
HTML:
2. Line-height: (Unterstützung)
Wenn Sie diese option verwenden, müssen Sie sicherstellen, dass:
(Ansicht Hinweis #2)
Code:
CSS:
HTML:
3. Position: Absolute & Transform: (Unterstützung)
Dies ist die wohl insgesamt am meisten verwendete Methode, wie breit genug unterstützt, aber es hat den Nachteil, dass bekommt das element (Titel) aus dem normalen Fluss.
Code:
CSS:
HTML:
4. Tabelle (Unterstützung)
Gut, werde ich wahrscheinlich gelyncht, wenn jemand findet das heraus, Sie kann aber
display: table
für den container unddisplay: table-cell
für den Titel nutzen die Angleichung der Tabellen.Können Sie nun in der Mitte Ihr Titel:
text-align: center
undvertical-align: middle
Code:
CSS:
HTML:
Hinweise:
div
für unser Bild derheight
muss explizit definiert werden, zu allen Zeiten.line-height
zu zentrieren eines Elements vertikal verlangt, dass dieline-height
ist gleich auf die Höhe des übergeordneten Elements. In diesem Fall50%
des übergeordneten Höhe verwendet wird, aufgrund der Tatsache, dass diefont-size
der Titel ist2x
diefont-size
des Mutterunternehmens und seiner äußert sich inems
.@media
Abfrage, die Sie erwähnt, sollte es nicht verwendet werden, für einfache Sachen wie das zentrieren von text, sondern eher für das anzeigen/ausblenden von Elementen basierend auf Bildschirmgröße, usw.px
(Pixel), sondern%
(Prozentsätze) aktualisiert wird, basiert auf den Bildschirm oderem
(ems), aktualisieren Sie manuell diefont-size
der container mit einem@media
Abfrage.margin
oderpadding
der Titel bzw. die container. Ich würde mich mit einer der anderen drei, wenn ich du wäre.Verwenden
top: 50%;
,left: 50%;
undtransform: translate(-50%, -50%);
.Wirklich häufiger trick in diesen Tagen mit ausgezeichneten browser-Unterstützung. Wichtig zu beachten ist, müssen Sie irgendeine Art von Höhe für
.img
für das innere element richtig positioniert werden. In diesem Beispiel habe ich einevh
Einheit für die Höhe, um zu zeigen, wie schnell es wirklich ist. Größe Weg.Ich auch lieber eine hintergrund-Bild für Dinge wie diese, weil es macht das markup so viel einfacher. Sie sind entweder verwenden möchten
background-image
oder sind die<img>
tag indiv.img
.CSS:
HTML:
h3
hattewidth: 100%;
auf Sie. Versuchen Sie, die aus, wie mein Beispiel trifft es nicht.Nicht, verwenden Sie den media-query für das zentrieren von text jedes mal, wenn Sie die Größe des Bildschirms. Die Lösung unten funktioniert.
CSS
HTML