Блог Дмитрия Волотко - Это нормально © Подпишись на обновления!

Решение проблемы с длинными заголовками.

Вы наверняка не раз видели, что в колонке, к примеру, с названиями последних топиков на форуме порой происходят неприятные метаморфозы. Выглядит это примерно так (с вашего позволения немного симулирую :)).

  • Проблемы с новым компью…
  • Почему не работает float:le…
  • Как решиться жениться за…

Неопрятно, правда? Есть куча решений, но мне в голову пришло ещё одно (может не только мне?).

Сначала посмотрите реализацию моей идеи. Посмотреть можно нажав сюда.

Теперь выясняем что нам нужно из инструментов:

  1. переменная, к примеру, $nametopic[2];
  2. png’шка (она расположена тут);
  3. средство человеческой обработки PNG для IE5-6 (я использую CSS – expression);
  4. код, который вы увидите ниже;

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

Это простая схема того, как я решил эту задачу. Ниже код.

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>
<html xmlns=»http://www.w3.org/1999/xhtml» xml:lang=»en» >
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=UTF-8″ />
<title>absolvo.ru</title>
</style>
<style type=»text/css»>
body {
background:#fff;
}
h2 {
background:#fff;
font:18px verdana, serif;
margin:0;
position: relative;
overflow: hidden;
width: 200px;
white-space:nowrap;
}
div {
background:#fff;
font:18px verdana, serif;

}
h2 span {
position: absolute;
left:100px;
width: 100px;
height: 20px;
background: url(http://absolvo.ru/tmp/1/bg.png);
background-position: right;
background-repeat: no-repeat;

}
.png { filter:expression(PNG(this)) }
</style>
<!– Для любимых IE5-6 –>
<script language=»javascript» src=»png.js»></script>

</head>

<body>
<h2 title=»<?php echo $nametopic[2]; ?>»><span class=»png»></span><?php echo $nametopic[2]; ?></h2>
<div><?php echo $nametopic[2]; ?></div>
</body>
</html>

Мне видится это хорошим решением.

Так же можно почитать:

# 24 марта 2008 в 15:13

Corbis

Ваше решение не работает в осле шестом.

# 24 марта 2008 в 15:14

Corbis

Хотя нет. Беру слова обратно.
На локале не работает.)

# 24 марта 2008 в 15:17

Волотко Дмитрий

2_Corbis
png.js на локалку возьмите – думаю будет и на локали работать.

# 25 марта 2008 в 21:10

Волотко Дмитрий

Немного исправил код:
left:100px;
width: 100px;

Вместо:
width: 100%;

# 27 марта 2008 в 16:11

Mordraug

Это не решение, а скорее украшение проблемы, чтобы в глаза не бросалось слишком. Красиво, не спорю, но решением было бы при выводе обрезать заголовок не по количеству символов а по концу слова, в котором количество символов привысило лимит.

# 22 мая 2009 в 11:28

mihdan

Насколько мне известно данное решение используется в гугле уже давным-давно



* Должны быть заполнены. Кстати, nofollow в комментариях отключен.
Из-за дикого спама, и нежелания ставить капчу включена функция «Автор должен иметь ранее одобренные комментарии».




Да, меня тоже утомили спамеры, и так как мне лень решать этот вопрос на стороне сервера, то этот вопрос решите мне вы. Извините.

Сделаете то, что вас просят на картинке, хорошо? Это, типа, вместо кнопки «Отправить»

counter