Добрый день. Хочу спросить специалистов , кому-нибудь удалось победить средствами CSS или другими ,проскакивание белого фона , от момента нажатия на иконку, ссылки на сайт, до начала загрузки содержимого контента . about:blank фоном я залил, но это не то. Ночнушки не помогают.
Отсутствует
Отсутствует
Отсутствует
изменить. "Справа"
"Справка" и др. так
Отсутствует
Vitaliy V.
Подскажите пожалуйста. Хотел немного увеличить расстояние между плиток по горизонтали в about:newtab, чтоб стало как то было раньше в 68, но не совсем получается.
При увеличении расстояния не вмещается последняя плитка и переходит вниз. Получается семь плиток вместо восьми. Может можно как-то вместить все восемь плиток в одну строку с увеличенным отступом между ними? Спасибо.
@-moz-document url("about:newtab"), url("about:home") { .ds-top-sites .top-sites .top-site-outer { padding: 0 16px !important; } }
Отсутствует
sandro79
@-moz-document url("about:newtab"), url("about:home") { .ds-top-sites .top-sites .top-site-outer { padding-inline: 16px !important; } .ds-top-sites .top-sites .top-sites-list { margin-inline: -16px !important; } .ds-outer-wrapper-breakpoint-override main { width: 274px !important; } @media (min-width: 610px) { .ds-outer-wrapper-breakpoint-override main { width: 530px !important; } .outer-wrapper.ds-outer-wrapper-breakpoint-override { padding-inline: 20px !important; } } @media (min-width: 866px) { .ds-outer-wrapper-breakpoint-override main { width: 786px !important; } .outer-wrapper.ds-outer-wrapper-breakpoint-override { padding-inline: 32px !important; } } @media (min-width: 1122px) { .ds-outer-wrapper-breakpoint-override main { width: 1042px !important; } } }
Отсутствует
Нужна помощь:
вот с этим кодом, я получил возможность размещать вкладки в несколько строк
https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/multi-row_tabs.css ,
НО пропал контур выбранной вкладки (боковые линии) и пропали разделители между вкладками,
есть только верхний, жирный контур у выбранной вкладки.
Что надо дописать в код что-бы их вернуть?
Отсутствует
Vitaliy V. А, на этот ID можно иконку повесить?
Отсутствует
Что надо дописать в код что-бы их вернуть?
скорее что убрать
#panelMenu_recentBookmarks { background-repeat: no-repeat !important; background-position: left 12px center !important; background-size: 16px !important; background-image: url("chrome://browser/skin/bookmark.svg") !important; -moz-context-properties: fill; fill: currentColor; padding-inline-start: 36px !important; margin-inline-start: 0 !important; min-height: 16px !important; color: var(--toolbarbutton-icon-fill-attention, currentColor) !important; } #panelMenu_recentBookmarks:-moz-locale-dir(rtl) { background-position-x: right 12px !important; }
Отредактировано Vitaliy V. (14-08-2020 11:25:07)
Отсутствует
скорее что убрать
О! спасибо!
Удалил вот это
Отредактировано MAD FREQUENCY (14-08-2020 12:35:38)
Отсутствует
Еще вопрос крайне важный:
Что надо в этот код добавить/убрать
https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/multi-row_tabs.css
что-бы можно было нормально захватывать мышью вкладку и переносить её в нужное место среди других вкладок, отпуская её там где хочешь что-бы она размещалась??
Сейчас, если пытаешься так сделать, то она прицеливается в место размещения по совершенно непонятному алгоритму.
Например, есть два окна со вкладками, в одном две строки открытых вкладок, всего в файле разрешено 5 строк.
Если захватываешь вкладку из нижней строки, то она метит себе место исключительно в верхней строке и наоборот если пытаешься перенести вкладку из верхней строки она метит исключительно в нижнюю.
А допустим мне надо перенести её, но в положение в этой же строке.
Вот как сделать так, что-бы четко куда я её размещаю, туда она и плюхалась??
PS Алгоритм перемещения вкладок, если у меня их в пять строк, еще более не понятен.
PPS Если что, текущий код такой:
/* Makes tabs to appear on multiple lines */
/* Tab reordering will not work and can't be made to work */
/* You can use multi-row_tabs_window_control_patch.css to move window controls to nav-bar*/
/* You might want to move tabs-new-tab-button outside tabs toolbar for smoother behavior */
/* Change the --multirow-n-rows to change maximum number of rows before the rows will start to scroll */
:root{
--multirow-n-rows: 5;
--multirow-tab-min-width: 100px;
--multirow-tab-dynamic-width: 1; /* Change to 0 for fixed-width tabs using the above width. */
}
/* Scrollbar can't be clicked but the rows can be scrolled with mouse wheel */
/* Uncomment the next line if you want to be able to use the scrollbar with mouse clicks */
/* #tabbrowser-arrowscrollbox{ -moz-window-dragging: no-drag } */
/* Uncommenting the above makes you unable to drag the window from empty space in the tab strip but normal draggable spaces will continue to work */
#tabbrowser-tabs{
min-height: unset !important;
padding-inline-start: 0px !important
}
@-moz-document url(chrome://browser/content/browser.xhtml){
#scrollbutton-up~spacer,
#scrollbutton-up,
#scrollbutton-down{ display: var(--scrollbutton-display-model,initial) }
scrollbox[part][orient="horizontal"]{
display: flex;
flex-wrap: wrap;
overflow-y: auto;
max-height: calc(var(--tab-min-height) * var(--multirow-n-rows));
scrollbar-color: currentColor transparent;
scrollbar-width: thin;
}
}
.scrollbox-clip[orient="horizontal"],
#tabbrowser-arrowscrollbox{
overflow: -moz-hidden-unscrollable;
display: block;
--scrollbutton-display-model: none;
}
.tabbrowser-tab{ height: var(--tab-min-height); }
#tabbrowser-tabs .tabbrowser-tab[pinned]{
position: static !important;
margin-inline-start: 0px !important;
}
.tabbrowser-tab[fadein]:not([pinned]){
min-width: var(--multirow-tab-min-width) !important;
flex-grow: var(--multirow-tab-dynamic-width);
/*
Uncomment to enable full-width tabs, also makes tab dragging a tiny bit more sensible
Don't set to none or you'll see errors in console when closing tabs
*/
/*max-width: 100vw !important;*/
}
.tabbrowser-tab > stack{ width: 100%; height: 100% }
#alltabs-button,
:root:not([customizing]) #TabsToolbar #new-tab-button,
#tabbrowser-arrowscrollbox > spacer,
Отредактировано MAD FREQUENCY (14-08-2020 19:17:53)
Отсутствует
Удалил вот это
скрытый текст
.tabbrowser-tab::after{ display: none !important }
да удаляйте что хотите, но там выше селекторы неприкаянные остались
Что надо в этот код добавить/убрать ... что-бы можно было нормально захватывать мышью вкладку и переносить её в нужное место среди других вкладок, отпуская её там где хочешь что-бы она размещалась??
Ничего, стилем это не решить только скриптом
Отсутствует
но там выше селекторы неприкаянные остались
и чем это грозит?
Отсутствует
MAD FREQUENCY
Вам же подсказали что необходимо убрать, а вы сделали по своему, а надо было так:
#alltabs-button, :root:not([customizing]) #TabsToolbar #new-tab-button, #tabbrowser-arrowscrollbox > spacer { display: none !important; }
Win7
Отсутствует
Ребят, помогите разобраться. Контекстное меню - открыть в другом браузере страницу или ссылку.
// Этот скрипт работает в главном окне браузера если включено в настройках var ucf_custom_script_win = { initialized: false, unloadlisteners: [], load: function() { if (this.initialized) return; this.initialized = true; // this.specialwidgets.constructor(); // <-- Special Widgets // this.autohidesidebar.constructor(); // <-- Auto Hide Sidebar /* ************************************************ */ this.contextmenuopenwith.constructor(); // Здесь может быть ваш код который сработает по событию "load" не раньше /* ************************************************ */ if (this.unloadlisteners.length < 1) return; window.addEventListener("unload", this, false); }, handleEvent: function(event) { this[event.type](event); }, unload: function() { window.removeEventListener("unload", this, false); this.unloadlisteners.forEach((str) => { try { this[str].destructor(); } catch (e) {} }); }, contextmenuopenwith: { _eventlisteners: [], constructor: function() { var attrimage = true; // true или false Добавить иконки (атрибут "image") или нет var submenu = false; // true или false Добавить подменю для пунктов или нет // ['ID пункта', 'имя приложения', 'путь к приложению', 'аргументы через пробел (то что в двойных кавычках считается за один аргумент)', 'иконка (для ОС Windows необязательно)'], var arrayWindows = [ // для Windows ["iexplore", "IE", "C:\\Program Files\\Internet Explorer\\iexplore.exe", "%OpenURI"], ["TOR Browser", "TOR", "C:\\Portable\\Tor Browser\\Browser\\firefox.exe", "-P,default,-new-tab,%OpenURI"], ]; var arrayLinux = [ // для Linux ['smplayer', 'SMPlayer', '/usr/bin/smplayer', '%OpenURI', 'moz-icon://stock/smplayer?size=menu'], ['vlc', 'VLC', '/usr/bin/vlc', '%OpenURI', 'moz-icon://stock/vlc?size=menu'], ['uget', 'uGet', '/usr/bin/uget-gtk', '%OpenURI', 'moz-icon://stock/uget-icon?size=menu'], ]; var arrayMacos = [ // для MacOS [], ]; var arrayOS, platform = AppConstants.platform, length; if (platform == "win") arrayOS = arrayWindows; else if (platform == "linux") arrayOS = arrayLinux; else if (platform == "macosx") arrayOS = arrayMacos; else return; if (!(length = arrayOS.length)) return; var addEventListener = this.addEventListener.bind(this); ucf_custom_script_win.unloadlisteners.push("contextmenuopenwith"); var popup = document.querySelector("#contentAreaContextMenu"), seppage = popup.querySelector("#context-sep-viewbgimage"), sepopen = popup.querySelector("#context-sep-open"), fragpage = document.createDocumentFragment(), fraglink = document.createDocumentFragment(), subpage = "", sublink = ""; if (length == 1) submenu = false; if (!submenu) { subpage = "Открыть страницу в "; sublink = "Открыть ссылку в "; } arrayOS.forEach(item => { var id = item[0], name = item[1], path = item[2], arg = !item[3] ? "" : item[3], iconpath; if (!id || !name || !path) return; var menuitem_0 = document.createXULElement("menuitem"); menuitem_0.id = `open-current-page-with-${id}`; menuitem_0.className = "menuitem-iconic open-current-page-with-application"; menuitem_0.setAttribute("label", `${subpage}${name}`); menuitem_0.applicationpath = path; menuitem_0.applicationarg = arg; if (attrimage) { iconpath = !item[4] ? (`moz-icon://file://${path}?size=16`) : item[4]; menuitem_0.setAttribute("image", iconpath); } fragpage.append(menuitem_0); addEventListener(menuitem_0, "command", function(event) { try { var target = event.currentTarget, arg = target.applicationarg, file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath(target.applicationpath); if (!file.exists() || !file.isExecutable()) return; arg = (arg !== "") ? arg.split(/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/g).map(sp => { if (/%OpenURI/g.test(sp)) return sp.replace(/^"|"$/g, "").replace("%OpenURI", decodeURIComponent(gBrowser.currentURI.spec)); return sp.replace(/^"|"$/g, ""); }) : []; var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.runwAsync(arg, arg.length); } catch(e) {} }); var menuitem_1 = document.createXULElement("menuitem"); menuitem_1.id = `open-link-with-${id}`; menuitem_1.className = "menuitem-iconic open-link-with-application"; menuitem_1.setAttribute("label", `${sublink}${name}`); menuitem_1.applicationpath = path; menuitem_1.applicationarg = arg; if (attrimage) menuitem_1.setAttribute("image", iconpath); fraglink.append(menuitem_1); addEventListener(menuitem_1, "command", function(event) { try { var target = event.currentTarget; var arg = target.applicationarg; var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath(target.applicationpath); if (!file.exists() || !file.isExecutable() || !window?.gContextMenu?.linkURL) return; arg = (arg !== "") ? arg.split(/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/g).map(sp => { if (/%OpenURI/g.test(sp)) return sp.replace(/^"|"$/g, "").replace("%OpenURI", decodeURIComponent(gContextMenu.linkURL)); return sp.replace(/^"|"$/g, ""); }) : []; var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.runwAsync(arg, arg.length); } catch(e) {} }); }); if (!submenu) { seppage.before(fragpage); sepopen.before(fraglink); } else { let menu = document.createXULElement("menu"); menu.id = "open-current-page-with-submenu"; menu.className = "menu-iconic open-current-page-with-application"; menu.setAttribute("label", "Открыть страницу в..."); let menupopup = document.createXULElement("menupopup"); menupopup.append(fragpage); menu.append(menupopup); seppage.before(menu); menu = document.createXULElement("menu"); menu.id = "open-link-with-submenu"; menu.className = "menu-iconic open-link-with-application"; menu.setAttribute("label", "Открыть ссылку в..."); menupopup = document.createXULElement("menupopup"); menupopup.append(fraglink); menu.append(menupopup); sepopen.before(menu); } var style = "data:text/css;charset=utf-8," + encodeURIComponent(` #contentAreaContextMenu #context-openlink:not([hidden="true"]) ~ .open-current-page-with-application, #contentAreaContextMenu #context-openlink[hidden="true"] ~ .open-link-with-application { display: none !important; } `); windowUtils.loadSheetUsingURIString(style, windowUtils.USER_SHEET); }, addEventListener: function(...arr) { var elm = arr[0]; if (!elm) return; elm.addEventListener(...arr.slice(1)); this._eventlisteners.push(arr); }, destructor: function() { for(var arr of this._eventlisteners) arr.shift().removeEventListener(...arr); delete this._eventlisteners; } }, autohidesidebar: { sidebar: null, constructor: function() { var sidebar = this.sidebar = document.querySelector("#sidebar-box"); if(!sidebar) return; ["dragenter", "drop", "dragexit"].forEach((type) => { sidebar.addEventListener(type, this, false); }); ucf_custom_script_win.unloadlisteners.push("autohidesidebar"); }, destructor: function() { var sidebar = this.sidebar; ["dragenter", "drop", "dragexit"].forEach((type) => { sidebar.removeEventListener(type, this, false); }); }, handleEvent: function(event) { this[event.type](event); }, dragenter: function() { if (!this.sidebar.hasAttribute("sidebardrag")) this.sidebar.setAttribute("sidebardrag", "true"); }, drop: function() { if (this.sidebar.hasAttribute("sidebardrag")) this.sidebar.removeAttribute("sidebardrag"); }, dragexit: function(event) { var sidebar = this.sidebar; var boxObj = sidebar.getBoundingClientRect(), boxScrn = !sidebar.boxObject ? sidebar : sidebar.boxObject; if ((!event.relatedTarget || event.screenY <= (boxScrn.screenY + 5) || event.screenY >= (boxScrn.screenY + boxObj.height - 5) || event.screenX <= (boxScrn.screenX + 5) || event.screenX >= (boxScrn.screenX + boxObj.width - 5)) && sidebar.hasAttribute("sidebardrag")) sidebar.removeAttribute("sidebardrag"); } } }; if (window.document.readyState != "complete") { window.addEventListener("load", function load() { window.removeEventListener("load", load, false); ucf_custom_script_win.load(); }, false); } else ucf_custom_script_win.load();
+++++++
Виноват, разобрался уже сам. Я его немного редактировал и вот это дело не учел. Перезапустил с созданием нового кэша и заработал нормально.
Отредактировано ez7pac (16-08-2020 17:20:40)
Отсутствует
Добрый день. Хочу спросить специалистов . Отключил поиск из адресной строки "browser.urlbar.megabar-fals" , пропал цвет адресной строки . Как вернуть цвет при отключённом поиске . Красил кодом приведённым ниже .
#urlbar, #searchbar, .searchbar-textbox { background-color: #dbebf5 !important; border-color: #eff9ff !important; border-radius: 1000px !important; overflow: hidden !important; }
Отсутствует
"-P,default,-new-tab,%OpenURI"
читайте внимательней там комментарии есть
// ['ID пункта', 'имя приложения', 'путь к приложению', 'аргументы через пробел (то что в двойных кавычках считается за один аргумент)', 'иконка (для ОС Windows необязательно)'],
и лучше в одинарных кавычках или обратных `аргументы` чтобы можно было добавить что-то в двойных кавычках.
Да и скрипт уже был обновлен https://forum.mozilla-russia.org/viewto … 54#p782454
Отредактировано Vitaliy V. (16-08-2020 17:57:45)
Отсутствует
Вит
какая тема, эта ваша osxli10?
Отсутствует