Часто сталкиваюсь с тем, что нужны маленькие кусочки кода, которые помогут улучшить юзабилити сайта. Здесь постараюсь собирать то, что мне когда-то пригодилось. Возможно, пригодится и Вам.
|
Главная » Блог
Часто сталкиваюсь с тем, что нужны маленькие кусочки кода, которые помогут улучшить юзабилити сайта. Здесь постараюсь собирать то, что мне когда-то пригодилось. Возможно, пригодится и Вам. Делаем красивые картинкиИтак, в прошлые дни я писал про CSS - как улучшить внешний вид страниц и т.д. Сегодня я хочу написать про улучшение картинок на сайте. Опять же улучшать картинки мы будем с помощью CSS. Всё что нам понадобится - это тэг <span> и добавление фоновой картинки для создания эффекта перекрытия. Это очень простой, но эффективный способ улучшить оформление картинок. Посмотрите на demo на сайте webdesignerwall.com. В нем представлено 20 различных стилей - от простых иконок на картинках до эффектов закругленных углов и наложения дополнительных слоев на картинки. Так в чем радость от картинок при обработке с помощью CSS?
Базовый набор (смотрите демо)Вам необходимо вставить дополнительный тэг <span> внутри тэга <div>. При этом <div> у нас будет использоваться для создания эффекта наложения картинок, а <span> поможет вывести всякую ерунду :)
Теперь в CSS (об этом надо обязательно помнить!) указываем для элемента div свойство position:relative, для элемента span указываем position: absolute. Теперь элемент span можно расположить как угодно, используя свойство top и left. Маленький хак для IEТак как IE6 не умеет показывать прозрачность в png картинках, то я рекомендую использовать фикс http://www.twinhelix.com/css/iepngfix/. Скачайте себе копию данного фикса (iepngfix.htc) и вставьте следующий код между тэгами <head>: <!--[if lt IE 7]>
<style type="text/css">
.photo span { behavior: url(iepngfix.htc); }
</style>
<![endif]-->
Меняем внешний видЧтобы поменять внешний вид оформления картинок, теперь достаточно чуть чуть поправить CSS (а именно значения для <span> и <div>). На демо показаны 15 различных стилей, которые вы можете взять на вооружение. Маленькая помощь со стороны jQueryВозможно, вам не очень нравится вставлять в свои шаблоны пустые тэги <span>. Поэтому ниже приведем код на jQuery, который поможет решить этот маленький конфликт. Вставьте код, написанный ниже, где-нибудь между тэгами <head> и он автоматически добавит пустой <span> ко всем картинкам: <script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//prepend span tag
$(".photo a").prepend("<span></span>");
});
</script>
#1 - Пример галлереи (демо)Итак, используем технику из предыдущего шага для того, чтобы создать простейшую галлерею.
#1а - Мини-иконки (демо)Этот пример показывает как расположить различные иконки на картинках (для каждой иконки используется свой имя и класс в CSS)
#2 - Фотография с текстом (демо)Этот пример показывает как создать галлерею с подписями к картинкам (используется тэг <em>)
#2а - Всплывающий текст (демо)
#3 - Скрепка на фотографии (демо)
#4 - Пример "приклеивания" картинки с помощью скотча (демо)
Демо с sIFR (Flash Text Replacement)Этот пример использует sIFR для замены содержимого тэга <em> на рукописный шрифт (в этой деме, тэг <span> добавляется с помощью jQuery)
#4а - Добавляем текст на скотч (демо)
#5 - Посетим выставку? Добавим рамку для картин (демо)
#5а - другой пример рамки. (демо)
#6 - Акварель (демо)
sIRF версия акварели (демо)
#7 - Добавим гламура (демо)
#8 - Деревянная панель (демо)Этот пример показывает как можно добавить общий фон для всех элементов, чтобы создать галлерею на деревяной панели. Используются тэги <il>, <li> и <em>
16.03.2010
CSS : фреймворк ScaffoldДо этого мы рассматривали базовые элементы CSS для создания симпатичных сайтов. А теперь пришло время рассмотреть один фреймворк (framework), который позволит несколько облегчить работу с CSS. Название этому фреймворку Scaffold. Данный фреймворк написан на PHP и несколько расширяет возможности стандартных CSS - так, например, Вы получаете:
Для начала работы с Scaffold достаточно скачать дистрибутив, распаковать его в корень папки, где у Вас хранятся CSS файлы (в состав будет входить файл .htaccess и сама папка с Scaffold). Данный .htaccess файл позволит автоматически перенаправлять все запросы сервера к css файлам на обработку через Scaffold. После проделывания данной процедуры, Вы сразу получаете следующие возможности: Импортирование других файловДля этого достаточно в CSS написать @include 'filename.css'; Наследование классовЕсли теперь в CSS файле мы напишем что-то вроде: body {
color : #fefefe;
font: 12px Helvetica;
div
{
color: #000;
background: #fff;
a {
padding: 5px;
}
}
}
То после обработки кода Scaffold выдаст примерно такой css: body {
color : #fefefe;
font: 12px Helvetica;
}
body div
{
color: #000;
background: #fff;
}
body div a{
padding: 5px;
}
А если чуть-чуть доработать исходный css до такого вида: body {
color : #fefefe;
font: 12px Helvetica;
div
{
color: #000;
background: #fff;
a {
padding: 5px;
&: hover {color: yellow;}
}
}
}
То на выходе мы получим body {
color : #fefefe;
font: 12px Helvetica;
}
body div
{
color: #000;
background: #fff;
}
body div a{
padding: 5px;
}
body div a:hover{
color: yellow;
}
Как Вы могли заметить - добавилась конструкция &:hover в тэге a. Селектор & позволяет обратиться к предку (в данном примере к a). КонстантыДопишем наш изначальный код до примерно такого вида: @constants {
body_color: #fefefe;
}
body {
color : !body_color;
font: 12px Helvetica;
}
Как видите, добавился новый оператор @constants, в котором мы задали одну единственную константу под названием body_color. Использование самой консатнты в селекторах происходит через ! (восклицательный знак). Соответственно после "компиляции", выходной css будет выглядеть так: body {
color : #fefefe;
font: 12px Helvetica;
}
Думаю объяснять для чего нужны константы смысла особого нет, т.к. любой может догадаться, что гораздо удобнее где-то в одном месте поменять значение для, например, цвета шрифта, и он автоматически будет изменен во всех css селекторах. ВыраженияЕще одна плюшка, которая появляется при использовании Scaffold - это возможность использовать выражения для подсчета каких-либо значений. Выражения в Scaffold пишутся с помощью "команды" #[выражение]. Например код: body {
color : #fefefe;
font: 12px Helvetica;
padding: #[10*5]px;
}
Даст примерно такой результат: body {
color : #fefefe;
font: 12px Helvetica;
padding: 50px;
}
Конечно, перемножать два заранее определенных значения не так интересно (ведь 5 на 10 мы и руками можем умножить), но только представьте, что мы, к примеру, задаем ширину контейнера, который содержит 5 картинок. При этом нам, вдруг, захотелось изменить их ширину. Для этого мы изначально задаем в консанте ширину картинки, а в контейнере вычисляем ширину с помощью перемножения константы (ширины картинки) на 5 (число картинок). Таким образом, в следующий раз, когда понадобиться внести изменения в ширину (например) картинки, достаточно сделать изменение только в константе, а все остальные значения будут персчитаны автоматически. @constants {
body_color: #fefefe;
global_padding: 10;
}
body {
color : !body_color;
font: 12px Helvetica;
padding: #[!global_padding * 5]px;
}
Результат компиляции будет выглядеть примерно так: body {
color : #fefefe;
font: 12px Helvetica;
padding: 50px;
}
"Смешение"Теперь перейдем к еще более интересной "плюшке". На английском она называется "mixin", что на русский я перевел бы как "смешение". Суть заключается в том, что мы можем задать какой-то шаблон (например вид границы) и во всех элементах, которым необходимо сделать границу, мы будем ссылаться на название данного шаблона. Думаю понятнее будет на примере: =bordered {
border: 1px solid #eee;
}
body {
+bordered;
color : !body_color;
font: 12px Helvetica;
}
Как видите, в коде появился шаблон с названием bordered. Результат выполнения кода: body {
border: 1px solid #eee;
color : !body_color;
font: 12px Helvetica;
}
Еще одна замечательная особенность данных "шаблонов", что в них можно передавать параметры, например: =bordered(!c) {
border: 1px solid !c;
}
body {
+bordered(#222);
color : !body_color;
font: 12px Helvetica;
}
В коде выше, мы передаем значение #222 как переменную в шаблон bordered. Результат выполнения кода: body {
border: 1px solid #222;
color : !body_color;
font: 12px Helvetica;
}
Так же можно задать значение по-умолчанию для шаблона. Давайте доработаем наш код до следующего: =bordered(!c = #eee) {
border: 1px solid !c;
}
body {
+bordered(#222);
color : !body_color;
font: 12px Helvetica;
}
div {
+bordered;
}
И результат будет таким: body {
border: 1px solid #222;
color : !body_color;
font: 12px Helvetica;
}
div {
border: 1px solid #eee;
}
Сам Scaffold идёт с целым набором шаблонов по-умолчанию. Например: body {
+reset-border-model;
color : #fefefe;
font: 12px Helvetica;
}
Даст такой результат: body {
margin: 0;
padding: 0;
border: 0;
color : #fefefe;
font: 12px Helvetica;
}
Дополнительно о наборах шаблонов, идущих в Scaffold можно почитать на сайте Scaffold. Всё о чем я щас написал, можно посмотреть в видео, которое прикреплено ниже. Дополнительную информацию по Scaffold можно так же получить на родном сайте
11.03.2010
CSS : улучшение картинокВы можете улучшить внешний вид Ваших картинок на веб-страницах многими путями. Некоторые дизайнеры могут творить просто чудеса при создании шаблонов для картинок. Один из самых простых приемов - двойная граница. Этот прием не требует создания дополнительных картинок и полностью базируется на css. HTML код для картинки будет выглядеть примерно так: А CSS будет содержать примерно такой вид: img.double_border {
border: 1px solid #bbb;
padding: 5px; /*размер внутренней границы*/
background: #ddd; /*цвет внутренней границы*/
}
06.03.2010
CSS : Использование фоновых изображенийКраткий курс по темам CSS из учебника для начинающих: Фоновые изображения очень полезны при создании различных визуальных эффектов на сайте. Неважно - добавляете ли Вы фонофое изображение на всю страницу или же используете картинки для улучшения навигации - свойство background вдохнет жизнь в Ваши страницы. Только надо помнить следующие - настройки по-умолчанию для принтера не воспроизводят на печать фоновые изображения. Когда Вы создаете страницы для печати, всегда держите в голове - какие из элементов используют свойство background, а какие созданы с помощью тэга img. Использование больших фоновВ связи с тем, что мониторы изо дня в день становятся только больше, большие фоновые изображения так же приобретают популярность. Почитайте статью Nick La на WebDesigner Wall о том, как добиться эффекта, представленного на картинке ниже.
А так же советую прочитать статью на Webdesigner Depot о том "Что следует и чего не следует делать с большими фоновыми картинками" Замена текстаВозможно, Вы уже знаете, что не все веб-браузеры поддерживают кастомные шрифты, встроенные на вебсайте. Но при этом Вы можете заменить текст на картинку. Один из самых простых способов - использование значения text-indent : Наиболее часто используемый пример для заголовков. Этот прием заменяет все заголовки на странице на картинки: h1 {
background: url(home_h1.gif) no-repeat;
text-indent: -99999px;
}
Иногда Вам может понадобиться указать ширину и высоту для блока (или использовать display:block если это inline элемент) .replacethis {
background: url(home_h1.gif) no-repeat;
text-indent: -99999px;
width: 100%;
height: 60px;
display: block; /*--Нужно только для inline элементов--*/
}
Дополнительный материал по теме: CSS спрайтыЕсть небольшой приём, который получил название css спрайты. Он позволяет выводить на экран только небольшой кусочек одной большой картинки с помощью позиционирования фона (большая картинка обычно состоит из набора небольших пиктограмм, которые объеденены в одну большую картинку).
Чаще всего CSS спрайты используют для отображения различных состояний кнопок в навигации. Например, чтобы показать нажатую кнопку, выбранную и недоступную.
Так для чего же их использовать? Ответ достаточно прост - чтобы во-первых сократить скорость загрузки изображений (обычно одна большая картинка занимает меньше места, чем несколько маленьких), а так же уменьшить количество HTTP запросов, которые отправляются на сервер. Дополнительная информация по спрайтам:
06.03.2010
CSS : ПозиционированиеКраткий курс по темам CSS из учебника для начинающих: Свойство position (relative, absolute и fixed) - одно из наиболее мощных средств в CSS. Оно позволяет разместить элементы используя точные координаты, что даёт вам свободу в дизайне и выводит за границы привычных коробочных решений. Когда мы позиционируем элемент, то, по-сути, нам нужно знать три простых вещи:
При использовании position:relative элемент будет расположен в том месте, где он предполагался "по коду".Например, если элемент, изображенный на картинке, находится в левом верхнем углу, то указание переменным top и left значения 10px, сдвинет элемент от левого верхнего угла ровно на 10 пикселей вправо и на 10 пикселей вниз. Обычно, relative используется для указания "базовой точки" (координаты X и Y) для "абсолютно" (absolute) позиционированных элементов. По-умолчанию, начальная позиция для всех position:absolute элементов является (0:0) (левый верхний угол браузера). Если указать для родительского элемента position:relative, то у всех детей стартовая позиция будет отсчитываться уже от левого-верхнего угла родительского элемента, таким образом (0:0) - это уже левый верхний угол родительского элемента, а не браузера. Элементы с position:absolute могут быть расположены где угодно. Изначально, значение (0:0) для такого элемента - левый верхний угол окна браузера. На положение элемента никак не влияют float значения, а так же окружающие элементы. Элементы со значением position: fixed так же начинают отсчет от левой верхней границы браузера, с тем лишь различием относительно absolute, что fixed элементы располагаются в любом случае относительно окна браузера. То есть даже если пользователь будет прокручивать страницу, элемент останется на том же месте на экране. Значение z-index указывает на "этаж" на котором будет располагаться элемент. Чем больше значение, тем "выше" элемент (а значит его не будут перекрывать элементы, z-index которых меньше).
Дополнительные ссылки по теме:
03.03.2010
Показаны 1 - 5 из 14 статей | Страница 1 из 3 |
Облако тэгов:презентация для лифта
mba
фоновые изображения
букмекерская контора
li
кэш
framework
sprites
спрайты
билл гейтс
столы
обучение
vds хостинг
floats
пирамида
wireframe
переводы
долги
xen
klconvert
приметы
выступления
depp-at
нлп
идеи
align
румы
openvz
притча
harley-davidson
фспр
тренинг
коуч
расходы
картинки
spectra
background
татэкспо
static
jot
пример
ajax
реклама
list
margin
рефрейминг
хаусплеер
бюджет
онлайн
parallels virtuozzo containers
психология поведения
инвестиции
деньги
макс маршал
запрет покера
арбалет
покер
мои мысли
vmware
бизнес-план
absolute
padding
подбор персонала
бытовая химия
менеджмент
fixed
delphi
подбор исполнителей
финансы
php
сотрудники
метапрограммы
рыночные отношения
истории успеха
книги
scaffold
дети
modx
мои работы
клубы по интересам
ol
план по расходам
социальные отношения
css
маркетинг
дизайн
программирование
4 конверта
проститутки
relative
цены
личностный рост
кадровая политика
портфолио
доллар
заголовки
javascript
развлечение
поделки
турниры
работа
веб-студия
казань
обман
списки
история
коучинг
оборудование
продвижение
партнеры
heading
открытие клуба
text-align
прогноз
freebsd jail
стартапы
positioning
ul
бизнес
как открыть
доверие
виды бизнеса
положение
vdsmanager
карьера
привлечение игроков
Большие разделы
|