Как создать жидкое изображение по центру с наложением подписи?

#css #image #overlay #caption #liquid-layout

#css #изображение #наложение #подпись #жидкий макет

Вопрос:

Я пытаюсь с помощью CSS отобразить изображение по центру с наложением подписи и возможностью создания жидкости, когда окно браузера слишком мало (сжимается, чтобы поместиться).

Моя текущая лучшая попытка выглядит следующим образом HTML (используя логотип Google в качестве образца изображения)

 <div align="center">
   <div class="container">
      <img src="http://www.google.fr/images/logos/ps_logo2.png" class="picture" />
      <h3 class="caption">Image Caption</h3>
   </div>
</div>
  

с помощью следующего CSS

 .container {
   position : relative;
   max-width : 364px;
}
.picture {
    border-radius:0.5em;
    box-shadow: 0px 0px 0.5em #000000;
    max-width:364px;
}
.caption {
    position:absolute;
    padding:0.25em;
    top:1em; left:0; right:0;
    color:black;
    background-color:rgba(0,0,0,0.2);
    text-align:center;
}
  

Однако, если оно ведет себя по центру так, как я хочу, чтобы это было для больших окон браузера, оно не сжимается для маленьких окон браузера…
Также мне не нужна поддержка IE, было бы достаточно специфичного WebKit (iPhone / Android), и я хотел бы по возможности избегать JavaScript.

JSFiddle готов к работе с версиейhttp://jsfiddle.net/kWH3C/1

Ответ №1:

Просто установите максимальную ширину для контейнера вместо изображения и укажите, что изображение должно быть width:100%

http://jsfiddle.net/Madmartigan/kWH3C/5/

 <div class="container">
    <img src="http://www.google.fr/images/logos/ps_logo2.png" class="picture" />
    <h3 class="caption">Image Caption</h3>
</div>
  
 .container {
    position : relative;
    max-width : 364px;
    margin:0 auto;
}
.picture {
    border-radius:0.5em;
    box-shadow: 0px 0px 0.5em #000000;
    width:100%;
}
.caption {
    position:absolute;
    padding:0.25em;
    top:1em; left:0; right:0;
    color:black;
    background-color:rgba(0,0,0,0.2);
    text-align:center;
}
  

Вам не нужен внешний div, и align="center" он устарел в HTML5, используйте CSS для выравнивания и позиционирования.

Комментарии:

1. Именно так, спасибо! Должно быть, align = center появилось там в какой-то момент от разочарования 🙂