malnefrage.de
malnefrage.de
Menü
Facebook
Twitter
E-Mail
Bookmark
weitere
Ratgeber-Community für Fragen & Antworten:
Forum mit Tipps, Hilfe und Ratschläge
Forum Frage stellen! Neue Fragen Neue Antworten Ratgeber Login
Frage
Frage
von annanass

CSS - vertical center image in div mit overflow hidden?

Wie kann ich mit CSS ein Bild in einem div Container mit fester vorgegebener Höhe vertikal zentriert platzieren und den Überstand des Image ausblenden? Ich möchte quasi ein größeres Foto in einem 100% breiten div mit der Höhe von 370 px mittig ausrichten. Oben und unten sollte das Bild abgeschnitten werden wenn es höher als 370 px ist.

Ich habe bereits versucht das Image mit
object-fit: cover;
anzupassen, aber das funktioniert im Internet Explorer und Microsoft Edge nicht.

Wer hat eine Lösung?

Antwort
Antwort
von HTMLbuddy
Um ein größeres Image vertical zu zentrieren kannst du das Bild in ein div packen den overflow auf hidden setzen und anschließen das Bild mittig im div positionieren. Versuch mal folgende Konstruktion:

HTML:
<div class="img-wrapper">
    <img src="/images/foto.jpg">
</div>
CSS:
.img-wrapper{
    position: relative;
    overflow: hidden;
    height: 370px;
}

.img-wrapper img{
    position: absolute;
    top: -100%; 
    left: 0; 
    right: 0; 
    bottom: -100%;
    margin: auto;
}


Antwort
Antwort
von StackX
Hi!

Wenn du den object-fit: cover; Trick nicht verwenden kannst weil es im IE und älteren Edge-Versionen Probleme macht, gibt es einen anderen Ansatz der durch CSS-Positionierung funktioniert und ebenfalls das gewünschte Ergebnis liefert.

Hier ein Beispiel:
css
.container {
  width: 100%;
  height: 370px;
  overflow: hidden;
  position: relative;
}

.container img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%;
  height: auto;
}
Das div-Element (.container) bekommt eine feste Höhe von 370px und overflow: hidden, damit das Bild nur innerhalb des Containers sichtbar bleibt.
Das Bild wird durch position: absolute; innerhalb des Containers ausgerichtet. Mit top: 50% und left: 50% wird es zunächst zur Mitte des Containers geschoben.
3. Mit transform: translate(-50%, -50%); wird es dann genau in die Mitte ausgerichtet.
4. min-width: 100% sorgt dafür, dass das Bild immer die volle Breite des Containers ausfüllt und height: auto; passt die Höhe proportional an.

Diese Methode funktioniert auch in älteren IE-Versionen und Edge.
Teste mal aus und schau ob das Ergebnis für dich passt!
Ähnliche Fragen
Ich beziehe vom Kommunalen Center für Arbeit noch bis zum 31.03.2021 Leistungen (ALG 2) und danach nicht mehr. Es gibt auch keinen neuen Antrag, ...
Bitte nur ernste Antworten weil ich kein Plan hab ob es grün-blau, grün-grau, doch eher grau-blau oder was auch immer is xd
Ich habe eine Frage und zwar möchte ich gerne etwas im Bereich Architektur in Kombination mit Raumplanung (Freiraum- und Landschaftsarchitektur) machen. ...
Ich würde gerne den Namen des Models wissen, welches im Bader Onlinekatalog das ¾-Nachthemd mit der Bestellnummer 096962J trägt. Sie war auch schon in ...
Ich bin nächstes Jahr mit dem Abi fertig und hab mich um eine Ausbildung als Sozialversicherungsfachangestellte beworben. Aber nach dem schriftlichen ...
Nächste Frage

Die auf malnefrage.de veröffentlichten Fragen und Antworten sind Meinungsäußerungen der jeweiligen User. Da die Aussagen nicht geprüft werden, kann die Richtigkeit der Inhalte nicht gewährleistet werden.