На основании нет никакой гарантии, что такая вещь когда-либо будет работать идеально. Пока разработчики браузеров находят способы делать что-то свое, а не «стандартный» способ действий, у вас будут различия.
У меня были положительные результаты при использовании Основы пользовательского интерфейса Yahoo CSS , но, в конце концов, даже это не могло справиться с более сложными элементами, которые должны быть возможны с помощью CSS.
В конце концов, я выбрал не совсем идеальное решение и просто проверил свою инфраструктуру, установил ли я таблицы стилей для конкретного браузера.
Вот фрагмент кода PHP для иллюстрации. Извините за решение для конкретного языка, но я думаю, что идея достаточно ясна для реализации на разных языках:
$sHTML .= "\t\t<LINK rel=\"stylesheet\" type=\"text/css\" href=\"".$sURLCSS.$sStyle."\" />\n";
if (file_exists($sPathCSS.$sFileStyle."_".BROWSER_AGENT.".".$sExtension))
$sHTML .= "\t\t<LINK rel=\"stylesheet\" type=\"text/css\" href=\"".$sURLCSS.$sFileStyle."_".BROWSER_AGENT.".".$sExtension."\" />\n";
if (file_exists($sPathCSS.$sFileStyle."_".BROWSER_AGENT."_".BROWSER_VERSION.".".$sExtension))
$sHTML .= "\t\t<LINK rel=\"stylesheet\" type=\"text/css\" href=\"".$sURLCSS.$sFileStyle."_".BROWSER_AGENT."_".BROWSER_VERSION.".".$sExtension."\" />\n";
Без отсутствующих файлов, нераспознанных тегов или другого кода, который может задушить некоторые браузеры, страницы из фреймворка отображаются так, как мы хотим, чтобы они отображались во всех браузерах, запрошенных нашими клиентами. Что еще более важно, они делают это, не вызывая ошибок (то есть пустой консоли ошибок в FireFox), что значительно упрощает отладку, когда вы действительно сталкиваетесь с ошибкой.