Последнее время дизайнеры всё чаще используют CSS-свойство "position: fixed" для закрепления шапки и футера, что создаёт дискомфорт при просмотре страниц и съедает драгоценное экранное пространство на широкоформатных экранах.Для автоматического отключения "position: fixed" можно использовать дополнение [[https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ greasemonkey]]
вместе с [[https://gist.github.com/vbuaraujo/bddb3b93a0b2b7e28e1b простым скриптом]] unfix-all-the-toolbars.user.js:
// ==UserScript==
// @name unfix-all-the-toolbars
// @description Removes "position: fixed" style from elements, unfixing "toolbars" and the such.
// @namespace http://inf.ufrgs.br/~vbuaraujo/
// @include *
// @version 1
// @grant none
// ==/UserScript==
/*
Based on https://stackoverflow.com/questions/13696100/greasemonkey-sc...
2015-02-17: Original version.
2016-05-01: Added the styleWidth threshold heuristic.
The big problem here is we want to avoid unfixing *all* "position: fixed"
elements, because some of them are fake popup windows which become quite
unusable if you change them to "position: static". So we need some heuristic
to distinguish "legitimate" fixed elements from gratuitous ones like navbars.
*/function numPixels(str) {
if (str.endsWith("px"))
return Number(str.slice(0, -2));
else {
console.log("unfix-all-the-toolbars: Computed width is not in pixels! " + width);
return null;
}
}function unfixAll() {
var bodyStyle = window.getComputedStyle(document.body);
var pageWidth = numPixels(bodyStyle.width);
var pageHeight= numPixels(bodyStyle.height);
var toolbarWidthThreshold = 0.8 * pageWidth;
Array.forEach(
/* Assorted selection of likely fixed elements, to avoid querying all elements */
document.querySelectorAll("h1, h2, ul, ol, li, div, nav, header, footer"),
function (el) {
var style = window.getComputedStyle(el);
if (style.position === "fixed") {
/* Avoid unfixing JavaScript popus like Twitter's "confirm retweet" window */
if (style.display === "none" || style.visibility === "hidden") return;
if (numPixels(style.width) < toolbarWidthThreshold) return;
// Try to select the best replacement for 'fixed'. Still breaks lots of things, though.
if (numPixels(style.bottom) === 0 && numPixels(style.top) > 0)
el.style.position = "static"; // Use static for footers.
else
el.style.position = "absolute";
}
});
}window.addEventListener("load", unfixAll);
Другим вариантом может стать Firefox-дополнение [[https://addons.mozilla.org/en-US/firefox/addon/unstickall/ unstickall]], которое позволяет отключить закрепление любого блока через клик на нём.
URL:
Обсуждается: https://www.opennet.ru/tips/info/3064.shtml
> // ==/UserScript==лицензия какая?
>> // ==/UserScript==
> лицензия какая?КуритеТоварищПрапорщикНичьёL.
wtfpl
Есть ещё некоторые ополоумевшие от своего величия вендоры, которые иной раз 80% окна нескрываемым анонсом покрывают,я в таких случаях адблоком делаю select element to hide
Вообще-то для таких целей есть сайты типа https://greasyfork.org
Еще бы яндекс-директ научиться прятать, а то они взяли моду все ID элементов менять постоянно, т.е. еще поискать надо, что прятать.
NoScript все это паскудство рубит более-менее успешно.
Правда, и кое-что нужное при этом под нож идет, но меня лично больше выбешивает их реклама, так что доволен...
> NoScript все это паскудство рубит более-менее успешно.я в адблок всю эту голландскую организацию добавил, чего и всем рекомендую
Покажи правила, если не жалко...
с mMatrix так же работает, вместе с баннерами режется полезный контент, т.к. ушлые сайтовладельцы засовывают в один скрипт загрузку баннеров и загрузку чего-то полезного, там, где это критично приходится терпеть
Практика довольно частая сейчас и говорит о том, что классические блокировщики постепенно уходят в прошлое. Нужен более глубокий подход к определению элемента, чем в CSS. Например - видеть через фильтр все свойства, использовать в ID полноценные регулярные выражения, смотреть на структуру вокруг.
Вот что-то примерно подходящее: https://adblockplus.org/ru/filters#elemhide-emulation
> Вот что-то примерно подходящее: https://adblockplus.org/ru/filters#elemhide-emulationИ ещё немного интересностей: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#...