2013-07-19 4 views
0

У меня есть некоторые различия в пикселях между Chrome и Safari, я не смог найти подходящий способ доставить разные стили каждому из них, используя css-взломать.Динамически создавать селектор css для Chrome

Я смог исправить это с помощью javascript, но есть задержка при загрузке страницы и перед ее применением, поэтому пользователь видит движение.

function chromeStyle() { 
if (window.chrome) { 
var a = document.getElementById("id"); 
if (a) { 
a.style.marginLeft = 5px; 
} 
} 
} 

Я знаю, что можно поместить следующий код в голову HTML-документа, а затем использовать «.JS .myStyle {}» в таблице стилей для применения стилей, где включен.

<script type="text/javascript"> 
document.documentElement.className = 'JS'; 
</script> 

Интересно, аналогичным образом можно было бы создать селектор для Chrome, которые могут быть применены в таблице стилей?

if (window.chrome) { 
create a selector for chrome here 
} 

и в таблице стилей примените его как ".chrome .mystyle {}".

Спасибо.

+3

Веб-интерфейс никогда не будет точным. Смирись с этим. – Bergi

+0

Да, это возможно для пользовательских классов, специфичных для браузера, и, к сожалению, довольно распространенных. Я бы рекомендовал сначала спросить о вашей фактической проблеме CSS, прежде чем пытаться исправить ее с помощью JS. – Bergi

ответ

0

Я не знаю, если это проще, чем то, что вы пытаетесь сделать с JS. Но когда мне нужно переопределить определенные стили для конкретного браузера, я просто создаю чек для браузера serveride, а затем добавлю дополнительную таблицу стилей, которая переопределяет базовые стили.

Смежные вопросы