|
|||
![]()
Haalo da draußen,
ich habe folgendes problem: ich möchte via styleswitcher dem user die möglichkeit geben, mehrere stylesheets unabhängig voneinander zu aktivieren/deaktivieren. also z.B.: Stylesheets für Schriftgröße: klein | standard | groß Stylesheet für Kontrast: hoch | standard Stylesheet für Layout: flexibel | fix und das ganze sollte natürlich auch noch in einem cookie gespeichert werden ... hat da jemand erfahrung damit? danke für euren input, grüße, captain |
Sponsored Links |
|
||||
![]()
Hast du Lust auf eine Grundsatzdiuskussion?
![]() Zitat:
Zitat:
a) Dein Standard-Stylesheet sollte schon vorher guten Kontrast haben und b) auch hier kann der Benutzer selber entweder einfach den Stylesheet ausschalten (du benutzt doch semantisch sinnvolles HTML?) oder die eigenen Farben benutzen. Zitat:
Zitat:
D.h. der Benutzer muss "nur" entweder Cookies *oder* JavaScript deaktiviert haben, und prompt kann er die "Features", die mit großer Mühe einbaust, nicht verwenden. Robin |
Sponsored Links |
|
|||||
![]()
tztztztz, das wollte ich eigentlich vermeiden
![]() ich kenne sämtliche argumente pro/contra in bezug auf solche techniken... aber von mir aus (obwohl ich eigentlich keine zeit habe ...): Zitat:
Zitat:
und wenn der benutzer selber das stylesheet ausschaltet bekommt er trotzdem standardmäßig nur schwarze schrift auf weißem grund. manche user brauchen aber eine invertierte ansicht. außerdem wissen viele user nicht, wie man ein stylesheet ausschaltet (siehe oben, mein DAD). u.s.w.u.s.f. Zitat:
Zitat:
Zitat:
für die allgemeinheit: es ist immer leicht vorschnell zu urteilen und zu kritisieren. es geht bei barrierefreiheit nicht darum, nur behinderte menschen zu erreichen, sondern möglichst alle: mensch wie maschine. einem blinden ist es nämlich völlig egal, wie eine seite grafisch gestaltet ist, einem sehenden aber eventuell nicht. deswegen sind styleswitcher eine möglichkeit, daß der user die seite ein wenig an seine bedürfnisse anpassen kann. ABER ER MUSS JA NICHT!!! das ist das gute daran. aber wenn es nur einem menschen hilft, daß er innerhalb der seite mit einem klick die schriftgröße ändern kann, habe ich schon gewonnen ... viele grüße vom captain! p.s. weiß trotzdem noch jemand einen rat? |
|
||||
![]()
Hi,
ich hatte mal eine Zeitlang einen Styleswitcher in JavaScript, ich glaube, er liegt noch auf meinem Webspace: http://www.rorkvell.de/styleswitcher.js Ich bin wieder davon abgekommen. Aus mehreren Gründen. Zunächst mal habe ich diese Style-Alternativen per "alternate stylesheet" eingebaut. Firefox und ich glaube Opera haben so von Haus aus die Möglichkeit, umzuschalten. Und für den Firefox gibt es eine Extension, die diese Wahl permanent macht. Sehr empfehlenswert. Dann musste ich feststellen, daß Konqueror und Safari, die beide auf KHTML basieren, das "alternate" ignorieren und per Zufall die verschiedenen Styles der verschiedenen alternate stylesheets durcheinander mischen. Kein schöner Anblick! Ich habe desweiteren festgestellt, daß Konqueror und Safari beide wie der IE im http-Header "text/html" anfordern, der Firefox hingegen mit höherer Priorität "application/xhtml+xml". Also habe ich die alternate stylesheets aus den html-Dateien rausgenommen und in den xhtml-Dateien dringelassen. Damit hat sich dann ganz nebenbei die Notwendigkeit für ein JavaScript styleswitcher erübrigt, weil der FF das ja von Haus aus kann. Was Opera macht, weiß ich nicht. Prinzipiell bin ich sehr für alternate stylesheets. Aber anscheinend ist das bei heute üblichen Clients nicht so einfach. |
|
|||
![]()
Schon gut, schon gut
![]() Der Grund, warum ich auf die Grundsätze eingangen war, war die Tatsache das eine konkrete Frage fehlte und es mir schein, als seinst du ein Anfänger, dem eine Grundsatzdiskussion nicht schaden könnte. Jetzt weiß ich aber, das du sicher kein Anfänger bist ![]() Das Problem ist das aber immer noch eine konkrete Frage fehlt... Nein, ich habe keine Erfahrung mit Style-Switchern, aber ich könnte als jemand, der sich gut mit JavaScript auskennt, wahrscheinlich trotzdem seitenweise über das Thema schreiben, nur will ich das nicht. Vielleicht wenn du konkreter angibst was du wissen willst, bzw. was überhaupt dein Wissensstand bzgl. JavaScript im allgemeinen ist, könnte ich Dir besser vielleicht helfen. Robin |
|
|||
![]()
@ siegfried
danke für deine antwort. das styleswitcher-js auf deiner seite ist glaube ich das von alistapart. das ist zwar gut, kann aber keine stylesets verarbeiten, sprich die unterscheidung zwischen z.b. fontgrößen und kontrast. @ RoToRa danke für das einsehen ![]() meine konkrete frage war, wie ich es am besten angehe, daß man eben solche stylesets unabhängig voneinander verarbeiten kann (siehe anfangserklärung). ich bin leider kein javascript profi (deswegen auch das posting), verstehe aber die syntax und beschäftige mich gerade mit dom-scripting (empfehlenswertes buch: http://www.domscripting.com/book/) aber ich verlange natürlich kein fertiges script. mich hat es nur gewundert, daß ich über google überhaupt nix passendes gefunden habe. nur für php gibt es einen styleswitcher der meinen ansprüchen genügen würde (http://www.contrastsweb.com/switcher/v2/). ich bräuchte einen denkansatz, wie ich z.b. den styleswitcher von alistapart so umbauen könnte, das er für meine ansprüche funktioniert. hier nochmal der link: http://www.alistapart.com/stories/alternate/ grüße vom captain |
|
||||
![]()
Hi,
stimmt. Ja, das stammt ursprünglich von AListApart. Ich hab's geringfügig geändert. Und ja, es ist einfach dazu da, vorhandene alternate stylesheets auszutauschen. Wenn Du nur vorhandene Styles verändern willst, wie z.B. Fontgröße, dann schau doch mal bei EFA vorbei: http://www.einfach-fuer-alle.de/ Die haben, glaube ich, Sowas realisiert. Zumindest mit der Schriftgröße. Selber habe ich mit Sowas keine Erfahrung. Speziell die Schriftgröße ist bei mir sowieso nicht festgezurrt, so daß das mit Browsermitteln problemlos änderbar ist, und andere Dinge, wie z.B. spezielle Kontrastreiche Versionen, mache ich halt doch lieber über komplette alternate stylesheets. Übrigens, nur so eine Idee: Es müsste doch reichen, wenn Du die Fontgröße des body Elements per JavaScript änderst. Zumindest dann, wenn alle Fontgrößen relativ dazu definiert sind. Geändert von Siegfried (05.09.2006 um 14:54 Uhr) |
|
|||
![]()
@siegfried
jaja, wenn man den wald vor lauter bäumen nicht mehr sieht ... ich habe vor lauter styleswitcher-gedöns völlig übersehen, daß ich so einfache dinge wie fontgröße auch direkt über javascript ansteuern kann. das war eine gute idee!! danke! ich werde das mal ausprobieren... grüße, captain |
|
|||
![]()
So, nun habe ich ein wenig an dem bestehendem script von alistapart rumgeschraubt und möchte es euch a) nicht vorenthalten und b) könntet ihr mir vielleicht tipps geben, wie ich das script eleganter/sauberer schreiben kann, da ich ja leider kein javascript-profi bin.
das script habe ich so umgebaut, daß ich nun mehrere stylesheets unabhängig voneinander ansprechen kann. aber schaut selbst. here we go: Code:
/************* Cookie Verwaltung **************/ function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } // ---------------------------------------------- // StyleSwitcher functions written by Paul Sowden // http://www.idontsmoke.co.uk/ss/ // - - - - - - - - - - - - - - - - - - - - - - - // For the details, visit ALA: // http://www.alistapart.com/stories/alternate/ function setActiveStyleSheet(title) { var i, a, setName; if(title.indexOf("set1") != -1){ setName = "set1"; } else if(title.indexOf("set2") != -1){ setName = "set2"; } for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("stylesheet") != -1 && a.getAttribute("title")) { if(a.getAttribute("title").indexOf(setName) != -1){ a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } } } } function getActiveStyleSheet() { var i, a, styleName1, styleName2; var zaehler1 = 0; var zaehler2 = 0; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("stylesheet") != -1 && a.getAttribute("title") && !a.disabled) { zaehler1++; } } for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("stylesheet") != -1 && a.getAttribute("title") && !a.disabled) { zaehler2++; if(a.getAttribute("title").indexOf("set1") != -1){ styleName1 = a.getAttribute("title"); } else if(a.getAttribute("title").indexOf("set2") != -1){ styleName2 = a.getAttribute("title"); } if (zaehler2 == zaehler1){ //alert(styleName1+'/'+styleName2); return styleName1+'/'+styleName2; } } } return null; } window.onload = function(e) { var cookie = readCookie("style"); var title = cookie ? cookie : null; if(cookie){ if (title != 'null'){ var cookieInhalt = new Array(); cookieInhalt = title.split('/'); eintraege = cookieInhalt.length; for(i=0;i<=eintraege-1;i++){ if (cookieInhalt[i] != "undefined") { setActiveStyleSheet(cookieInhalt[i]); } } } } } window.onunload = function(e) { var title = getActiveStyleSheet(); createCookie("style", title, 365); } ich habe eine funktionierende version auch nochmal als zip angehängt. styleswitcher-multiple.zip danke schonmal für den input, grüße, captain |
Sponsored Links |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Stylesheets ignorieren | Tim40 | CSS | 6 | 11.04.2008 00:51 |
Stylesheets: Medientypen | Despairing | CSS | 4 | 10.06.2006 19:58 |
Mehrere Stylesheets | Tex | CSS | 4 | 24.10.2005 20:35 |
Styleswitcher | dietzi | CSS | 2 | 10.10.2003 14:18 |
Wichtigkeit von Stylesheets | H.Wiedow | CSS | 3 | 04.10.2003 22:25 |