Ich versuche, ein einfarbiges Overlay zu erstellen, das genau der Größe eines Bildes entspricht, und Text auf diesem Overlay anzuzeigen. Ich würde dies nur mit HTML und CSS tun, wenn möglich.Text- und Hintergrund-Farbüberlagerung auf Bild
Das Bild von jeder Größe sein kann, und wird innerhalb der übergeordneten Container zu passen und zentriert dimensioniert werden. So etwas wie dies (was nicht funktioniert):
HTML:
<div class="img-overlay">
<img src="file.jpg">
<div class="overlay">Text will flow...</div>
</div>
CSS:
.img-overlay img {
margin: 0 auto;
max-height: 100%;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%
background-color: rgba(255,255,255,0.5);
}
Ich dachte, dass <figure>
Tag HTML5 könnte hier helfen, haben aber nicht hatte viel Erfolg an dieser Front. Im Folgenden wird die Beschriftungsbreite an die Bildbreite angepasst, aber wenn ich versuche, sie aus dem Dokumentfluss zu entfernen und über dem Bild zu positionieren, endet sie aufgrund der Bildzentrierung über margin: 0 auto;
links vom Bild.
<figure>
<img src="file.jpg">
<figcaption>Text will flow...</figcaption>
</figure>
Sie haben beide Recht - vergessen, die Position des Elternelements zu setzen. Duh. – ericsoco