Измените белый фон на веб-страницах на другой цвет

47

В настоящее время я использую темную тему в Firefox. Это выглядит действительно хорошо, но многие веб-страницы используют простой белый фон. Получающийся контраст немного неприятен и иногда причиняет боль глазу, когда я переключаюсь с темной вкладки на белую вкладку.

Есть ли способ заставить firefox заменять белые фоны везде другим цветом (например, светло-серым)? Это может быть стильный скрипт, хак userChrome.css или все, что работает (желательно настолько легкое, насколько это возможно).

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

Есть ли способ сделать это?

Malabarba
источник
5
Я бы рекомендовал против этого, большинство веб-сайтов используют множество различных классов и CSS для стилизации текста. Что происходит, когда у вас есть черный фон и черный текст, согласно стилю на веб-странице? Какую ОС вы используете из интереса?
danixd
Windows 7 в основном, хотя платформо-независимое решение было бы лучше, потому что я также использую Ubuntnu на работе. Я знаю, что это может привести к некоторому неловкому поведению на некоторых сайтах, и фон должен быть светло-серым, а не черным, чтобы текст был читабельным. Но эта вещь беспокоит меня до такой степени, что я готов экспериментировать.
Малабарба
Это могут делать разные аддоны - например, addons.mozilla.org/En-us/firefox/addon/…
Уилф

Ответы:

21

Я только что написал быстрый скрипт Greasemonkey, который проверяет вычисленный стиль bodyэлемента и меняет его на черный (вы, вероятно, хотите выбрать другой цвет):

(function () {
    if (window.getComputedStyle(document.body, null).getPropertyValue("background-color") == "rgb(255, 255, 255)") {
        console.log("Setting new background color...");
        document.body.setAttribute("style", "background-color: #000000;");
    }
})();

Проблема с этими типами вещей состоит в том, что, если веб-сайты не разработаны очень хорошо, будут пятна белого на черном.

Hello71
источник
4
Прости мое невежество, но куда мне вставить этот скрипт? (спасибо за беспокойство)
Малабарба
@Bruce: установите Greasemonkey, создайте новый пользовательский скрипт для * и вставьте его в текстовый редактор. Сохраните и обновите страницу.
Hello71
Хорошо, этот метод работает лучше всего. Это не меняет фон текстовых полей и пару других вещей, но кроме этого это хорошо. Я предполагаю, что любое решение в любом случае оставит несколько белых коробок. спасибо
Малабарба
Есть готовые к загрузке скрипты, просто прокрутите вниз.
Валентин
14

Это не идеальное решение, но вы можете делать это всякий раз, когда посещаете сайты, на которых хотите изменить фон.

В Firefox ниже 38 перейдите Tools > Options > Contentи нажмите на Coloursкнопку. В Firefox 38 и выше перейдите Edit > Preferences > Contentи нажмите там Colors.

Выберите серый цвет для «Фона» и снимите флажки рядом с «Разрешить страницам выбирать свои собственные цвета вместо моих вариантов выбора выше» и «Использовать системные цвета».

альтернативный текст

Мехпер С. Палавузлар
источник
Этот заслуживает голосования за самый легкий. Это работает практически на каждом сайте. Это заставляет вас менять цвет текста, и это несколько уступает другим методам.
Малабарба
2
@ Брюс Коннор: правда. С другой стороны, в некоторых случаях, если вы измените цвет bg, вам также придется изменить цвет fg, чтобы получить разумный контраст. Поэтому на практике необходимость изменения цвета текста не может быть большим недостатком.
слеске
2
если вы используете опцию Firefox, как описано здесь, рекомендуется использовать надстройку типа «Нет цвета», чтобы быстро включить / выключить ее (потому что изменение цвета вызовет различные ошибки на многих сайтах). В качестве альтернативы используйте пентадактильный аддон, чтобы иметь возможность назначить любое действие любой клавише (включая переключение любого параметра Firefox).
Корвин
Это не переопределяет цвет фона, если он указан
Влад
11

Я обновил скрипт Greasemonkey (Firefox) для подавления белого фона.

Сценарии будут работать в Chrome, если вы установите Tampermonkey.

http://userscripts-mirror.org/scripts/show/142763

Это изменяет все белые фоны на серый (иш) с некоторой штриховкой. Вы можете настроить и установить свой собственный базовый цвет из общего кода. Оттенки белого также оказываются.

У меня есть три варианта: серый , розовый и зеленый - каждый из которых можно настроить.

Поиск в пользовательских скриптах для noWhiteBackgroundColor .

howardsmith
источник
Работает отлично - это должен быть ответ
Mr_and_Mrs_D
4

Я недавно обнаружил этот аддон Firefox Стильный . Это будет делать то, что вы хотите и многое другое!

Пьер Ватле
источник
4

Следующий Javascript переопределяет фоновые элементы CSS и HTML с белым и текстовые элементы с черным на текущей странице, просто вставьте его в ваше местоположение или поле браузера:

javascript:(function(){
   var newSS,styles='* {background-color:black !important;color:white !important}
   :link,:link *{color:#99C0EB !important}
   :visited,:visited *{color:#C398EB !important}';

    if(document.createStyleSheet){
        document.createStyleSheet("javascript:'"+styles+"'");
    }else{
        newSS=document.createElement('link');
        newSS.rel='stylesheet';
        newSS.href='data:text/css,'+escape(styles);
        document.getElementsByTagName("head")[0].appendChild(newSS);
    }
})();
Dour High Arch
источник
Тьфу. Болезненно% 20.
Hello71
Это делает фон всех элементов черным, а все элементы (не только текст) белыми.
Hello71
1
Это действительно хорошо работает. Я изменил черный цвет на светло-серый и удалил часть, которая меняет цвет текста, поэтому текст остается черным. И результат на самом деле довольно хороший. Единственная проблема заключается в том, что он меняет фон абсолютно всего, не только белого, поэтому многие вещи скрываются (например, кнопки голосования здесь, в SU). Есть ли способ это исправить?
Малабарба
1
@ hello71, как-то, когда я вставил это в мой браузер, он изменил все пробелы на% 20. Они были удалены. Я сказал, что это изменило все фоны на черный, я отредактировал его, чтобы теперь менять только текстовые фоны на черный, попробуйте еще раз.
Dour High Arch
4

В строке поиска браузера введите about:config.

В поле поиска введите browser.display.background_color.

Дважды щелкните по строке и измените #FFFFFF(шестнадцатеричный код для белого) на #000000(шестнадцатеричный код для черного) или любой другой цвет, который вы хотите, и нажмите OK. Перезапустите браузер, чтобы он вступил в силу.

Canabliss
источник
3

В строке URL введите about: config и перейдите к этому параметру: browser.display.background_color

Больше информации, если вам это нужно здесь .

jer.salamon
источник
1
Изменение этой переменной работает только на веб-страницах, в которых не указан цвет фона. Я мог заставить его работать только на google.com/firefox и на пустых вкладках.
Малабарба
1
Firebug позволит вам менять страницы, но вам придется делать это каждый раз, когда вы заходите на сайт. Изменить только белый фон довольно сложно.
jer.salamon
3

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

Поэтому меня немного раздражало, что я не смог найти тот, который использовал раньше. Короче говоря - вот тот, что с моего старого ПК.

Этот сценарий не моя собственная работа

Вся заслуга должна идти к Говарду Смиту. Первоначально он был размещен на Userscripts.org, который сейчас недоступен.

Просто создайте новый пользовательский скрипт в Greasemonkey и вставьте следующее в:

(function () {
    function noWhiteBackgroundColor() {
        function changeBackgroundColor(x)  {  // Auto change colors too close to white
            var backgroundColorRGB = window.getComputedStyle(x, null).backgroundColor;  // Get background-color
            if(backgroundColorRGB != "transparent")  {  // Convert hexadecimal color to RGB color to compare
                var RGBValuesArray = backgroundColorRGB.match(/\d+/g); // Get RGB values
                var red   = RGBValuesArray[0];
                var green = RGBValuesArray[1];
                var blue  = RGBValuesArray[2];

                // ============================================================================
                // Set the base colors you require:
                // Use: http://www.colorpicker.com
                // to find the RGB values of the base colour you wish to
                // suppress white backgrounds with:
                // Default gray provided:
                // ============================================================================

                var red_needed   = 220;
                var green_needed = 220;
                var blue_needed  = 255;


                if (red>=220 && green>=220 && blue>=220) { // White range detection

                   if (red>=250 && red<=255 && green>=250 && green<=255 && blue>=250 && blue<=255) {
                      red_needed   += 0;
                      green_needed += 0; }

                   else if (red>=240 && red<=255 && green>=240 && green<=255 && blue>=240 && blue<=255) {
                      red_needed   += 6;
                      green_needed += 3; }

                   else if (red>=230 && red<=255 && green>=230 && green<=255 && blue>=230 && blue<=255) {
                      red_needed   += 10;
                      green_needed += 5; }

                   else if (red>=220 && red<=255 && green>=220 && green<=255 && blue>=220 && blue<=255) {
                      red_needed   += 14;
                      green_needed += 7; }

                   x.style.backgroundColor = "rgb( " + red_needed + ", " + green_needed + ", " + blue_needed + ")"; // The background-color you want
               }
            }
        }

        var allElements=document.getElementsByTagName("*"); // Get all elements on a page
        for(var i=0; i<allElements.length; i++)  {
            changeBackgroundColor(allElements[i]);}
    }
    window.addEventListener("DOMContentLoaded",noWhiteBackgroundColor, false);
})();

Я использую это в течение почти двух лет и не могу вспомнить ни одного веб-сайта, который не смог изменить белый фон.

Бахамунт
источник
Отличный сценарий! Теперь, если только это будет работать для внутренних страниц в Firefox, таких как about: addons, about: config, about: newtab, view-source: * .. Вы можете добавить раздел метаданных вверху для облегчения импорта. Я использую этот скрипт в сочетании с аддоном Color Toggle.
jk7
2

цветистый

Я использую это.

Раскрасьте веб-страницы с помощью усовершенствованных элементов управления оттенком, насыщенностью, яркостью и непрозрачностью. Белый список веб-доменов для автоматической окраски (необязательно!).

НОВИНКА: используйте перетаскивание, чтобы копировать темы как текст и свободно группировать свойства цвета.

PS: плюс темная тема Firefox

FFuser
источник
К сожалению, недоступно для FF v57 и выше.
KERR
1

Нажмите на панель левой кнопкой мыши и настройте, и вы увидите зеленое дерево, поместите его в панель и нажмите на нее. Цвета изменятся, и вы все равно сможете создавать свои собственные цвета в пункте меню «Правка» -> «Настройки» -> «Содержимое»> «Цвета».

Отключить: использовать системные цвета и разрешить страницы

Хосе
источник
0

Хотя не совсем то, что вам нужно ... Я использую часть программного обеспечения в сочетании с небольшим сценарием в OS X. Программное обеспечение называется Nocturne. Сценарий узнает, в какое время восход и заход солнца происходят в моем географическом местоположении. Затем он активирует Ноктюрн на закате и выключает его на рассвете. Я не знаю, что такое Firefox, но он, безусловно, хорош, так как работает в любом браузере и большинстве других программ.

Эверетт
источник
0

Надстройка http://addons.mozilla.org/en-US/firefox/addon/black-background-white-text имеет другой метод для черных цветов. Он инвертирует только цвета и фоновые изображения (инвертирование цветов не разрушит дизайн страницы, как в методах CSS или JavaScript). Вам понравится, вы чувствуете, что находитесь в белом режиме, и вам не нужно устанавливать какую-либо тему.

После установки измените метод по умолчанию с «простой CSS» на «инвертировать» в: меню ИнструментыДополненияЧерный фон и белый текстМетод изменения цвета страницы по умолчаниюИнвертировать .

NB. Если вы также изменили режим Windows на черный, то вам лучше отключить стандартное управление цветом Firefox и позволить надстройке выполнять всю работу, сделав это: меню ИнструментыПараметрыСодержимоеЦвета → снимите флажок «Используйте системные цвета» и выберите «Никогда» в «Переопределить цвета, указанные на странице, с моими выборами выше».

Затем перезапустите Firefox!

Совет: Надстройка поместила кнопку на панели, чтобы отключить или изменить режимы с метода «инвертировать» на метод «CSS» или метод «JavaScript».

Вот результат:

BlackFirefox

Бадр Элмерс
источник
Ссылка не работает ( страница не найдена ).
Питер Мортенсен
-1

Другой вариант - просто использовать кольцо топаза, чтобы изменить цвета фона или удалить заднюю часть.

Перейдя на сайт, введите URL-адрес веб-сайта и выберите сочетание цветов фона и шрифта, которое будет более читабельным для вас.

BlackRaider
источник