Jump to content
  • 0

И снова вертикальное выравнивание


Gaspode
 Share

Question

У меня вот задача: четыре блока в ряд, каждый блок целиком — ссылка. Текст выровнен по центру. Сейчас так сделано:

<nav class="extra__list">
<a class="extra__unit extra__unit_view_1" href="#ex1">Раз</a>
<a class="extra__unit extra__unit_view_2" href="#ex2">Два</a>
<a class="extra__unit extra__unit_view_3" href="#ex3">Три</a>
<a class="extra__unit extra__unit_view_4" href="#ex4">Четыре</a>
</nav>

.extra__list { display: table; width: 100%;}
.extra__unit { display: table-cell; height: 122px; width: 25%; text-align: center; vertical-align: middle; font-size: 24px; border-radius: 3px; padding: 0 30px;}

Всё бы хорошо, но тут выяснилось, что нужно позиционирование относительно этих блоков. Что делать?

line-height руками подбирать — не вариант, потому что текста разное количество в каждом блоке и в любой момент может измениться.

Картинки приложу. Вот что сейчас есть:

a20c01a7ca21682553f91da494ba704b.jpg

а вот такая реакция на наведение мне нужна:

cb4508c4a213aaa86421a6f5f50620ee.jpg

Тень — фиг с ней. Сам этот зум как сделать? Я в тупике.

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

У меня получилось нечто вроде

.extra__list { 
display: table;
width: 100%;
}
.extra__unit {
display: table-cell;
height: 122px;
width: 25%;
text-align: center;
vertical-align: middle;
font-size: 24px;
border-style:solid;
border-width:10px 5px;
border-color:#FFF;
background:green;
}
a:hover {
border-color:green;
}

Но тут отступы между блоками, никакой бордер-радиус и проч

Зато просто :)

Link to comment
Share on other sites

  • 0

Насчет выцеливания блоков одновременно маржинами и position не знаю, хорошо ли это, но за фокус с псевдоэлементом, плюс :)

Получается, что мы можем в любом диве отцентировать текст по вертикали.

upd эх, не все так гладко оказалось. Но все равно прикольно, я даже и не задумывался никогда, чтобы так сделать. Может еще надо покопать в этом направлении, глядишь, что и выйдет. Голова только уже не соображает :)

Edited by Softlink
Link to comment
Share on other sites

  • 0

Если абстрагироваться от формы круголков при наведении, без допоберток получилось как-то так. В старье, естественно, "изяшная деградация".

letter-spacing: -0.31em;

word-spacing: -0.43em;

Это черная магия. Letter-spacing тут ни при делах, за пробелы отвечает word-spacing, а от бага в вебкитах помогает как раз display:table для контейнера. Хотя в данном случае, поскольку шрифт ссылок всё равно в пикселях задается, можно и font-size контейнеру обнулить, грубо, но действенно. Если уж от человеческого решения — честно убрать злополучные пробелы в коде — какие-то высшие соображения отталкивают... ;)

  • Like 1
Link to comment
Share on other sites

  • 0

SelenIT, здорово! А можно как-нибудь зафиксировать размер ячеек, чтобы они не прыгали при наведении? Тьфу, извиняюсь, затупил...

Хм, а по-моему резонный вопрос. Скачут же.

Link to comment
Share on other sites

  • 0

Скачут не ячейки, скачет текст (из-за шрифта при наведении). Ячейки распирает только при сжатии таблицы донельзя, когда самое длинное слово упирается в паддинги (можно при наведении их просто уменьшить хоть до нуля).

А вот border-collapse: collapse в FF9 дает забавный фичеглюк :)

Кстати, если под новые браузеры — можно же, по идее, "в лоб" transform заюзать (а под IE8 попробовать старый добрый zoom либо фильтры)...

Link to comment
Share on other sites

  • 0

Если абстрагироваться от формы круголков при наведении, без допоберток получилось как-то так. В старье, естественно, "изяшная деградация".

У меня была идея с добавлением на ховере псевдоэлемента с тенью, но я отказался от нее, т.к. все упирается в фон. Оно же подходит только для однородного. :)

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