Поиск
Последние записи:
- Нестандартные шрифты для сайта. Использование и рецепты.
- Определение региона посетителя сайта
- Команды работы с сервером для web-разработчика
- Настройки TinyMCE в MODx
- Как выбрать хостинг для сайта?
- CSS хаки. Особенности кроссбраузерной верстки.
- Уязвимости e107
- Установка DISQUS на сайт. Внешняя система комментариев
- Новогодний подарок для разработчиков сайтов
- 301 Редирект на Ucoz и не только…
Самое популярное:
- MODx Revolution vs MODx Evolution
- Дублирование контента в MODx
- Мета-теги и заголовки MODx
- Карта сайта и google sitemap в MODx
- Как подключить lightbox
- Проблема c кодировками MODx
- Мета-теги в MODx 1.0.2
- RSS лента на MODx
- CSS хаки. Особенности кроссбраузерной верстки.
- Установка DISQUS на сайт. Внешняя система комментариев
Мета
Категории:
Полезное
Архив
CSS хаки. Особенности кроссбраузерной верстки.
Категория 10 марта 2011 in CSS
Кроссбраузерность кода – основное требование для верстальщика практически в любой web-студии. Для достижения этой задачи есть масса способов. Главный из которых – тщательно продуманная структура документа. Однако, если структура html страницы сложна, или придумать структуру так, чтобы она одинаково отображалась во всех браузерах, не удалось, на помощь верстальщику приходят всевозможные css-хаки. Не претендую на оригинальность или уникальность подборки трюков в этой статье, но постараюсь описать как можно больше способов и инструкций по достижению кроссбраузерности. Основная головная боль верстальщика в 99,99% связана с браузерами от Microsoft, т.е. с Internet Explorer. Сайт, одинаково хорошо интерпретируемый Opera, Mozilla, Safari и Chrome, может выглядеть совершенно по-разному в Internet Explorer 8, Internet Explorer 7, не говоря уже о более ранних версиях. Наиболее красивое решение для обеспечения кроссбраузерности с Internet Explorer — использовать условные комментарии в HTML коде. Суть в том, что для каждой версии браузера создается свой CSS файл, в котором проблемные свойства определенным образом перезаписываются: Будет работать только в IE6 и ниже:<!—[if lt IE 6]> <link rel=»stylesheet» type=»text/css» href=»ie6.css» /> <![endif]—>
Условие может быть таким: IE – для любой версии IE
lt IE v – (less than) для всех браузеров IE, версия которых меньше чем v
lte IE v – (less than or equal) для всех браузеров IE, версия которых меньше чем v, или такая же
gte IE v – (greater than or equal) – для IE, версия которых больше или равна v
gt IE v – (greater than) – для IE, версия которых больше v.
Иногда ради того, чтобы переписать одно свойство, подключать новый CSS файл слишком громоздко. Для этого есть специальные CSS-хаки.
CSS хаки для Internet Explorer
* html .class{background:red} /* В случае если у html-страницы есть доктайп,
этот хак работает только для IE6. В случае quirks-mode, хак работает в IE6 и IE7 */
*+html .class{background:red} /*В случае, если у html-страницы есть доктайп,
этот хак работает в IE7, может понять Opera 9 и ниже */
*:first-child+html .class{background:red} /*В случае, если у html-страницы есть доктайп,
этот хак работает в IE7: */
html>body {} /*Все кроме IE6 */
div, #ie#fix /* все кроме IE8 */
div+span {...} /* IE6 и ниже проигнорирует это правило */
div>span {...} /* IE6 и ниже проигнорирует это правило */
.myClass {
color:red\0/; /* только IE8*/
}
.myClass {
color:red\9; /* только IE9*/
}
*:lang(ru) #lightMOD { display: block }
/* Хитрый селектор — все современные браузеры — не IE6 или IE7 */
html>/**/body #lightMOD { display: block }
/* Вживленный комментарий — все современные браузеры — не IE6 или IE7 */
c\olor red; /* IE 6 не работает перед буквами a, b, c, d, e, f */
.ie7b {#color:#00FF00;} /* Хак только для IE7,6 */
Если перед свойством в css поставить подчеркивание “_”, или дефис “-“, то эти свойства будут восприниматься только IE версии 6 и ниже.
Если перед свойством в css поставить звездочку ”*”, то эти свойства будут восприниматься только IE версии 7 и ниже.
>body {} выбирает элемент body только в IE7.
html* {} выделяет все элементы внутри элемента html. Только для IE7 и ниже а также Chrome и Safari.
Если после значения свойства поставить !ie, то свойство применится только в браузерах IE.
CSS хаки для Mozilla Firefox
С Mozilla Firefox проблем обычно не бывает. Но тем не менее хаки и для этого браузера могут оказаться полезными:
html:root ваш_элемент {...} /* этот работает ещё и для Safari и chrome*/
ваш_элемент, x:-moz-any-link {...}
ваш_элемент, x:-moz-any-link, x:default { display: block } /* только FF 3.0 */
CSS хаки для Opera
@media all and (min-width: 0) {
.class { color: #368EF1; } /* для Opera */
}
html:first-child .class { color: #368EF1; } /* для Opera */
CSS хаки для Safari
html[xmlns*=""] body:last-child .class { color: #368EF1; }
/* для Safari < 4.0 */
body:last-child:not(:root:root) .style { background: #F00; }
/* для Safari < 4.0 */
@media screen and (-webkit-min-device-pixel-ratio:0) {.myClass {...}}
/* для Safari < 4.0 и Chrome */
CSS хаки для Chrome
body:nth-of-type(1) .style{
}
Один ответ на “CSS хаки. Особенности кроссбраузерной верстки.”
Оставить комментарий
Вы можете подписаться на RSS ленту комментариев.



января 28, 2012 at 23:05
Хаки действительно полезные, спасибо, будем юзать