Есть ли способ применить селектор CSS к конкретному хосту?(Для моей пользовательской таблицы стилей браузера.) - PullRequest
2 голосов
/ 16 марта 2011

Я хочу применить стили ( edit: в пользовательской таблице стилей моего браузера - локальный файл на моем компьютере, который позволяет мне настраивать отображение сайтов других людей для меня ) на конкретном сайте, носелекторы на многих веб-страницах часто являются общими (и, очевидно, не под моим контролем, поскольку они не являются моими веб-сайтами).

Если мне нужно использовать очень общие селекторы (например, #box) для настройки данного веб-сайтаэтот стиль может непреднамеренно повлиять на другие веб-сайты, которые имеют тот же общий селектор.Есть ли способ указать домен с селектором, чтобы я мог использовать свои собственные стили для каждого веб-сайта отдельно?

Я также нашел @ - moz-document , который выглядит хорошо, но Mozilla-конкретный и я использую браузер WebKit.Есть ли эквивалент?

@-moz-document url(https://www.example.com/decrypt.php) {

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Размещается ли CSS на сервере, который также позволяет создавать сценарии? Вы пытались написать серверный скрипт для генерации правильных правил CSS в зависимости от хоста, обслуживающего страницу?

Изменить добавлено 30 марта 2010:

Возможно, вам лучше использовать расширение Greasemonkey, чтобы сделать это. Он гораздо более мощный, чем пользовательские таблицы стилей, поскольку вы можете использовать JavaScript, а добавить правила для домена или страницы так же просто, как добавить специальные теги к комментариям в заголовке. Greasemonkey был создан специально для решения проблем вашего типа, и хотя вам нужен плагин для запуска скриптов Greasemonkey в Firefox, Chrome поставляется со встроенной поддержкой Greasemonkey.

0 голосов
/ 17 марта 2011

Хм, я думаю, что php был бы наиболее рациональным решением, и на самом деле очень простым. Используйте php, чтобы решить, что и когда делать, и выводите определенные файлы CSS в определенных случаях.

Если вам нужна дополнительная помощь, расскажите нам больше о своей проблеме, и я напишу полное решение для вас.

0 голосов
/ 17 марта 2011

Если вы можете изменить HTML, используя javascript, будет способ. Это может быть что-то вроде этого (с использованием JQuery):

var hostId = // detect the id of the host
var highLevelElement = $("body");  // or a different element that holds everything
highLevelElement.attr("id", hostId);

Затем в вашем CSS вы можете сделать это:

#Mozilla div.Whatever { background-color: orange; }
#IE6 div.Whatever { background-color: red; }
#IE9 div.Whatever { background-color: green; }
// etc.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...