2013-07-05 2 views
5

У меня есть жидкое изображение внутри div, под изображением есть другой div с текстом. Возможно ли, чтобы #text div получал тот же размер, что и изображение?Как подобрать div к изображению?

<div id="container"> 
    <img src="http://dummyimage.com/300x200/c7c1c7/fff.jpg"> 
    <div id="text">Several standard dimensions are included in dummyimage.com including ad sizes and screen resolution sizes.</div> 
</div> 


#container { 
    display: inline-block; 
    height: auto; 
    max-width: 100%; 
    position: relative; 
} 

img { 
    max-width:100%; max-height:100%; 
} 

FIDDLE

+0

Так что конечная цель - центрировать текст поверх изображения или иметь DIV и изображения такого же размера? Кроме того, вы бы хотели использовать jquer/javascript? –

+0

Я думаю, что вы, вероятно, сделаете это >>> http://jsfiddle.net/HUsRm/10/ –

ответ

0

Here is the answer on JSFIDDLE
Вы должны добавить position:absolute к вашему <div id="text">..</div>:

Вот CSS, вы должны применять:

#text{ 
    position:absolute; 
    bottom:0;left:0; 
    width:100%; 
    background:#444; 
    color:#FFF; 
    text-align:center; 
    font-size:11px; 
    line-height:14px; 
    padding:2px 0; 
} 
+0

Это * сверху * нижней части изображения, а не * под изображением *, как указано в вопросе. – xec

0

попробовать это FIDDLE

#container { 
    display: inline-block; 
    height: auto; 
    max-width: 100%; 
    position: relative; 
} 

img { 
    max-width:100%; max-height:100%; 
} 
#text{ 
    max-width:300px; 

} 
+1

Спасибо, но если я не знаю размер изображения? – user25381

+0

ВАШИ РАЗМЕР ИЗОБРАЖЕНИЯ (http://dummyimage.com/300x200/c7c1c7/fff.jpg) – falguni

+0

Размер не исправил изображение, поэтому, возможно, 400, 500 .. – user25381

5

Видя, как #container позиционирован относительно, можно расположить #text абсолютно, чтобы предотвратить его от растягивания #container:

#text { 
    /* remove from flow, prevents from stretching container */ 
    position: absolute; 
} 

http://jsfiddle.net/HUsRm/5/

Это, конечно же, также предотвращает вертикальное растяжение, а не нажимает нижеследующий контент вниз. Это может быть нежелательно?

0

Адрес fiddle link. Вам просто нужно предоставить позицию для текстового div.

#text { 
    position:absolute; 
} 
+1

Теперь вы просто занимаетесь фермерством, не ты? Прочитайте, что [xec] (http://stackoverflow.com/a/17484641/1542290) ответил –

1

Вы можете сделать эту работу, имея только этот CSS:

#container 
{ 
    display:table-caption; 
} 

Fiddle

+0

Собственно, это выглядит ужасно в IE10 :(Мне все равно понравилось бы объяснение того, что делает этот код «работать», хотя – xec

0

Я хотел бы предложить вам использовать соответствующие теги: фигура и figcaption, во всяком случае здесь чистое решение, которое работает с разметкой, вы можете увидеть результаты в этом FIDDLE.

figure, #container { 
      display: table; 
      max-width: 100%; 
      width: auto !important; 
      } 

     img { 
      display: table-row; 
      max-width: 100%; 
      width:100%; 
     } 

     figcaption, #text { 
      display: table-caption; 
      max-width: inherit; 
      caption-side: bottom; 
      word-wrap: break-word; 
     } 

    <!--[if lt IE 9]><style type="text/css"> 
    img, 
    figcaption { 
     width: auto !important; 
    } 
    </style><![endif]--> 
    <figure> 
     <img src="http://dummyimage.com/300x200/c7c1c7/fff.jpg" alt="alt text" /> 
     <figcaption>Several standard dimensions are included in dummyimage.com including ad sizes and screen resolution sizes.</figcaption> 
    </figure> 
<!-- YOUR MARKUP #2 --> 
    <div id="container"> 
     <img src="http://dummyimage.com/300x200/c7c1c7/fff.jpg" alt="alt text" /> 
     <div id="text">Several standard dimensions are included in dummyimage.com including ad sizes and screen resolution sizes.</div> 

    </div> 

Я хотел бы также предложить взглянуть на this blog post для лучшего изображения размер

Смежные вопросы