2015-10-26 3 views
1

У меня есть <div>, внутри которого есть изображение и пролет. Как этоКак сделать подпись в середине и середине изображения?

<div class = "image"> 
    <img src = "example.png" alt="myimage"> 
    <span class = "caption"> 
     Hello World.! 
    </span> 
</div> 

CSS-я написал это:

.image { 
    position: relative; 
    text-align: center; 
    display: table; 
} 
.caption { 
    position: absolute; 
    left: auto; 
    background: black; 
    padding: 10px; 
    color: white; 
    left: 50%; 
    top: 50%; 
} 

Это работает, но когда я добавить текст в .caption мне нужно вручную уменьшить left: x%;. Есть ли способ сделать его средним по центру изображения? Я новичок в CSS. Заранее спасибо.

+0

сделайте это подшивку шириной 100% и сделайте ее центральным выравниванием – Shailesh

+0

@ShaileshPatel no. Это не помогло! –

+1

Вы указали 'left' дважды для класса _caption_. Это не поможет. –

ответ

3

Да, это так.

.caption { 
    position: absolute; 
    left: 50%; 
    top: 50%; 
    transform: translate(-50%, -50%); 
} 

Прожиточный (ажи) jsfiddle.

+1

Работает ли это со всеми браузерами.? –

+0

Там вы можете проверить: http://caniuse.com/#feat=transforms2d – makshh

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