#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 появилось там в какой-то момент от разочарования 🙂