Архив за Ноябрь 2008

Динамические кнопки с использованием CSS

Сегодня рассмотрим способ создания графической кнопки, которая имеет два состояния: “по умолчанию” и “при наведении курсора”. Она может расширяться и сужаться в зависимости от текста, который содержит. Единственное ограничение - высота кнопки, которая ограничена высотой фонового изображения.

Наша кнопка основана на использовании тега <a> с вложенным в него тегом <span>, каждый из которых использует разные части фонового изображения. Для получения возможности растяжки фона при увеличении размера кнопки по горизонтали используется техника “раздвижных дверей“.

CSS:

a.squarebutton{
  background: transparent url('media/square-gray-left.gif') no-repeat top left;
  display: block;
  float: left;
  font: normal 12px Arial; /* Change 12px as desired */
  line-height: 15px; /* This value + 4px + 4px (top and bottom padding of SPAN)
                        must equal height of button background (default is 23px) */

  height: 23px; /* Height of button background height */
  padding-left: 9px; /* Width of left menu image */
  text-decoration: none;
}

a:link.squarebutton, a:visited.squarebutton, a:active.squarebutton{
  color: #494949; /*button text color*/
}

a.squarebutton span{
  background: transparent url('media/square-gray-right.gif') no-repeat top right;
  display: block;
  padding: 4px 9px 4px 0; /*Set 9px below to match value of 'padding-left' value above*/
}

a.squarebutton:hover{ /* Hover state CSS */
  background-position: bottom left;
}

a.squarebutton:hover span{ /* Hover state CSS */
  background-position: bottom right;
  color: black;
}

.buttonwrapper{ /* Container you can use to surround a CSS button to clear float */
  overflow: hidden; /*See: http://www.quirksmode.org/css/clearing.html */
  width: 100%;
}

HTML:

<h4>Single button:</h4>

<div class="buttonwrapper">
<a class="squarebutton" href="#"><span>Dynamic Drive CSS Library</span></a>
</div>

<h4>Side by Side:</h4>

<div class="buttonwrapper">
<a class="squarebutton" href="#"><span>Submit</span></a>
<a class="squarebutton" href="#" style="margin-left: 6px"><span>Reset</span></a>
</div>

Антикризисное письмо

Увидел на одном из форумов. Забавно.

Сотрудники “Студии Лебедева” получили “антикризисное” письмо за подписью управляющего студией Дениса Шохина. И по форме подачи, и по сути сообщения это письмо стоит того, чтобы быть процитированным полностью:

***

Чуваки!

Кризис в стране худо-бедно наступил. Дизайнерам, как известно, во время кризиса перестают платить деньги сразу вслед за рекламщиками. Я конечно счастлив, что огромное количество самодовольных кретинов наконец потеряют работу и перестанут кидать понты, но нас это тоже напрямую касается.

Поэтому, чтобы сохранить компанию и пережить кризис (а у нас есть такой положительный опыт), нужно сесть на небольшую диету. Основные расходы студии состоят из затрат на зарплату, производство, аренду и еду.

Каждый месяц мы тратим на еду 50 000 долларов. Это пиздец как дохуя, больше полумиллиона в год. Поэтому с 1 ноября отменяются бесплатные обеды. Приносите бутеры из дома, покупайте доширак, заваривайте личные каши в стаканах. Ходите в окрестные заведения за свой счет. Вечерние бутерброды и их заменители остаются - мы на них теперь будем тратить в полтора-два раза больше.

Каждый месяц мы тратим дофига денег на аренду помещений. Поэтому в скором времени мы можем отказаться от крыла на пятом этаже за стеклянной дверью - все, кто там сидят, переедут на первый этаж, а кто-то с первого - в большой зал.

Мы сократили финансирование производства и уменьшили тиражи.

До конца диеты нет смысла обсуждать увеличение окладов.

До конца диеты студия не выдает сотрудникам кредиты.

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

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

За работу, товарищи.

За последние два дня на собеседования на должность менеджеров проектов в студию пришло два инвестиционных банкира.

Всплывающие подсказки: плагин BetterTip для jQuery

Плагин BetterTip для jQuery позволяет создавать всплывающие подсказки на страницах вашего сайта. Вес скрипта вместе с CSS и картинками — 12кб, а в сжатом виде — 10кб.

Для начала подключаем в разделе head HTML-страницы три файла:

<link rel="stylesheet" type="text/css" href="css/jquery.bettertip.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.bettertip.js"></script>

JavaScript:

<script type="text/javascript">
    $(function(){
        BT_setOptions({openWait:250, closeWait:0, cacheEnabled:true});
    })
</script>

Параметры:

  • openWait — число миллисекунд, в течение которых пользователь должен держать курсор наведенным, чтобы всплыла подсказка (по умолчанию: 500)
  • closeWait — число миллисекунд, в течение которых подсказа должна оставаться видимой после того как пользователь отведет курсор с блока с подсказкой (по умолчанию: 0)
  • cacheEnabled — может принимать значения true либо false, определяет должен ли контент, вызываемый с помощью AJAX кешироваться (по умолчанию: true)

Всплывающие подсказки можно назначить для элементов <a> и <div>. Эти элементы должны иметь уникальный ID и класс с именем betterTip.

<a id="mylink" href="ajax.php?width=250" class="betterTip" title="$none">
    Dynamic tooltip an 'a' element
</a>

Для элемента <a> можно также задать заголовок подсказки с помощью атрибута title. Атрибут title, кроме обычного текста заголовка подсказки, допускает два специальных значения:

  • $none — у подсказки не будет заголовока
  • $content — у подказки будет заголовок, совпадающий с содержимым блока, на который наведен курсор.

Атрибут href отвечает за то, откуда будет загружаться контент подсказки. Дополнительно можно указать ширину блока с подсказкой; по умолчанию — 250px.

Если значение атрибута href начинается с символа $, это означает, что плагин BetterTip должен взять контент из другого элемента страницы. Например href=”$mydiv?width=500″ означает, что текст подсказки будет взят из элемента <div> с id=”mydiv” и ширина блока подсказки 500px. Иначе контент подсказки будет загружен с сервера с использованием AJAX.

<a id="mylink" href="$mydiv?width=500" class="betterTip" title="$content">
    Static tooltip an 'a' element
</a>
<div id="mydiv" style="display:none;">
    Here is the content for the tooltip!
</div>

Чтобы задать подсказку для элемента <div>, разместите элемент <a> внутри <div>:

<div class="betterTip" id="div1" style="background-color:#eeeeee;">
    <a id="a1" href="ajax.php?width=300" class="betterTip" title="$none"></a>
    Dynamic tooltip for a div
</div>

Элемент <a> внутри <div> нужен чтобы:

  • задать место, откуда будет загружаться контент подсказки;
  • указать заголовок подсказки.

Ссылки по теме: