Hallo Jack D., unter Umständen könntest Du auch mit dem Gedanken spielen ohne Neuanschaffung eines Rechners in Zukunft einfach Deinen scheinbar veralteten vorhandenen Rechner mit einem alternativen Betriebssystem (z.B. Linux) auszustatten (Diese Lsg. benötigt natürlich Gehirnschmalz, Arbeit, ist aber kostenlos und funktioniert). Das könntest Du sofort machen, oder ...
Beiträge von Mitleser
-
-
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
-
Hallo lenny2 , in 152 wird aus --toolbarbutton-inner-padding --toolbarbutton-padding-inner. Ebenso verhält es sich mit --toolbarbutton-padding-outer. So musste ich z.B. dies ändern um die Buttongröße wieder anzupassen:
-
-
Auch dieses Script könnte für Tester der Nightly 152.0a1 nützlich sein; es erstellt einen Button der die 'Neue Sidebar' ein/aus -schaltet:
(EDIT: stand 16.05 funktionieren die 'Neue' sowie die 'Alte (mit hover-css)' 'noch?' gleichzeitig/parallel)JavaScript
Alles anzeigen// JavaScript Document // developed without AI-based applications or tools // B_UserPrefSidebarRevamp.uc.js // Firefox Nightly 152.0a1 // Quelle: https://www... // Das Script erstellt einen Button, der in about:config boolsche Werte ändert. In der UserConfiguration unter 'const boolPref' kann die zu ändernde Einstellung (hier: sidebar.revamp) festgelegt werden. Das icon/label/tooltiptext kann in der UserConfiguration dem jeweiligen Zustand angepasst werden (true/false). // Der Button schaltet die neue Sidebar ein/aus. Eine Änderung des Wertes benötigt keinen Neustart des Browsers. (function() { if (!window.gBrowser) return; const // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ id = 'UserPref-Sr-button', // Id des Buttons boolPref = 'sidebar.revamp', // Einstellung in about:config deren boolesche Variable geschaltet werden soll labelT = 'Neue Sidebar aktiviert', // Bezeichnung des Buttons bei boolPref=true labelF = 'Neue Sidebar deaktiviert', // Bezeichnung des Buttons bei boolPref=false tooltiptextT = 'Neue Sidebar anzeigen\n[true=>Standardeinstellung]', tooltiptextF = 'Neue Sidebar nicht anzeigen\n[false=>Benutzereinstellung]', // Icon------------------------------------------------------- iconT = '16-control-panel-20_moz.svg', // [Name.Dateiendung] des Symbols für boolPref=true iconF = '16-control-panel-18_moz.svg', // [Name.Dateiendung] des Symbols für boolPref=false bgImage = 'blue', //'transparent' // Farbe des Indikators (zur Unterscheidung mehrerer UserPref-buttons;) iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon enthält iconColorT = 'forestgreen', // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für die Standardeinstellung, bei anderen Icons hat const iconColorT keine Funktion) iconColorF = 'firebrick', // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für die geänderte Usereinstellung, bei anderen Icons hat const iconColorF keine Funktion) // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)); if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) { Services.prefs.setBoolPref('svg.context-properties.content.enabled', true ); } //BUTTON try { CustomizableUI.createWidget({ id: id, defaultArea: CustomizableUI.AREA_NAVBAR, onCreated: (button) => { button.style.MozContextProperties = 'fill, stroke, fill-opacity, stroke-opacity'; button.style.minWidth = 'fit-content'; //bgImage button.style = 'background-image:linear-gradient('+bgImage+','+bgImage+'); background-repeat: no-repeat; background-size: 4px 4px; background-position: left 2px top calc(50% - 8px);'; } }); } catch(e) {}; setTimeout(() => { const button = document.getElementById(id); //start if (Services.prefs.getBoolPref(boolPref) == false ) { button.style.fill = iconColorF; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")'; button.style.fontStyle = 'italic'; button.setAttribute('label', labelF); button.setAttribute('tooltiptext', tooltiptextF); } else if (Services.prefs.getBoolPref(boolPref) == true ) { button.style.fill = iconColorT; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")'; button.style.fontStyle = 'normal'; button.setAttribute('label', labelT); button.setAttribute('tooltiptext', tooltiptextT); } //contextmenu button.addEventListener('contextmenu', e => { if (event.button === 2) { e.preventDefault(); } }); //click button.addEventListener('click', () => { if (event.button === 0) { if (Services.prefs.getBoolPref(boolPref) == false ) { Services.prefs.setBoolPref(boolPref, true); button.style.fill = iconColorT; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")'; button.style.fontStyle = 'normal'; button.setAttribute('label', labelT); button.setAttribute('tooltiptext', tooltiptextT); } else if (Services.prefs.getBoolPref(boolPref) == true ) { Services.prefs.setBoolPref(boolPref, false); button.style.fill = iconColorF; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")'; button.style.fontStyle = 'italic'; button.setAttribute('label', labelF); button.setAttribute('tooltiptext', tooltiptextF); } } }); }, 10); })();Die Icons/Iconpfade sind identisch
Screen:
Es gibt viel zu tun: Packen wir es an!
-
Dieses Script könnte für Tester der Nightly 152.0a1 nützlich sein; es erstellt einen Button der das 'Nova-Design' ein/aus -schaltet:
JavaScript
Alles anzeigen// JavaScript Document // developed without AI-based applications or tools // B_UserPrefNovaEnabled.uc.js // Firefox Nightly 152.0a1 // Quelle: https://www... // Das Script erstellt einen Button, der in about:config boolsche Werte ändert. In der UserConfiguration unter 'const boolPref' kann die zu ändernde Einstellung (hier: browser.nova.enabled) festgelegt werden. Das icon/label/tooltiptext kann in der UserConfiguration dem jeweiligen Zustand angepasst werden (true/false). // Der Button blendet das neue Design 'Nova' ein/aus. Eine Änderung des Wertes benötigt keinen Neustart des Browsers. (function() { if (!window.gBrowser) return; const // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ id = 'UserPref-bNE-button', // Id des Buttons boolPref = 'browser.nova.enabled', // Einstellung in about:config deren boolesche Variable geschaltet werden soll labelT = '"browser.nova.enabled" aktiviert', // Bezeichnung des Buttons bei boolPref=true labelF = '"browser.nova.enabled" deaktiviert', // Bezeichnung des Buttons bei boolPref=false tooltiptextT = '"browser.nova.enabled" aktiviert\n[true=>Benutzereinstellung]', tooltiptextF = '"browser.nova.enabled" deaktiviert\n[false=>Standardeinstellung]', // Icon------------------------------------------------------- iconT = '16-control-panel-20_moz.svg', // [Name.Dateiendung] des Symbols für boolPref=true iconF = '16-control-panel-18_moz.svg', // [Name.Dateiendung] des Symbols für boolPref=false bgImage = 'darkorange', //'transparent' // Farbe des Indikators (zur Unterscheidung mehrerer UserPref-buttons;) iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon enthält iconColorT = 'forestgreen', // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für die Standardeinstellung, bei anderen Icons hat const iconColorT keine Funktion) iconColorF = 'firebrick', // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für die geänderte Usereinstellung, bei anderen Icons hat const iconColorF keine Funktion) // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)); if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) { Services.prefs.setBoolPref('svg.context-properties.content.enabled', true ); } //BUTTON try { CustomizableUI.createWidget({ id: id, defaultArea: CustomizableUI.AREA_NAVBAR, onCreated: (button) => { button.style.MozContextProperties = 'fill, stroke, fill-opacity, stroke-opacity'; button.style.minWidth = 'fit-content'; //bgImage button.style = 'background-image:linear-gradient('+bgImage+','+bgImage+'); background-repeat: no-repeat; background-size: 4px 4px; background-position: left 2px top calc(50% - 8px);'; } }); } catch(e) {}; setTimeout(() => { const button = document.getElementById(id); //start if (Services.prefs.getBoolPref(boolPref) == false ) { button.style.fill = iconColorF; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")'; button.style.fontStyle = 'normal'; button.setAttribute('label', labelF); button.setAttribute('tooltiptext', tooltiptextF); } else if (Services.prefs.getBoolPref(boolPref) == true ) { button.style.fill = iconColorT; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")'; button.style.fontStyle = 'italic'; button.setAttribute('label', labelT); button.setAttribute('tooltiptext', tooltiptextT); } //contextmenu button.addEventListener('contextmenu', e => { if (event.button === 2) { e.preventDefault(); } }); //click button.addEventListener('click', () => { if (event.button === 0) { if (Services.prefs.getBoolPref(boolPref) == false ) { Services.prefs.setBoolPref(boolPref, true); button.style.fill = iconColorT; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")'; button.style.fontStyle = 'italic'; button.setAttribute('label', labelT); button.setAttribute('tooltiptext', tooltiptextT); } else if (Services.prefs.getBoolPref(boolPref) == true ) { Services.prefs.setBoolPref(boolPref, false); button.style.fill = iconColorF; button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")'; button.style.fontStyle = 'normal'; button.setAttribute('label', labelF); button.setAttribute('tooltiptext', tooltiptextF); } } }); }, 10); })(); -
We Love Udo
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
-
im Submenü mit Immer anzeigen etc. sind alle Einträge Radios.
Das hatte ich mir schon gedacht. Im den Screens 1+2 sind aber Symbole für Checkboxen (content: "\2713"; /* a checkmark */) dargestellt.
Naja, in Linux eben nicht da sind Radios Radios und Checkboxen Checkboxen, so wie es im Quellcode steht. Deshalb die Verwirrung.
Aber warum ist deine Darstellung (Screen 3+4) der Radiob. so angelehnt an die Checkb.? Radiob. auch im Zusammenhang mit Websitecontent/about:preferences könnten dort sinnvoller sein. So aber jetzt stelle ich die Menüleiste endgültig auf display:none;
! -
Ah, jetzt macht das Sinn;
Welche Symbole zeigt denn der Mac an diesen Menüpunkten? Nichts/nur Checkboxen? Aber jetzt verstehe ich auch dein "gleichmachendes" css aus Beitrag #35.
Ich betrachte allerdings die Menüleiste als Teil des Browsers und dort wird ja auch zwischen den Check/Radiobuttons unterschieden. Jedenfalls auf Linux:Menüleiste eingeblendet bei offenem Einstellungstab ist dann doch verwirrend, wenn in der Ml. nur Checkboxen zu sehen sind.
Aber das ist schon kleinlich...So und nun blende ich sie wieder aus.. -
Ohje. „Form follows function” erinnert in gewisser Hinsicht an „Never change a running system” –
Der Ausdruck Form follows function (englisch für: ‚Form folgt Funktion‘, im Deutschen oftmals auch als vollständiger Satz „Die Form folgt der Funktion“ gebraucht) (FFF) ist ein Designleitsatz insbesondere aus dem Produktdesign und der Architektur. Die Gestalt (äußere Form) von Gegenständen soll sich dabei aus ihrer Funktion oder ggf. ihrem Zweck ableiten; im Gegenzug kann man nach Abschluss der Formgebung aus der Form des designten Gegenstands gegebenenfalls auf dessen Funktion bzw. Zweck rückschließen.
[Wikipedia]
Aber im Design der Menüleiste von Firefox wird ganz bewusst auf einen Unterschied verzichtet.
Linux fügt hier die Systemsymbole hinzu:
Aber scheinbar habe ich das lediglich falsch verstanden. Im Sidebar-Untermenü verwirrt mich die Darstellung schon ein wenig.
-
, aber wo ist der Funktionsaspekt, bzw. der funktionale Unterschied zw. checkbox und radio
Es besteht ein grundlegender Unterschied zwischen ihnen. In einer Checkbox-Gruppe kann ein Benutzer mehrere Optionen auswählen. Jede Checkbox funktioniert einzeln, sodass der Benutzer jede Antwort einzeln aktivieren oder deaktivieren kann. Optionsfelder hingegen funktionieren als Gruppe und bieten sich gegenseitig ausschließende Auswahlmöglichkeiten.
Wobei die Darstellung Menüleiste > Ansicht > Sidebar als Checkboxen dann nicht richtig wäre, die unter Webseiten-Stil als Radiobuttons aber schon...Im Quellcode: type="checkbox"

Im Quellcode: type="radio"
-
Was Checkboxen und Radiobuttons angeht, gibt es einen Grund sie generell separat zu behandeln, was das Design angeht?
Designregel Nr. 1: Form follows function...
-
gibt es auch noch type radio, s. Bild von einem Leisten Kontextmenü.
Dein Code mit ein paar Anpassungen, mit Fx Icons zum Testen
Checkboxen und Radiobuttons würde ich nicht gleichsetzen wollen, denn sie haben ja jeweils eine spezielle Funktion:
Ups, ein Link mit http:// (ob das wohl gutgeht...)
Aber selbstverständlich ist der Quellcode verbesserungswürdig. Habe ich einfach stumpf rauskopiert, muss aus einer Zeit stammen als ich fill noch nicht auf dem Zettel hatte, is gab es bestimmt noch garnicht. Abgesehen davon würde ich Icons immer lokal speichern. Aber das ist ein anderes Thema... -
Bei mir sieht das so aus; ich denke ich habe (fast) alle checkboxen abgedeckt:
CSS
Alles anzeigenmenupopup > menuitem[type="checkbox"] > img.menu-icon, menupopup > menuitem[type="checkbox"][checked="false"] > img, menupopup > menuitem[type="checkbox"][checked="true"] > img { display: none !important; } menupopup > menuitem[type="checkbox"][checked]::before, menupopup > menuitem[type="checkbox"][checked="true"]::before { content: '' !important; display: block !important; width: 16px !important; height: 16px !important; margin-left: 0px !important; margin-right: 4px !important; background-image: url("../icons/16_checkmark-checked_neongreen.svg") !important; background-repeat: no-repeat !important; background-size: 16px 16px !important; background-position: center !important; } menupopup > menuitem[type="checkbox"][checked]:hover::before, menupopup > menuitem[type="checkbox"][checked="true"]:hover::before{ background-image: url("../icons/16_checkmark-unchecked_white.svg") !important; } menupopup > menuitem[type="checkbox"]::before, menupopup > menuitem[type="checkbox"][checked="false"]::before { content: '' !important; display: block !important; width: 16px !important; height: 16px !important; margin-left: 0px !important; margin-right: 4px !important; background-image: url("../icons/16_checkmark-unchecked_redorange.svg") !important; background-repeat: no-repeat !important; background-size: 16px 16px !important; background-position: center !important; } menupopup > menuitem[type="checkbox"]:hover::before, menupopup > menuitem[type="checkbox"][checked="false"]:hover::before { background-image: url("../icons/16_checkmark-checked_white.svg") !important; } -
FuchsFan , genau das meinte ich; keine Ahnung von javascript und dann auch noch aggressiv mit der Wahrheit umgehen. Ob das Thema erledigt ist, ist nicht Deine Entscheidung!
-
der untere function Block ist KI, und max. 5 Minuten lang getestet, genau wie vermutlich die erste Version, korrekt?
Ja, das ist wohl die Zukunft, aber das man solche unqualifizierte Lösungen auch noch verbreitet/veröffentlicht und dann auch noch stolz darauf ist eine KI bedienen zu können...Schöne neue Welt..
Und wo ist eigentlich der obligatorische Hinweis auf eine KI im Quellcode?
Um dem Problem des Ki-Mißbrauchs etwas entgegensetzen ist eigentlich die Community gefragt (wie Du es gerade gemacht hast) .
-
delta radio Indie - stream
https://deltaradio.streamabc.net/regc-deltaindie-mp3-192-2101701?sABC=69o2s9rs%230%23so5r0n872447n0r535qq75r421n24o0r%23zrqvncynlre&aw_0_1st.playerid=mediaplayer&amsparams=playerid:mediaplayer;skey:1773337071Werbung am Anfang einfach wegscrollen...
-
daher bleibe ich beim derzeigen
Diese Wahlmöglichkeit wirst Du - wenn es soweit ist (in Äonen von Jahren) - sicherlich nicht haben.
-
Die Beispielseite ist bei mir lediglich nicht scrollbar, wenn die Erweiterung I still don't care about cookies aktiv ist.