Верстая сайт очень часто, точнее почти всегда, встаёт вопрос о кроссбраузерности верстки. Каждый браузер отображает верстку как ему заблагорассудится. Если нормальные браузеры ещё туда-сюда, так интернет эксплорер-это тихий ужас...кошмар веб разработчиков...
А теперь по теме.
Кроссбраузерность достигается так:
Определяем браузер.
Под каждый браузер пишем свои хаки.
Определить браузер поможет следующая функция:
function cb_get_browser()
{
$ua = $_SERVER['HTTP_USER_AGENT'];
if (stristr($ua, 'Opera')) return 'Opera'; if (stristr($ua, 'Firefox')) return 'Firefox'; if (stristr($ua, 'Chrome')) return 'Google Chrome'; if (stristr($ua, 'Safari')) return 'Safari'; if (stristr($ua, 'MSIE')) return 'Internet Explorer'; if (stristr($ua, 'Konqueror')) return 'Konqueror'; if (stristr($ua, 'Iceweasel')) return 'Debian Iceweasel'; if (stristr($ua, 'SeaMonkey')) return 'SeaMonkey';
// Браузеров очень много, все вписывать смысле нет, Gecko почти везде встречается
if (stristr($ua, 'Gecko')) return 'Gecko';
// а может это вообще поисковый робот
return 'Search Bot';
}
Как ей пользоваться:
<div>Ваша верстка.</div>
<?php
//открываем php кавычки
// функция cb_get_browser объявлена прямо тут,или подключена через include_once
$brow=cb_get_browser();
if($brow=='Opera'){
?>
<link type="text/css" rel="stylesheet" media="all" href="style_for_opera.css" />
<?
}
if($brow=='Internet Explorer'){
?>
<link type="text/css" rel="stylesheet" media="all" href="style_for_govnobrayzer.css" />
<?
}
?>
</?></?></?php>
Как всё это интегрировать в Drupal.
Откройте папку темы.в ней файл template.php
Прямо в него вставьте код функции cb_get_browser.
Далее в функции themename_preprocess_html напишите следующее:
function themename_preprocess_html(&$variables) {
//Тут уже может быть код темы
$brow=cb_get_browser();
if($brow=='Opera'){
drupal_add_css(path_to_theme() . '/css/style_for_opera.css');
}
if($brow=='Internet Explorer'){
drupal_add_css(path_to_theme() . '/css/style_for_govnobrayzer.css');
}
}
Очищаем кэш.
Если стили не подцепятся-попробуйте
это.