2015-06-21 12 views
5


Próbuję wyśrodkować obraz, który korzysta z automatycznej regulacji wysokości, ponieważ chciałbym wypełnić szerokość poziomą (100%). Jego kontener jest zdefiniowany z wartością maksymalnej wysokości i przelewu -y ukryty.

HTML:Pionowe wyśrodkowanie obrazu z automatyczną wysokością i maks. Wysokością

<figure> 
 
    <img src="http://lorempixel.com/500/500/" alt="Imagem" /> 
 
    <figcaption> 
 
    <p>Sapien elit in malesuada semper mi, id sollicitudin urna fermentum.</p> 
 
    </figcaption> 
 
</figure>

CSS:

figure { 
 
    padding: 5px 0; 
 
    max-height: 300px; 
 
    overflow-y: hidden; 
 
    position: relative; 
 
} 
 
figure>img { 
 
    width: 100%; 
 
    height: auto; 
 
    position: relative; 
 
    top: -50%; 
 
} 
 
figcaption { 
 
    bottom: 0; 
 
    position: absolute; 
 
    background-color: #1e1e1e; 
 
    color: white; 
 
    padding: 5px 10px; 
 
    font-size: 14px; 
 
    text-align: center; 
 
    width: 100%; 
 
}

Odpowiedz

1

Możesz użyć tej sztuczki: używać niektórych klas pseudo centrum każdą nieznaną wielkość treści:

https://css-tricks.com/centering-in-the-unknown/

Sztuką jest, aby ustawić zawartość zanim do pełnego rozmiaru potrzebujesz. Spowoduje to, że zawartość zawsze będzie wyśrodkowana.

Demo: http://codepen.io/chriscoyier/pen/gsodI

/* This parent can be any width and height */ 
.block { 
    text-align: center; 

    /* May want to do this if there is risk the container may be narrower than the element inside */ 
    white-space: nowrap; 
} 

/* The ghost, nudged to maintain perfect centering */ 
.block:before { 
    content: ''; 
    display: inline-block; 
    height: 100%; 
    vertical-align: middle; 
    margin-right: -0.25em; /* Adjusts for spacing */ 
} 

/* The element to be centered, can also be of any width and height */ 
.centered { 
    display: inline-block; 
    vertical-align: middle; 
    width: 300px; 
} 
/* This parent can be any width and height */ 
.block { 
    text-align: center; 

    /* May want to do this if there is risk the container may be narrower than the element inside */ 
    white-space: nowrap; 
} 

/* The ghost, nudged to maintain perfect centering */ 
.block:before { 
    content: ''; 
    display: inline-block; 
    height: 100%; 
    vertical-align: middle; 
    margin-right: -0.25em; /* Adjusts for spacing */ 
} 

/* The element to be centered, can also be of any width and height */ 
.centered { 
    display: inline-block; 
    vertical-align: middle; 
    width: 300px; 
} 
Powiązane problemy