En meny med rullegardinmenyavsnitt brukes i nettstedsoppsettet for å tydeligere presentere strukturen til seksjoner og underavsnitt, mens du sparer sideplass. Det er ikke så vanskelig å implementere en slik mekanisme: et av implementeringseksemplene er gitt i artikkelen.
Bruksanvisning
Trinn 1
Nedenfor er den fullstendige kildekoden til siden. Beskrivelser av stiler plasseres direkte i teksten på siden. Verken html eller css for denne varianten av menyimplementeringen inneholder noen komplekse konstruksjoner som krever detaljert forklaring.
Steg 2
<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // NO"
"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Enkel rullegardinmeny med underavsnitt
* {
font-familie: arial;
skriftstørrelse: 16px;
}
/ * for eldre IE-nettlesere * /
kropp {oppførsel: url ("csshover.htc");}
ul, li, a {
skjerm: blokk;
margin: 0;
polstring: 0;
grense: 0;
}
ul {
bredde: 150px;
kant: 1px solid sølv;
bakgrunn: hvit;
liste-stil: ingen;
}
li {
posisjon: relativ;
polstring: 1px;
bakgrunnsfarge: sølv;
z-indeks: 9;
}
li.mappe {bakgrunnsfarge: sølv;}
li.mappe ul {
posisjon: absolutt;
venstre: 111px; / * Bare IE * /
topp: 5px;
}
li.mappe> ul {venstre: 140px;} / * for andre * /
en {
polstring: 2px;
kant: 1px solid hvit;
tekstdekorasjon: ingen;
farge svart;
skriftvekt: fet;
bredde: 100%; / * for IE * /
}
li> a {bredde: auto;} / * for andre * /
li a {
skjerm: blokk;
bredde: 140px;
}
li a.submenu {
bakgrunnsfarge: gul;
}
/ * Kapitler * /
a: sveve {
kantfarge: grå;
bakgrunnsfarge: rød;
farge svart;
}
li.mappe a: sveve {
bakgrunnsfarge: rød;
}
/ * Seksjoner * /
li.mappe: sveve {z-indeks: 10;}
ul ul, li: svever ul ul {display: none;}
li: svever ul, li: svever li: svever ul {display: blokk;}
- 1. Kapittel
-
2. Seksjon
- 2.1 Kapittel
-
2.2 Avsnitt
- 2.2.1 Kapittel
- 2.2.2 Kapittel
- 2.2.3 Kapittel
- 2.3 Kapittel
-
3. Seksjon
- 3.1 Kapittel
- 3.2 Kapittel
- 3.3 Kapittel
- 4. Kapittel
Trinn 3
Hvis du vil bruke muligheten til å støtte allerede utdaterte nettleserendringer, bør en ekstra linje legges til stilbeskrivelsesblokken (umiddelbart etter) (du trenger ikke å legge til en kommentar):
/ * for eldre IE-nettlesere * /
kropp {oppførsel: url ("csshover.htc");}
Trinn 4
Opprett deretter en egen side, hvis innhold vises nedenfor.
vindu. CSSHover = (funksjon () {var m = / (^ | / s) ((([^ a] ([^] +)?) | (a ([^ #.] [^] +) +)):(hover | aktiv | fokus)) / i; var n = / (. *?):(hover | aktiv | fokus) / i; var o = / [^:] +: ([az / -] +). * / i; var p = / (. ([a-z0-9 _ / -] +): [az] +) | (: [az] +) / gi; var q = / \. ([a-z0-9 _ / -] * på (svever | aktiv | fokus)) / i; var s = / msie (5 | 6 | 7) / i; var t = / backcompat / i; var u = {indeks: 0, liste: ['text-kashida', 'text-kashida-space', 'text-justify'], get: function () {return this.list [(this.index ++)% dette. list.length]}}; var v = function (c) {return c.replace (/-(.)/ mg, function (a, b) {return b.toUpperCase ()})}; var w = {elements: , tilbakeringinger: {}, init: funksjon () {if (! s.test (navigator.userAgent) &&! t.test (window.document.compatMode)) {return} var a = window.document.styleSheets, l = a.length; for (var i = 0; i <l; i ++) {this.parseStylesheet (a )}}, parseStylesheet: function (a) {if (a.imports) {try {var b = a. importerer; var l = b.length; for (var i = 0; i <l; i ++) {this.parseStylesheet (a.imports )}} catch (securityException) {} } prøv {var c = a. regler; var r = c.length; for (var j = 0; j <r; j ++) {this.parseCSSRule (c [j], a)}} ca tch (someException) {}}, parseCSSRule: function (a, b) {var c = a.selectorText; if (m.test (c)) {var d = a.style.cssText; var e = n.exec (c) [1]; var f = c.plasser (o, 'på $ 1'); var g = c.plasser (p, '. $ 2' + f); var h = q.exec (g) [1]; var i = e + h; if (! This.callbacks ) {var j = u.get (); var k = v (j); b.addRule (e, j + ': uttrykk (CSSHover (dette, "'+ f +'", "'+ h +'", "'+ k +'")) '); this.callbacks = true} b.addRule (g, d)} }, patch: funksjon (a, b, c, d) {prøv {var f = a.parentNode.currentStyle [d]; a.style [d] = f} fangst (e) {a.runtimeStyle [d] = ''} if (! a.csshover) {a.csshover = } if (! a.csshover [c]) {a.csshover [c] = true; var g = new CSSHoverElement (a, b, c); this.elements.push (g)} return b}, unload: function () {prøv {var l = this.elements.length; for (var i = 0; i <l; i ++) {this.elements .unload ()} this.elements =; this.callbacks = {}} catch (e) {}}}; var x = {onhover: {activator: 'onmouseenter', deactivator: 'onmouseleave'}, onactive: {activator: 'onmousedown', deactivator: 'onmouseup'}, onfocus: {activator: 'onfocus', deactivator: 'onblur'}}; function CSSHoverElement (a, b, c) {this.node = a; this.t ype = b; var d = ny RegExp ('(^ | / s)' + c + '(s | $)', 'g');
this.activator = function () {a.className + = '' + c}; this.deactivator = function () {a.className = a.className.replace (d, '')}; a.attachEvent (x .activator, this.activator); a.attachEvent (x .deactivator, this.deactivator)} CSSHoverElement.prototype = {unload: function () {this.node.detachEvent (x [this.type]. activator, this.activator); this.node.detachEvent (x [this.type].deactivator, this.deactivator); this.activator = null; this.deactivator = null; this.node = null; this.type = null }}; window.attachEvent ('onbeforeunload', function () {w.unload ()}); returfunksjon (a, b, c, d) {if (a) {return w.patch (a, b, c, d)} annet {w.init ()}}}) ();
Trinn 5
Denne siden skal lagres med navnet csshover.htc og plasseres på samme sted som hovedsiden.