70 приемов улучшения CSS верстки
15.05.2007 веб-стандарты, верстка, дизайн, css
CSS верстка далеко не всегда простая штука. В зависимости от вашего опыта и навыков CSS верстка может стать настоящим кошмаром, особенно, если вы не уверены, какие селекторы действительно применены к элементам данного документа. При создании семантически правильной разметки, простейший способ минимизировать запутанность кода — правильное и уместное использование как необходимых и хорошо знакомых, так и не очень атрибутов и свойств CSS.
Мы поближе рассмотрели наиболее интересные и полезные способы, методы, идеи, техники и решения и перечислили их ниже. Кроме этого, мы включили некоторые основные способы, используемые вами в повседневной работе, которые зачастую бывает просто сложно найти.
В итоге мы получили более 70 полезных и искусных методов, призванных улучшить качество CSS верстки. К конце статьи приведены соответствующие ссылки на статьи, посвященные данным методам.
Ну и хотим выразить особую благодарность всем дизайнерам—авторам и создателям этих методов, техник и идей.
1.1. Процесс: Начальный этап
-
После того, как готов эскиз(дизайн) сайта, начните с пустой страницы, наполненной контентом
Включите в нее header, навигацию, частично контент и footer. Потом добавляйте html разметку. Потом CSS. Подобный подход очень эффективен
. [CSSing] -
Сделайте reset всех свойств CSS
Часто может возникать необходимость задания дефолтных значений свойств элементам. Кому-то нравится задавать в самом начале CSS файла нулевые отступы и границы всем элементам. Eric Meyer’s Global Reset, Christian Montoya’s initial CSS file, Mike Rundle’s initial CSS file, Ping Mag’s initial CSS file.
[Roger Johansson] -
Используйте основную таблицу стилей (master stylesheet)
Наиболее распространенной ошибкой, которую мне часто приходилось наблюдать как у начинающих так и достаточно продвинутых разработчиков, это, то что и те и другие забывают удалять дефолтный стиль браузера. Это ведет к несовместимости и различию отображения дизайна в различных браузерах, вызывая негативные отзывы пользователей о разработчиках подобных сайтов. Естественно, это не совсем заслуженные упреки, но тем не менее, перед началом верстки любого сайта, не забывайте сбрасывать стиль и привести его к начальным значениям.
[Master Stylesheet: The Most Useful CSS Technique], [Ryan Parr]
master.css @import url("reset.css"); @import url("global.css"); @import url("flash.css"); @import url("structure.css");
<style type="text/css" media="Screen"> /*\*/@import url("css/master.css");/**/ </style>
- Создайте библиотеку полезных CSS классов. Полезна при отладке, но следует избегать в готовой версии (отделите разметку от представления). Поскольку можно использовать несколько классов для одного элемента (например,
<p class="floatLeft alignLeft width75">...</p>
) пользуйтесь ими при тестировании и отладке разметки. [Richard K. Miller]
CSS:
.width100 { width: 100%; } .width75 { width: 75%; } .width50 { width: 50%; } .floatLeft { float: left; } .floatRight { float: right; } .alignLeft { text-align: left; } .alignRight { text-align: right; }
1.2. Организация CSS кода
-
Систематизируйте ваши стили, используя главные таблицы стилей (master style sheets).
Систематизация CSS позволит вам легко обслуживать и поддерживать сайт в будущем. Начинайте с главной таблицы стилей. В этот стиль импортируйте
reset.css
,global.css
,flash.css
(по мере необходимости) иstructure.css
и возможно стиль со шрифтами. Здесь приведен пример «основной» таблицы стилей и способ включения ее в документ.
h2 { } #snapshot_box h2 { padding: 0 0 6px 0; font: bold 14px/14px "Verdana", sans-serif; } #main_side h2 { color: #444; font: bold 14px/14px "Verdana", sans-serif; } .sidetagselection h2 { color: #fff; font: bold 14px/14px "Verdana", sans-serif; }
- Систематизируйте свой стиль, используя комментарии. Разделите таблицу стилей на секции, например, Global Styles (body, параграфы, списки и т.д.), Header, Page Structure, Headings, гарнитуры шрифтов, формы, комментарии, дополнения. [5 Tips for Organizing Your CSS]
/* -----------------------------------*/ /* ---------->>> GLOBAL <<<-----------*/ /* -----------------------------------*/
- Систематизируйте свой стиль, создав ее содержание (TOC). Вверху CSS файла впишите содержание вашего стиля. Например, можно обозначить различные части CSS файла (header, main, footer и т.д.). Затем использовать не вызывающие сомнения разрывы для разделения секций в коде. [5 Steps to CSS Heaven]
-
Систематизируйте свой стиль, указывая свойства в алфавитном порядке.
Не знаю, откуда мне в голову пришла эта мысль, но я упорядочил в алфавитном порядке все свойства в CSS файле, и верите или нет, сейчас намного проще найти определенное свойство.
[Christian Montoya]
body { background:#fdfdfd; color:#333; font-size:1em; line-height:1.4; margin:0; padding:0; }
-
Объедините код в блоки.
Для некоторых это рекомендация не будет новой, но иногда я вижу в CSS файлы в кодом, не сгруппированным в «секции». Делается это для легкости обслуживания сайта в будущем, через недели, месяцы и даже годы после создания сайта. Вы будете тратить меньше времени на поиск классов и элементов, свойства которых необходимо изменить. Например,
[CSS Tips and Tricks]/* Structure */
,/* Typography */
и т.д. - Стремитесь к совершенству. Как только вы написали стиль, разбили его на секции, пора подумать, где расположить селекторы чтобы соблюдалась структура в вашей разметке. [Ryan Parr]
-
Разбейте созданную таблицу стилей на отдельные блоки.
Обычно я разбиваю таблицу стилей на отдельные блоки. Первый, это прямое декларирование элементов. Определение свойств для элемента
. [Jonathan Snook]body
, стиля ссылок, некоторых заголовков , сброс границ и отступов и т.д. […] После декларирования элементов, я декларирую классы, такие как сообщения об ошибках, сносках и пр. […] Я начинаю декларировать основные контейнеры и затем описываю стили для элементов внутри этих контейнеров. Очень быстро я могу найти, почему моя страница выглядит криво и поправить любую неточность. Я так же декларирую все контейнеры, даже если они не имею специфических свойств
1.3. Процесс: Работаем с ID, классами, селекторами и свойствами.
-
Сведите к минимуму кол-во контейнеров
Не допускайте разрастания структуры вашего документа. Начинающие разработчики используют слишком много элементов
[Ryan Parr]div
, подобно вложенным таблицам. Рассмотрите все варианты и попробуйте обойтись от дополнительных элементовdiv
, используя лишь средства CSS. -
Сведите кол-во свойств к минимуму..
Используйте CSS разумно. Под данным правилом может быть целый ряд подправил: если в добавлении нового правила нет необходимости, не добавляйте это правило; если вы не уверены в правильности добавления правила, не добавляйте его; если вы чувствуете, что одно и тоже правило слишком часто используется, подумайте, как обозначить его только в одном месте.
[CSSing] -
Сведите кол-во селекторов к минимуму.
Избегайте ненужных селекторов. Чем меньше селекторов вы используете, тем реже вам придется переопределять стиль - а это означает простоту в решении каких бы то нибыло проблем.
[Jonathan Snook] -
Сведите кол-во хаков к минимуму
Не пользуйтесь хаками, если это только не известный и задокументированный баг. Это достаточно важный момент, поскольку зачастую разработчики применяют хаки, там где вполне можно обойтись и без них. Если вы предполагаете использовать хаком, попробуйте сначала воспользоваться поиском и решить проблему другим способом.
[10 Quick Tips for an easier CSS life] -
Используйте константы CSS для более быстрой разработки стиля.
Константы -- это фиксированные значения, использующиеся и повторяющиеся в вашем коде. [..] Единственный способ восполнить недостаток констант в CSS это создать некоторые закомментированные определения в начале CSS файла, обозначив их как «constants». Наиболее часто константы используются для создания «словаря цвета». Т.е. у вас есть справочник использующихся на сайте цветов, для избежание повторений и ошибок. Если вам необходимо изменить цвета, то у вас всегда есть список для редактирования и замены по всему CSS файлу.
[Rachel Andrew]
# /* # Dark grey (text): #333333 # Dark Blue (headings, links) #000066 # Mid Blue (header) #333399 # Light blue (top navigation) #CCCCFF # Mid grey: #666666 # */
- Используйте общепринятую систему наименований. Имея систему наименований для ID и классов сэкономит вам кучу времени при поиске ошибок и обновлении документа. Особенно это касается больших CSS файлов. Я рекомендую использовать модель
parent_child
. [10 CSS Tips] -
Давайте названия классам и ID правильно, в соответствии с семантикой.
Мы хотим избежать названий, предполагающих аспекты представления (presentational aspects). В противном случае, если мы дадим название подобное right-col, вполне возможно, что CSS впоследствии изменится и наш «right-col» не будет правой колонкой, а переместится влево, например. Это приведет к некоторой путанице в будущем, поэтому, лучше избегать подобной системы именования вообще. [Garrett Dimon]
-
Группируйте селекторы, имеющие общие атрибуты.
Группируйте селекторы. Когда несколько ID, классов и элементов используют одинаковые свойства, имеет смысл группировать их через запятую, чтобы не указывать по отдельности. Это хорошо экономит место, много места. [Roger Johansson]
-
Если вы будете использовать какое-то свойство много раз, отделите его.
Если вы собираетесь использовать одно и то же свойство неоднократно, то отделите его в отдельный стиль. Этим вам не придется его прописывать несколько раз и за раз менять его свойство по всему сайту.
[5 Steps to CSS Heaven] - Названия ID и классов давайте как можно выше в структурной иерархии документа. Стремитесь придумывать контекстуальные селекторы. Не бойтесь называть селекторы словосочетаниями. Длинные названия легче читаются и проще понимаются. [Chric Casciano]
-
Научитесь использовать каскадную природу CSS.
Скажем, у вас есть два похожих блока на сайте, но с небольшими отличиями -- у вас есть возможность записать стиль в CSS для каждого блока отдельно, или для обоих сразу, а затем для каждого из них добавить свой собственный стиль.
[5 Steps to CSS heaven] -
Пользуйтесь полезными тэгами, типа
<small>
,<em>
и<strong>
.Часто в вашем дизайне есть секция, в которой вес шрифта или вид должен меняться на одной строке. Попадая на случайные
Потому пользуйтесь семантическими тэгами. [Mike Rundle’s 5 CSS Tips]div
'ы и классы мне кажется они не будут семантическими и противоречат назначению вашего xhtml кода в любом другом месте.
1.4. Процесс: Используйте сокращения
-
Сокращайте шестнадцатеричные (hexadecimal) названия цветов.
#000 тоже самое, что и #000000, #369 тоже самое, что и #336699
. -
Определите псевдо классы для ссылок в порядке LoVe/HAte (Link, Visited, Hover, Active).
Для того, чтобы быть полностью уверенным в правильности отображения ваших ссылок, располагайте стили в порядке “link-visited-hover-active” или “LVHA”. Если вас беспокоит псевдо класс фокуса, его можно вписывать внизу.
[Eric Meyer]
a:link { color: blue; } a:visited { color: purple; } a:hover { color: purple; } a:active { color: red; }
-
Определите границы и отступы элементов в порядке TRouBLed (Top, Right, Bottom, Left).
Границы, отступы и бордюры задаются по часовой стрелке, верх, право, низ, лево.
[Roger Johansson] - Можно использовать сокращенные формы записи. Использование сокращений для свойств
margin
,padding
иborder
сэкономит кучу места.
CSS:
margin: top right bottom left; margin:1em 0 2em 0.5em; (margin-top: 1em; margin-right: 0; margin-bottom: 2em; margin-left: 0.5em;)
CSS:
border:width style color; border:1px solid #000;
CSS:
background: color image repeat attachment position; background:#f00 url(background.gif) no-repeat fixed 0 0;
CSS:
font: font-style (italic/normal) font-variant (small-caps) font-weight font-size/line-height font-family; font: italic small-caps bold 1em/140% "Lucida Grande",sans-serif;
1.5. Процесс: Установка шрифтов
-
Для работы с единицами em как с px установите
font-size
дляbody
в размере 62.5%. Размер шрифтаfont-size
по умолчанию равен 16px; применяя это правило, вы получаете 1em приближенно равным 10px (16 x 62.5% = 10).Я намеренно установил размер шрифта в
[Jonathan Snook]body
равным 62.5%. Это позволяет думать в относительных единицах em как в px, например, 1.3em это 13px. -
Используйте универсальную кодировку.
[..] Смысл использования одной универсальной кодировки в том, чтобы охватить все возможные случаи. К счастью такая существует: UTF-8, основанная на Unicode, охватывающая символы всех языков. В страницу вставляется след. образом (код ниже)
[20 pro tips]
<meta http-equiv="content-type" content="text/ html;charset=utf-8" />
- При помощи CSS можно менять прописные буквы. Если что-то должно быть написано заглавными буквами, например заголовки, вместо переписывания текста, проще воспользоваться средствами CSS. Следующий код сделает во всех заголовках прописные буквы. [20 pro tips]
h1 { text-transform: uppercase; }
- Автоматически можно установить для текста малые прописные буквы small-caps. Свойство
font-variant
используется для задания small-caps, это значит, что все строчные буквы будут изменены на прописные, но размеров меньше, по сравнению с остальным текстом.
h1 { font-variant: small-caps; }
-
Определите font-families.
При декларировании определенного шрифта, мы предполагаем, что у пользователя установлен этот шрифт. Если же у него этого шрифта, он его не увидит, все очень просто. Потому все что нам придется сделать, это написать список шрифтов font-families, закончив его типовым шрифтом.
[Getting into good coding habits]
p { font-family: Arial, Verdana, Helvetica, sans-serif; }
-
Используйте высоту строки
line-height
1.4em - 1.6em.line-height:1.4
для строк, которые можно прочитать, приемлемой длины строки, не более 10 слов и цветов, обеспечивающих приемлемый контраст. Например, чистый белый и черный цвета обычно слишком сильные для ЭЛТ мониторов, потому я обычно использую не чисто белый#fafafa
и темно серый#333333
. - Установите 100.01% для
html
элемента. Данное необычное значение размера шрифта 100.01% компенсирует некоторые баги браузеров. Во-первых, установка размера шрифта в процентах (в отличие от em) устраняет проблему в IE/Win c пропорционально увеличивающимися или уменьшающимися шрифтами, если они были ранее указаны в em в других элементах. Кроме того, некоторые версии Opera нарисует 100%-й шрифт слишком уменьшенным по сравнению с другими браузерами. С другой стороны, Safari проблематично работает со шрифтом в 101%. Самым лучшим решением в данной ситуации будет использование размера 100.01%. [CSS: Getting into good habits]
1.6. Процесс: Отладка
-
Добавляйте границы, чтобы различить контейнеры.
Используйте дополнительные стили, такие как бордюры или фон при тестировании и выявлении ошибок, обозначая определенные контейнеры. Данный код
Можно также использоватьdiv { border:1px red dashed; }
работает великолепно. Кроме этого, существуют bookmarklets создающие границы и делающие другие полезные вещи.* { border: 1px solid #ff0000; }
. [Chric Casciano]. Добавление границ к определенным элементам поможет выявить нахлест и дополнительное пространство вокруг блока, которое без границ не заметно. [CSS Crib Sheet]
* { border: 1px solid #f00; }
- При поиске ошибки проверьте закрыты ли теги. [10 CSS Tips]
2.1. Технические тонкости: ID, Классы
-
1 ID на страницу, множество классов на страницу.
Не забывайте, только один элемент может иметь определенный id атрибут, в то время как ряд элементов может использовать один и тот же класс. [..] Имена классов и id могут содержать символы [A-Za-z0-9], дефис (-), не могу начинаться с дефиса или цифры (см. спецификацию CSS2). [Roger Johansson]
-
Имена элементов в селекторах чувствительны к регистру.
Помните о чувствительности к регистру. Когда CSS используется в XHTML, имена элементов в селекторах чувствительны к регистру. Во избежание ошибок, я рекомендую всегда использовать строчные буквы в селекторах.
[Roger Johansson] -
CSS классы и ID должны быть валидными.
Т.е. должны начинаться с буквы, а не цифры или подчеркивания. ID должен быть уникальным. Их имена должны быть generic(характерные для определенного класса), описывать функциоанльность, а не представление.
[CSS Best Practices] -
Одному элементу можно назначить несколько классов.
Можете назначить одному элементу несколько классов. Это позволит написать несколько правил для задания различных свойств и использовать их по мере необходимости.
[Roger Johansson]
2.2. Технические тонкости: Использование возможностей селекторов
Роджер Йохансон (Roger Johansson) написал серию крайне полезных статей -- CSS 2.1 Selectors. Эти статьи рекомендуются к прочтению всем. Некоторые наиболее ценные моменты приведены ниже. Имейте ввиду, что селекторы ‘>’ и ‘+’ не поддерживаются IE6 и более ранними версиями Internet Explorer
-
Можно использовать дочерние селекторы.
Дочерние селекторы нацелены непосредственно на следующий дочерний элемент. Дочерний селектор состоит из двух и более селекторов, разделенных символом "
[Roger Johansson]>
". Родительский находится слева от символа ">", вокруг которого допустим пробел. Следующее правило применяется к элементамstrong
, являющимися дочерними по отношению к элементуdiv
.
div > strong { color:#f00; }
- Можно использовать смежные adjacent sibling селекторы. Данные селекторы созданы из двух простых селекторов, разделенных символом "+", вокруг которого допустим пробел. Селектор соответствует элементу, являющемуся следующим потомком первого элемента. Элемент должен иметь одноименный родительский и первый элемент должен предшествовать второму элементу. [Roger Johansson]
p + p { color:#f00; }
- Можно использовать Attribute selectors. Attribute selectors соответствуют элементам, c заданными значениями атрибутов. Существует 4 способа обращения к Attribute selectors:
[att]
Соответствует элементам, имеющим атрибут "att", не обращая внимание на его значение.
[att=val]
Соответствует элементам, имеющим атрибут "att" со значением "val".
[att~=val]
Соответствует элементам, значения атрибутов "att" которых содержит список с пробелами и значение "val". В этом случае "val" не может содержать пробелы.
[att|=val]
Соответствует элементам, значения атрибутов "att" которых является списком с дефисным разделителем, начинающимся с "val". В основном используется для lang атрибутов (xml:lang в XHTML), таких как "en", "en-us", "en-gb", и т.д..
- Селектор в следующем правиле соответствует всем элементам
p
, имеющим атрибутtitle
, не взирая на значение этого атрибута:
p[title] { color:#f00; }
- Селектор соответствует всем элементам
div
, имеющим атрибутclass
со значениемerror
:
div[class=error] { color:#f00; }
- Несколько атрибутных селекторов могут использоваться в одном и том же селекторе. Это дает возможность элементу соответствовать нескольким атрибутам. Следующее правило будет применено ко всем элементам
blockquote
класс которых имеет значение "quote" и с любым значением атрибутаcite
:
blockquote[class=quote][cite] { color:#f00; }
-
Используйте селекторы потомков (descendant selectors).
Потомственность обеспечит чистоту и эффективность кода.
[Roger Johansson]
2.3. Технические тонкости: Стилизация ссылок
-
Аккуратно задавайте стили ссылкам при использовании якорей.
Если вы используете якоря в классическом виде (
[Dave Shea]<a name="anchor">
) они «подбирают» псевдо-классы:hover
и:active
. Во избежание подобного, либо используйте для каждого якоряid
либо стилизуйте при помощи slightly more arcane, используя синтаксис:link:hover, :link:active
. -
Задайте взаимосвязи (relationships) между ссылками.
Атрибут
rel
предназначен для обозначения семантической связи между ресурсами.
a[rel~="nofollow"]::after { content: "\2620"; color: #933; font-size: x-small; } a[rel~="tag"]::after { content: url(http://www.technorati.com/favicon.ico); }
-
Это позволит использовать атрибуты селекторов в пространстве, hазделенным списком значений. Любой элемент, имеющий отношение к содержащемся в нем значениям будет использоваться и стилизован соответствующим образом.
[Handy CSS] - Внешние ссылки можно стилизовать автоматически. Разработчики часто используют не стандартную связь кодом
rel="external"
для обозначения внешней ссылки. Однако, в этом нет необходимости. Это правило добавит стрелку (на северо-восток) после каждой внешней ссылки [Handy CSS]
a[href^="http://"]:not([href*="smashingmagazine.com"])::after { content: "\2197"; }
- Пунктирные ссылки можно удалить с помощью
outline: none;
. Для удаления пунктира в ссылках пользуйтесьoutline: none;
a:focus { outline: none; }
2.4. Технические тонкости: Тонкости CSS
-
Для
body
можно указыватьid
.В большинстве случаев
[Ryan Parr, Invasion of Body Switchers]id
указанный дляbody
позволит управлять стилем страницы целиком. Вы можете создать множество представлений для одной страницы без изменения XHTML разметки от страницы к странице. -
С помощью CSS можно создать колонки одинаковой высоты.
Equal Height Technique -- метод, позволяющий создать колонки одинаковой высоты без использования фонового рисунка. С фоновым рисунком -- Faux Columns
-
При помощи CSS возможно вертикальное выравнивание.
Скажем, у вас есть навигационное меню, элементы которого имеют высоту 2em. Решение: укажите высоту строки
[Evolt.org]hile-height
равную заданной высоте в 2em. Текст выровняется вертикально в блоке данной высоты. - Можно использовать псевдо-элементы и псевдо-классы для создания динамического контента. Псевдо-элементы и псевдо-классы могут использоваться для форматирования элементов на основе информации недоступной в дереве документа. Например, у нас нет элемента, который ссылается на первую строку параграфа или первую букву текстового элемента. Для задания стиля можно воспользоваться :first-child, :hover, :active, :focus, :first-line, :first-letter, :before, :after и др.
-
Для более элегантного разделения статей можно использовать горизонтальную линию
<hr>
.Стилизация линии изображением добавит стильный элемент в дизайн вашей страницы.
[CSS: Best Practices] -
Для навигации можно использовать один тот же код (X)HTML.
Достаточное кол-во сайтов «подсвечивает» активный пункт меню. Это может стать головной болью, редактируя код на всех страницах. [Ten More CSS Tricks you may not know]
XHTML:
<ul> <li><a href="#" class="home">Home</a></li> <li><a href="#" class="about">About us</a></li> <li><a href="#" class="contact">Contact us</a></li> </ul>
- Добавьте
id
в<body>
.id
должен показывать, где находится пользователь.
CSS:
#home .home, #about .about, #contact .contact { commands for highlighted navigation go here }
-
Для горизонтального выравнивания макета по центру можно использовать
margin: 0 auto;
.Для выравнивания по центру необходимо задать ширину блока и выставить границы.
[Roger Johansson]
XHTML:
<div id="wrap"> <!-- Your layout goes here --> </div>
CSS:
#wrap { width:760px; /* Change this to the width of your layout */ margin:0 auto;
- Можно добавить стиль в RSS фид. [Pete Freitag]
<?xml version="1.0" ?> <?xml-stylesheet type="text/css" href="http://you.com/rss.css" ?>
-
Можно скрыть CSS от старых браузеров.
Общепринятый способ скрывать CSS от старых браузеров, используя импорт
[Roger Johansson]@import
.
@import "main.css";
- Всегда указывайте границы (margin) и отступы (padding) для блочных элементов. [10 CSS Tips]
-
Задавайте ширину ИЛИ гарницу и отступ.
Если я задаю ширину, я не ставлю границы и отступы. И наоборот, если указываю границы и отступы, я не задаю ширину. Работа с блоками зачастую превращается в головную боль, особенно если величины задаются в процентах. Поэтому, я задаю сначала ширину, затем указываю границы и отступы.
[Jonathan Snook] -
Избегайте задания фиксированных размеров, а также отступов и границ.
IE5 использует неправильную блочную модель, что создает гору проблем. Потому паддинги лучше добавлять к родительским элементам, чем к фиксированным дочерним элементам внутри.
[CSS Crib Sheet] -
Делайте стиль для печати.
Стиль для печати добавляется очень просто:
<link rel="stylesheet" type="text/css" href="print.css" media="print"> или <style type="text/css" media="print"> @import url(print.css); </style>
- Эти строки четко укажут, что данный стиль необходимо применить к печати, а не к монитору. На печатной версии сайта текст старайтесь делать черным, а фон белым, кроме этого не забывайте удалить ненужные элементы для обеспечения максимально комфортного чтения. More about CSS-based print-Layouts. [20 pro tips]
2.5. Технические тонкости: IE Tweaks
-
Можно заставить IE правильно отображать прозрачность PNG.
Теоретически, PNG файл поддерживает различные уровни прозрачности, однако IE6 не дает использовать PNG во всех браузерах.
[CSS Tips, Outer-Court.com]
#regular_logo { background:url('test.png'); width:150px; height:55px; } /* \ */ * html #regular_logo { background:none; float:left; width:150px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src='test.png', sizingMethod='scale'); } /* */
#regular_logo { background:url('test.png'); width:150px; height:55px; } /* \ */ * html #regular_logo { background:none; float:left; width:150px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src='test.png', sizingMethod='scale'); } /* */
- Можно задавать минимальную
min-width
и максимальнуюmax-width
ширину в IE. Для этого используется Microsoft’s dynamic expressions. [Ten More CSS Trick you may not know]
#container { min-width: 600px; max-width: 1200px; width:expression(document.body.clientWidth < 600? "600px" : document.body.clientWidth > 1200? "1200px" : "auto"); }
-
Можно использовать Conditional Comments для IE.
Наиболее безопасный способ работы со стилями в IE/Win является использование т.н. conditional comments. Это более практический способ задания дополнительных стилей для IE, в отличие от хаков.
[Roger Johansson]
<!--[if IE]> <link rel="stylesheet" type="text/css" href="ie.css" /> <![endif]-->
Процесс: Get Inspired
-
Экспериментируйте с CSS.
Играйтесь. Играйтесь с фоновыми изображениями. Играйтесь с
[Chric Casciano]float
. [Играйтесь с отрицательными и положительными границами. Играйтесь с наследованием и каскадными правилами. Играйтесь. - Учитесь у других. Учитесь на примере хорошо сделанных сайтов. Смотрите, как используются те или способы достижения определенных эффектов и используйте эти способы в своей работе. [20 pro tips]
Ссылки на соответствующие статьи
- CSS Tips and Tricks by Roger Johansson
- (The Only) Ten Things To Know About CSS by John Manoogian
- CSS Crib Sheet by Dave Shea
- My Top Ten CSS Tricks [CSS Tutorials] by Trenton Moss
- CSS Tips by Philipp Lenssen
- Top CSS Tips by Jonathan Snook
- Ten CSS tricks - corrected and improved by Tantek Celik
- Ten More CSS Trick you may now know by Trenton Moss
- CSS techniques I use all the time by Christian Montoya
- CSS Tip Flags by Douglas Bowman
- My 5 CSS Tips by Mike Rundle
- 5 Steps to CSS Heaven by Ping Mag
- Handy CSS by Lachlan Hunt
- Erratic Wisdom: 5 Tips for Organizing Your CSS by Thame Fadial
- 15 CSS Properties You Probably Never Use (but perhaps should) by SeoMoz
- 10 CSS Tips You Might Not Have Known About by Christopher Scott
- A List Apart: Articles: 12 Lessons for Those Afraid of CSS and Standards by Ben Henick
- Tips for a better design review process by D. Keith Robinson
- 20 pro tips - .net magazine by Jason Arber
- CSS Best Practices by Richard K Miller
- 10 Quick Tips for an Easier CSS Life by Paul Ob
- 10 CSS Tips from a Professional CSS Front-End Architect by 72 DPI in the shade team blog
- Web Design References: Cascading Style Sheets by Laura Carlson
- Getting Into Good Coding Habits by Adrian Senior
Оригинал статьи
Спасибо, очень толково и познавательно. Жаль по некоторым из пунктов нет наглядных примеров.
— Дмитрий Oct 8, 01:38 PM #