2012-06-19 4 views
0

Это мой код (если изображение имеет высоту больше, чем 100px затем показать только первые 100px изображения и скрыть остальное):Как добавить границу к изображению, скрытому частично?

HTML:

<div> 
    <img> 
</div> 

CSS:

div{ 
    max-height:100px; 
    overflow:hidden; 
} 

Теперь мне нужно добавить границу из 5px:

img{ 
    border:solid 5px #555555; 
} 

но если изображение имеет высоту выше 100 пикселей, нижняя граница не отображается. Как я могу это разрешить?

ответ

3

Это потому, что переполнение div скрыто. Вместо этого вы должны установить границу в div. Таким образом, div будет занимать только высоту изображения, но после 100px он сохранит границу, но изображение не покажет прошлое. Тем не менее, вам нужно будет настроить ширину div для соответствия изображению.

<span><img src="" /></span> 

span{ 
    max-height:100px; 
    border:solid 5px #555; 
    overflow: hidden; 
    display: inline-block 
} 

img { 
    width: 200px; /* image width */ 
    height: 200px; /* image height */ 
} 

Используя пролет с display: inline-block вам больше не нужно устанавливать ширину внешнего контейнера.

Вопрос: Если размер изображения меньше 100px, между дном изображения и внешним контейнером имеется небольшой промежуток.

demo

+0

max-height не работает в более раннем браузере: D – xRobot

+0

Yup, вы правы. @xRobot должен установить границу 'div' вместо' img', поскольку она ** обрезана/скрыта **, и нет возможности сделать нижнюю границу видимой, когда вы заставили ее быть невидимой в первую очередь. –

+0

, тогда используйте 'height' вместо' max-height' –

0

Заглянуть, если это то, что вам нужно:

HTML (с образцами графики) :

<div> 
    <img src="http://www.dummyimage.com/100x150/ffff00/fff" /> 
</div>​ 
<div> 
    <img src="http://www.dummyimage.com/100x50/ffff00/fff" /> 
</div>​ 

CSS:

div { 
    max-height: 100px; 
    border: solid 5px #555555; 
    overflow: hidden; 
    display: inline-block; 
} 

img { margin-bottom: -5px; }​ 

-

  • дисплей: встроенный блок и границы добавлены в Див так граница будет обертка вокруг изображения
  • в недостаточной мере внизу добавлено к img so дополнительный пробег скрыт
+0

в этом случае, если изображение имеет высоту 50 пикселей, тогда оно показывает 2 нижних границы. – xRobot

+0

О, это правильно, поэтому вам действительно нужно установить границы div, а не img. –

+0

Обновленный код находится здесь: http://jsfiddle.net/Vn4PM/5/ –