Как заменить @media (max-width) с помощью Stylish или Greasemonkey?
У меня проблема с просмотром этого веб-сайта в браузере на рабочем столе. Они имеют адаптивный / гибкий дизайн, который показывает мобильное меню вместо горизонтальной навигационной панели, когда ширина браузера меньше 990 пикселей.
Поскольку я использую Firefox с 125% -ым увеличением, мой браузер на рабочем столе имеет ширину менее 990 пикселей.
Я посмотрел в код CSS и нашел строку. Как я могу использовать Stylish, Greasemonkey или каким-либо другим способом, чтобы автоматически заменить значение максимальной ширины "990px" на "800px"?
@media (max-width:990px) { ... }
Я использую Firefox 23 на Windows 7.
Редактировать: На основании комментариев, я должен заменить их CSS-файл своим собственным CSS-файлом. Итак, как мне использовать Greasemonkey для замены href
(что выглядит как нестатичное имя файла)?
<link rel="stylesheet" type="text/css" href="http://d1h60c43tcq0zx.cloudfront.net/static/css/versioned/global-cdn-ac243f54ab6bb9637fcc5fa32f8b514d.css"></link>
2 ответа
Один из способов сделать это -
- Найди обидчика
<link>
используя постоянную часть текста вhref
, - Запишите эту ссылку
href
, - Удалить эту ссылку.
- использование
GM_xmlhttpRequest()
получить файл снова (надеюсь, он кешируется). - Используйте регулярные выражения, чтобы исправить выбранный CSS.
- использование
GM_addStyle()
добавить фиксированный CSS.
Вот полный скрипт Greasemonkey, который иллюстрирует процесс:
// ==UserScript==
// @name _Replace bad CSS link
// @include http://www.fleaflicker.com/nfl/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// ==/UserScript==
var badCSS = $("link[href*='global-cdn-']");
var badURL = badCSS.attr ("href");
badCSS.remove ();
GM_xmlhttpRequest ( {
method: "GET",
url: badURL,
onload: function (rsp){
var betterCSS = rsp.responseText.replace (
/max-width:990px/g, "max-width:500px"
);
GM_addStyle (betterCSS);
}
} );
Заметки:
- Для более быстрой / лучшей производительности, если CSS не меняется часто, отредактируйте его вручную и сохраните в той же папке, из которой вы устанавливаете скрипт. Тогда используйте
GM getResourceText()
чтобы получить CSS, а неGM_xmlhttpRequest()
, - Если мерцание страницы вызывает раздражение из-за задержек при запуске, это совсем другая проблема, которую, вероятно, можно решить с помощью
@run-at document-start
и наблюдатели мутации.
Если вы добавите Стильный в Firefox, вы можете добавить стили для определенного домена. Я обычно нахожу, что мне нужно включить !important
со многими стилями, чтобы их узнавали.
Другой вариант для Firefox - редактировать файл userContent.css напрямую. Вы можете легко Google "userContent.css Firefox Windows7", чтобы найти его местоположение. (Я использую Mac.)