|
||||
Ich habe jetzt ein eigenes Burgermenü gebaut.
Ohne JS. Mit den Elementen input und label im Markup. Ohne Bilder für den Burger und Aussschalter, sondern UTF-8-Zeichen stattdessen als generated content. Mit möglichst wenigen class Attributen. Burger Ob es einen Weg ohne zusätzliches Markup gibt, weiß ich nicht. Vermutlich nicht, sonst wäre es mir vermutlich beim Recherchieren über den Weg gelaufen. HTML-Code:
input#burger, input#burger + label { display: none; } @media screen and (max-width: 40em) { input#burger + label { display: block; padding: 0.5em; background: gray; cursor: pointer; color: white; } /*Nav soll nicht zu sehen sein, wenn Checkbox nicht gewählt ist*/ input#burger[type="checkbox"]:not(:checked) + label:before { content: "☰"; } nav { position: absolute; top: -9999px; } /*Nav soll zu sehen sein, wenn Checkbox gewählt ist*/ input#burger[type="checkbox"]:checked + label:before { content: "✕"; } input#burger[type="checkbox"]:checked ~ nav, input#burger[type="checkbox"]:checked ~ footer { position: relative; top: 0; } } HTML-Code:
<!-- Begin: Extra Markup --><input type="checkbox" id="burger"><label for="burger"></label><!-- End: Extra Markup --> <nav> <ol> <li><a href="/">Home</a></li> <li><a href="/zimmer">Zimmer</a></li> <li><a href="/seminarbereich">Seminarbereich</a></li> <li><a href="/galerie">Galerie</a></li> <li><a href="/anfrage">Anfrage</a></li> <li aria-current="page"><strong>Lage</strong></li> <li><a href="/service">Service</a></li> </ol> </nav> <footer> <ol> <li><a href="/agb">AGB</a></li> <li><a href="/kontakt-impressum">Kontakt/Impresum</a></li> <li><a href="/datenschutz">Datenschutz</a></li> </ol> </footer> Google schreibt auf https://support.google.com/webmaster.../7451184?hl=de "Zu vermeiden: Irreführendes Verbergen von Text vor Nutzern, der für Suchmaschinen jedoch angezeigt wird" Ist die oben verwendete Technik HTML-Code:
{ position: absolute; top: -9999px;}
__________________
Geändert von AndreasB (09.03.2018 um 13:46 Uhr) |
Sponsored Links |
|
|||
Du kannst keine HTML Elemente mit ::before generieren.
Wenn dir accessibility nicht sehr wichtig ist dann kann man deine Lösung so lassen, ja Falls es dir wichtig ist: Wieso verwendest du die Wörter "Himmel" und "multiplizieren" für die Icons? Bzw würde ich testen, wie die icons vorgelesen werden. Auch finde ich die Bedienung, wenn es zB einen Inhalt zwischen Navigation und footer gibt, sehr seltsam. Aber gut, das muss ja keine fertige Version sein. Bezüglich des versteckens: Nachdem du deine Links auf "großen" Geräten normal anzeigst dürfte das so passen. Google versteht ja auch mediaqueries. |
Sponsored Links |
|
|||
Sicher gibt es das, du kannst einen Text nur für screenreader einbinden. Siehe zB die sr-only Klasse von bootstrap, damit wird Text für normale Besucher versteckt und screenreader nutzer (deshalb auch der Klassenname, ScreenReader-only) bekommen den Text vorgelesen. Andererseits gibt es auch das aria- attribute, welche definieren, was vorgelesen werden soll. Das aria-label attribut erscheint mir hier auf den ersten Blick passend.
Bezüglich des footers: Ich meinte eigentlich folgendes: Setze ein <div style="height: 500px"> </div> zwischen deinen header und footer und dann führe deine Seite aus. Oder ist das dann so gewünscht? Fixe höhen/breiten (oder mindest-höhen/breiten) kannst du per CSS vergeben, dafür musst du deinem Element aber wohl zuerst display: block (oder inline-block) vergeben. Edit: Da werden keine 2 fonts geladen, das ist alles eine font. Edit 2: Scrollen ist ja auf einem schmalen Display ungleich langwieriger und mühsamer, ganz besonders, wenn es ein Touch-Display ist. Das wage ich zu bezweifeln, da smartphones ja durchaus erkennen, wie "aggressiv" gescrollt wird. Ganz oben, bzw. ganz unten bin ich auf einem Smartphone recht schnell, aber das empfindet wohl jeder anders. Geändert von cloned (09.03.2018 um 15:31 Uhr) |
|
||||
Hierfür gibt es auch was ,was für dich passen könnte https://codepen.io/basti1012/pen/BryNwV
Kannst alles unnötige ja raus schmeissen was nicht gebraucht wird Geändert von basti1012 (09.03.2018 um 16:37 Uhr) |
|
||||
Zitat:
Also nicht Bootstrap-Code, sondern compiliertes HTML/CSS. Zitat:
Zitat:
Nochmal mein Ziel: Auf einem schmalen Display sollen die Links aus dem Header und dem Footer im Burgermenü stehen. Den Grund habe ich genannt. Verfolgst Du dasselbe Ziel? Zitat:
Zur Höhe nochmal: Hast Du eine Idee warum sie sich beim Klicken verändert?
__________________
|
|
||||
Zitat:
Da es sehr viele Gestaltangaben enthält, blicke ich noch nicht durch, worin es sich im Wesentlichen von meinem Beispiel unterscheidet. Könntest Du bitte diese Unterschiede nennen? Worin siehst Du Vor-/Nachteile?
__________________
|
|
||||
Du versuchst ja alles mit so wennig Code wie möglich, alles zu regeln.In den Falle ist dein natürlich besser. Wenn man jetzt ein spielkind ist und auf animationen und Farben steht ist meins natürlich schöner.
Dann laufen beide ohne Javascript ,das ist schon mal gut. Bei mir ist noch eine Bibiliothek eingebunden für das Burger Zeichen.Das kann man aber raus nehmen und über content:'X'; regeln wie du das gemacht hast. Ja, bei mir könnte man noch einiges raus löschen was für Optik da ist.Aber wenniger Code als wie bei dein wird es nicht. Ich glaube du hast da schon das minimum erreicht was man brauch damit die Funktion geht,noch wenniger geht glaube ich nicht.Auser mit 2 Zeile Javascript vieleicht. Ansonsten sehe ich keine Vorteile oder Nachteile an den beiden Scripten |
|
||||
@basti
Da missverstehst Du mich. Ich mag animierte, geschmeidige Einblendungen sogar sehr gern. Auch das Spiel mit Gradienten etc. Hier geht es jedoch allein um die Technik des Ein- und Ausblendens. Da ist es hilfreich, wenn jeglicher CSS-Code, der dafür nicht zwingend benötigt wird, auch nicht vorkommt. Das ist sozusagen eine sehr grundlegende Frage, wie man Testcases baut Vereinfacht auch die Fehlersuche. Ich bastle gerade an einem Burger mit ":target".
__________________
|
Sponsored Links |
|
||||
Ja target geht auch ,so brauch man auch kein Javascript. Du hast ja auch recht ,je wenniger Code,und so aufgeräumter er ist ,vereinfacht die Fehlersuche.Aber wenn erstmal alles richtig läuft dann ist es nicht mehr so wichtig. Nach stylen kann man dann immer noch ,vorallem wenn der Code aufgeräumt ist ,dann blickt da auch jeder durch.Finde das bei Bootstramp immer alles so voll geklatscht.Das ist auch nicht mein Fall ,obwohl das Coden damit angeblich einfacher sein soll.
|
Sponsored Links |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
FAQ -- Häufig gestellte Fragen und häufig gegebene Antworten | mazzo | CSS | 10 | 05.04.2012 17:32 |
Navi: Eltern-Element verbreitert sich beim hover auf Kind-Element | img | CSS | 0 | 07.12.2010 18:42 |
Darstellungsproblem | flohpapa | CSS | 3 | 16.12.2009 08:55 |
IE verschiebt Navi Menü | macmensa | CSS | 7 | 17.08.2009 16:45 |
Vertikales Menü streikt im IE6 | kopfaquarium | CSS | 1 | 16.10.2007 14:45 |