На моем веб-сайте изображение баннера имеет определенную высоту (адаптивную), но имеет оверлей (#vignette), который вложен внутри тега a вместе с изображением баннера. #vignette получает высоту от своего родителя:

#vignette  {
    box-shadow: inset 0 0 50px 4px rgba(0,0,0,0.35), inset 0 10px 10px rgba(0,0,0,0.05);
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
}

А тег a регулирует высоту в соответствии с содержимым:

a#banner-image {
    display: block;
    position: relative;
    width: auto;
    height: auto;
}

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

4
Bram Vanroy 28 Июн 2012 в 15:09

1 ответ

Лучший ответ

Убедитесь, что img отображается как блочный элемент.

a#banner-image img {
    display: block;
}

Как правильно утверждает @Ianzz, это из-за проблемы с пространством подстрочного элемента для всех встроенных элементов.

16
Greg 28 Июн 2012 в 15:12
1
Это проблема не с соседними пробелами, а с пространством подстрочного элемента для всех встроенных элементов.
 – 
lanzz
28 Июн 2012 в 15:12
Спасибо! Никогда не подумайте, что img не будет отображаться как блок.
 – 
Bram Vanroy
28 Июн 2012 в 16:49