2015-01-09 6 views
0

Я пытаюсь поместить текст поверх изображения, как так:CSS Текст поверх изображения

.gallery-image { 
 
    position: relative; 
 
} 
 
h2 { 
 
    position: absolute; 
 
    top: 200px; 
 
    left: 0; 
 
    width: 100%; 
 
} 
 
h2 span { 
 
    color: white; 
 
    font: bold 24px/45px Helvetica, Sans-Serif; 
 
    letter-spacing: -1px; 
 
    background: rgb(0, 0, 0); 
 
    background: rgba(0, 0, 0, 0.7); 
 
    padding: 10px; 
 
}
<div class="gallery-image"> 
 
    <a href="#"> 
 
    <img src="image.jpg" width="280"> 
 
    </a> 
 
    <h2><span>Text</span></h2> 
 
</div>

, но мой текст выходит за изображение, что я могу сделать, чтобы исправить это?

+1

https: // developer.mozilla.org/en-US/docs/Web/CSS/z-index – melancia

+1

Ваш код отлично работает, я не вижу текст над img ... но если это так, используйте предложение @MelanciaUK – DaniP

+2

С (или даже, по-видимому, без) действительного изображения src, th Для меня текст появляется поверх изображения. – j08691

ответ

6

Отрывок работает для меня, во всяком случае:

  • Дайте img в z-index: 2;

  • И h2z-index: 3;

+1

Я поддержал вас, потому что вы предложили реалистичные цифры 'z-index'. Мне не нравится видеть «9999999» и т. Д., Так как реалистично будут другие элементы «9999998», расположенные под этим одним -_-. – mattytommo

+6

Вы правы в одном: пример в порядке. но «образ» не позиционируется, поэтому «z-index» ничего не собирается делать, например, в этом скрипте 'img' имеет' z-index' из 4, 'h2' имеет один из 2, ничего не меняется: [ПРИМЕР] (http://jsfiddle.net/qba7htoc/) – jmore009

+0

Как уже упоминалось: «Для ** помещенного ** поля свойство« z-index »указывает« Источник: http: //www.w3 .org/TR/CSS21/visuren.html # z-index – secelite

0

.container { 
 
    position: relative; 
 
} 
 
h2 { 
 
    position: absolute; 
 
    bottom: 10%; 
 
    background: darkgray; 
 
    padding: 1%; 
 
    color: white; 
 
}
<div class="container"> 
 
    <img src="http://placekitten.com/g/200/300" alt="" /> 
 
    <h2>THIS text</h2> 
 
</div>

Что-то вроде этого? Я только что написал тег h2, избавившись от необходимости использовать этот тег span и уменьшив разметку.

+0

@ jmore009: Я на самом деле просто тестировал это (заменив их image.jpeg). – jbutler483

0

Я чувствую, что это требует некоторого объяснения.

пример работает, но если это на самом деле не работает для OP, он/она может использование z-index а просто позвонив z-index на img тег не будет работать, как demonstrated here. Изменение z-index как изображения, так и h2 не будет иметь эффекта.

z-index работает только с позиционируемыми элементами. Поскольку родительский элемент равен position:relative, вы можете использовать position: inherit на одном из своих детей (или просто установить позицию). В этом случае img заворачивают в якорной тег:

<a href="#"> 
    <img src="image.jpg" width="280"> 
</a> 

Так применяя z-index к img тег не имеет смысла в любом случае. Вместо того, чтобы добавить его в a:

a{ 
    position: inherit; 
    z-index: 2; 
} 

Теперь, если вы измените z-index значения h2 и a вы увидите элемент с более высоким z-index число выйти вперед:

EXAMPLE

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