V postavitvi spletnega mesta se uporablja meni s spustnimi odseki podmenija, da se jasneje predstavi struktura odsekov in pododdelkov, hkrati pa se prihrani prostor na strani. Izvajati tak mehanizem ni tako težko: v članku je naveden eden od primerov izvajanja.
Navodila
Korak 1
Spodaj je celotna izvorna koda strani. Opisi slogov so nameščeni neposredno v besedilu strani. Niti html niti css te različice izvedbe menija ne vsebujeta zapletenih konstrukcij, ki zahtevajo podrobno razlago.
2. korak
<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN"
"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Preprost spustni meni s pododdelki
* {
družina pisav: arial;
velikost pisave: 16px;
}
/ * za starejše brskalnike IE * /
telo {vedenje: url ("csshover.htc");}
ul, li, a {
zaslon: blok;
marža: 0;
oblazinjenje: 0;
meja: 0;
}
ul {
širina: 150px;
obroba: 1px trdno srebro;
ozadje: belo;
slog sloga: noben;
}
li {
položaj: sorodnik;
oblazinjenje: 1px;
barva ozadja: srebrna;
z-indeks: 9;
}
li.folder {background-color: silver;}
li.folder ul {
položaj: absolutno;
levo: 111 slikovnih pik; / * Samo IE * /
zgoraj: 5 slikovnih pik;
}
li.folder> ul {levo: 140px;} / * za druge * /
a {
oblazinjenje: 2px;
obroba: 1px trdno bela;
dekoracija besedila: nobena;
barva: črna;
teža pisave: krepko;
širina: 100%; / * za IE * /
}
li> a {širina: samodejno;} / * za druge * /
li a {
zaslon: blok;
širina: 140px;
}
li a.submenu {
barva ozadja: rumena;
}
/ * Poglavja * /
a: hover {
barva obrobe: siva;
barva ozadja: rdeča;
barva: črna;
}
li.folder a: hover {
barva ozadja: rdeča;
}
/ * Odseki * /
li.folder: hover {z-index: 10;}
ul ul, li: hover ul ul {display: none;}
li: hover ul, li: hover li: hover ul {prikaz: blok;}
- 1. Poglavje
-
2. Oddelek
- 2.1 Poglavje
-
2.2 Oddelek
- 2.2.1 Poglavje
- 2.2.2 Poglavje
- 2.2.3 Poglavje
- 2.3 Poglavje
-
3. Oddelek
- 3.1 Poglavje
- 3.2 Poglavje
- 3.3 Poglavje
- 4. Poglavje
3. korak
Če želite uporabiti možnost za podporo že zastarelim spremembam brskalnika, je treba v blok za opis sloga (takoj za tem) dodati dodatno vrstico (komentarja vam ni treba dodati):
/ * za starejše brskalnike IE * /
telo {vedenje: url ("csshover.htc");}
4. korak
Nato ustvarite ločeno stran, katere vsebina je prikazana spodaj.
window. CSSHover = (function () {var m = / (^ | / s) ((([^ a] ([^] +)?) | (a ([^ #.] [^] +) +)):(lebdenje | aktivno | fokus)) / i; var n = / (. *?):(lebdenje | aktivno | fokus) / i; var o = / [^:] +: ([az / -] +). * / i; var p = / (. ([a-z0-9 _ / -] +): [az] +) | (: [az] +) / gi; var q = / \. ([a-z0-9 _ / -] * vklopljeno (lebdenje | aktivno | fokus)) / i; var s = / msie (5 | 6 | 7) / i; var t = / backcompat / i; var u = {indeks: 0, seznam: ['text-kashida', 'text-kashida-space', 'text-justify'], get: function () {return this.list [(this.index ++)% this. list.length]}}; var v = function (c) {return c.replace (/-(.)/ mg, function (a, b) {return b.toUpperCase ()})}; var w = {elementi: , povratni klici: {}, init: function () {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. import; var l = b.length; for (var i = 0; i <l; i ++) {this.parseStylesheet (a.imports )}} catch (securityException) {} } preizkusite {var c = a. rules; 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.replace (o, 'na $ 1'); var g = c.replace (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 + ': expression (CSSHover (this, "'+ f +'", "'+ h +'", "'+ k +'")) '); this.callbacks = true} b.addRule (g, d)} }, popravek: funkcija (a, b, c, d) {poskusite {var f = a.parentNode.currentStyle [d]; a.style [d] = f} catch (e) {a.runtimeStyle [d] = ''} if (! a.csshover) {a.csshover = } if (! a.csshover [c]) {a.csshover [c] = true; var g = nov CSSHoverElement (a, b, c); this.elements.push (g)} vrni b}, razloži: function () {poskusi {var l = this.elements.length; for (var i = 0; i <l; i ++) {this.elements .unload ()} this.elements =; this.callbacks = {}} catch (e) {}}}; var x = {onhover: {aktivator: 'onmouseenter', deaktiviranje: 'onmouseleave'}, onactive: {aktivator: 'onmousedown', deaktivator: 'onmouseup'}, onfocus: {aktivator: 'onfocus', deaktivator: 'onblur'}}; funkcija CSSHoverElement (a, b, c) {this.node = a; to.t ype = b; var d = novo 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 = {load: 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 ()}); return funkcija (a, b, c, d) {if (a) {return w.patch (a, b, c, d)} else {w.init ()}}}) ();
5. korak
To stran je treba shraniti z imenom csshover.htc in jo postaviti na isto mesto kot glavna stran.