Jump to content
  • 0

Единая ссылка


Barsam
 Share

Question

Коллеги, здравствуйте!

Есть такая конструкция:

<a href="#"><img src="pic.png">Ссылка на пик</a>

Допустим высота изображения 50px;

Как выравнить текст относительно середины изображения по высоте.

|____________|

|____________|

|__pic.png____| Ссылка на пик

|____________|

|____________|

Оговорюсь сразу, что вопросы с применением JavaScript, jQuery и т. п. не интересуют.

Просьба помочь решить проблему чисто с точки зрения вёрстки.

Благодарю за помощь!

Edited by Barsam
Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

vertical-align: middle

http://jsfiddle.net/usfe/vk7HC/1/

Это первое, что я попробовал. В моём проекте не работает.

В этом макете всё красиво, но в макете выравнивается по нижней кромке картинки.

Вообще мне надо оптимизировать под IE8, но и в FireFox 16 тоже самое.

Код выгляди примерно таким образом.


<table>
<tr>
<td>
<a href="#"><img src="https://si0.twimg.com/profile_images/1139325452/logo-support.png"><span>Ссылка на пик</span></a>
</td>
</tr>
</table>

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

Сразу отвечу на один вопрос. vertical-align: middle ничем не пререкрывается.

Вот что выдаёт фаербаг:


font-family Tahoma,Arial,sans-serif
font-size 12px
font-weight 400
font-style normal
font-size-adjust none
color #474747
text-transform none
text-decoration none
letter-spacing normal
word-spacing 0
line-height 14px
text-align left
—--vertical-align middle——--
direction ltr
text-overflow clip
background-color transparent
background-image none
background-repeat repeat
background-position 0 0
background-attachment scroll
opacity 1
width auto
height auto
top auto
right auto
bottom auto
left auto
margin-top 0
margin-right 0
margin-bottom 0
margin-left 0
padding-top 0
padding-right 0
padding-bottom 0
padding-left 0
border-top-width 0
border-right-width 0
border-bottom-width 0
border-left-width 0
border-top-color #474747
border-right-color #474747
border-bottom-color #474747
border-left-color #474747
border-top-style none
border-right-style none
border-bottom-style none
border-left-style none
box-shadow none
position static
display inline
visibility visible
z-index auto
overflow-x visible
overflow-y visible
white-space nowrap
clip auto
float none
clear none
cursor pointer
list-style-image none
list-style-position outside
list-style-type none
marker-offset auto

Link to comment
Share on other sites

  • 0
но в макете выравнивается по нижней кромке картинки.

Значит, что-то перебивает этот vertical-align. Проверьте файрбагом, что именно. Чудес не бывает, у всего есть рациональные объяснения... как правило :)

  • Like 1
Link to comment
Share on other sites

  • 0

Так нет?

<a href="#"><img align="middle" src="http://lorempixel.com/400/200/sports/1/">Ссылка на пик</a>???????????

Не поверите, но даже так не работает.

Это полтергейст?

но в макете выравнивается по нижней кромке картинки.

Значит, что-то перебивает этот vertical-align. Проверьте файрбагом, что именно. Чудес не бывает, у всего есть рациональные объяснения... как правило :)

<span style="vertical-align: middle !important;">Ссылка на пик</span>

Фаербагом проверил почти сразу же. Всё на месте, ничем не перекрывается.

как правило - видимо как раз тот самый случай...

лучше ссылку на рабочий вариант дайте

Дал бы, но не могу (нет физического пути, да посадят меня...). Сайт является внутренним порталом.

Edited by Barsam
Link to comment
Share on other sites

  • 0

Нет, не блочный. Тем более я кидал выписку из фаербага.

Но я разобрался в чём проблема. Вот сейчас решаю.

Дело в том, что ссылка находится в td. В td картинка выравнивается по верхнему краю, а ссылка по нижнему.

Да, картинка находится в ссылке, но по фаербагу, она выходит за рамки ссылки. Блок ссылка по высоте включает в себя только текст, а по ширине - и текст и часть картинки.

Link to comment
Share on other sites

  • 0

Попробуйте с меньшего.

Удалить все лишнее с вашей страницы.

Оставить только ту ссылку с картинкой и поэтапно добавлять элементы + стили.

Это не представляется возможным. Проект является гигантским проектом на ASP. Тут не одна страничка, а огромное количество кусочков, подключаемых css и т. д.

Link to comment
Share on other sites

  • 0
float:left; если изображение перед ссылкой

Это как раз верный способ отправить выравнивание фтопку, как только картинка окажется другой высоты. Наличие таблицы на vertical-align потомков ссылки не влияет.

В Опере вертикальное выравнивание в строке, бывало, могло ломаться при Transitional-доктайпах, но в Firefox подобного не видал...

ссылка по высоте включает в себя только текст, а по ширине - и текст и часть картинки

Это нормально, инлайновое форматирование так и работает.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy