Сценарии содержимого CSS не перезаписывает оригинал - PullRequest
5 голосов
/ 21 мая 2011

Моя проблема в том, что я хочу изменить стиль сайта с моими пользовательскими настройками.Я попытался с Content Scripts , но это не работает, потому что они не могут перезаписать исходные файлы CSS.Вот пример:

foo / manifest.json

{
  "name": "test",
  "version": "1.0",
  "content_scripts": [
    {
      "matches": ["file://*/*test.html"],
      "css": ["main.css"]
    }
  ]
}

foo / main.css

body {
  background: #0f0;
}

test.html

<html>
  <head>
    <title>foobar</title>
  </head>

  <body style="background:#f00;">

  </body>
</html>

Затем я загрузил папку foo расширения в мой Google Chrome и открыл test.html, но цвет фона все еще красный.Я проверил элемент и увидел, что:

Стиль элемента

body {
background: #f00;
}

таблица стилей пользователя

body {
background: #0f0;
}


Как изменить существующийФайл CSS с моим пользовательским CSS с помощью сценариев содержимого?
Если это невозможно, как я могу автоматически изменить существующий CSS с моим собственным, когда страница загружается в Google Chrome специально.

Ответы [ 2 ]

6 голосов
/ 21 мая 2011

Встроенное правило стиля имеет более высокий прецедент по сравнению с любыми правилами, импортированными из таблицы стилей.Вы можете использовать директиву !important, чтобы подорвать это поведение:

body {
  background: #0f0 !important;
}
1 голос
/ 03 мая 2013

Используя javascript, добавьте идентификатор в тег body или какой-либо другой тег, который охватывает все.Затем вы можете сделать это:

// original rule
.someclass li a{
    color: blue;
}
// your rule
#cool-extension .someclass li a{
    color: red;
}

Если вы используете исходный полный селектор и добавляете в него свой идентификатор, ваше правило всегда будет иметь приоритет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...