Часто сталкиваюсь с тем, что нужны маленькие кусочки кода, которые помогут улучшить юзабилити сайта. Здесь постараюсь собирать то, что мне когда-то пригодилось. Возможно, пригодится и Вам.
|
Главная » Блог
Часто сталкиваюсь с тем, что нужны маленькие кусочки кода, которые помогут улучшить юзабилити сайта. Здесь постараюсь собирать то, что мне когда-то пригодилось. Возможно, пригодится и Вам. Делаем красивые картинкиИтак, в прошлые дни я писал про 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 |
Облако тэгов:фоновые изображения
билл гейтс
портфолио
презентация для лифта
личностный рост
css
стартапы
absolute
обман
scaffold
пирамида
delphi
padding
маркетинг
modx
клубы по интересам
притча
ol
коуч
веб-студия
истории успеха
психология поведения
подбор персонала
vds хостинг
менеджмент
vdsmanager
relative
klconvert
ajax
работа
align
план по расходам
арбалет
кадровая политика
background
php
кэш
поделки
партнеры
wireframe
бытовая химия
spectra
margin
метапрограммы
бизнес-план
text-align
долги
jot
framework
sprites
открытие клуба
коучинг
макс маршал
floats
запрет покера
тренинг
пример
дети
развлечение
бизнес
заголовки
покер
mba
списки
мои работы
приметы
деньги
мои мысли
выступления
4 конверта
спрайты
бюджет
турниры
подбор исполнителей
казань
букмекерская контора
доллар
история
list
сотрудники
картинки
инвестиции
нлп
как открыть
harley-davidson
программирование
привлечение игроков
рефрейминг
цены
расходы
javascript
проститутки
li
реклама
виды бизнеса
ul
fixed
фспр
static
продвижение
карьера
книги
depp-at
дизайн
freebsd jail
доверие
социальные отношения
татэкспо
positioning
parallels virtuozzo containers
финансы
обучение
рыночные отношения
оборудование
xen
идеи
vmware
heading
хаусплеер
положение
прогноз
румы
онлайн
переводы
openvz
столы
Большие разделы
|