Jak Vytvořit Podnabídku

Obsah:

Jak Vytvořit Podnabídku
Jak Vytvořit Podnabídku

Video: Jak Vytvořit Podnabídku

Video: Jak Vytvořit Podnabídku
Video: Jak vytvořit Pokestop v Pokémon GO? 2024, Smět
Anonim

V rozložení webu se používá nabídka s rozevíracími podřízenými částmi, aby bylo možné lépe zobrazit strukturu oddílů a podsekcí a zároveň ušetřit místo na stránce. Implementace takového mechanismu není tak obtížná: jeden z příkladů implementace je uveden v článku.

Jak vytvořit podmenu
Jak vytvořit podmenu

Instrukce

Krok 1

Níže je uveden kompletní zdrojový kód stránky. Popisy stylů jsou umístěny přímo v textu stránky. Ani html, ani css této varianty implementace nabídky neobsahuje žádné složité konstrukce, které vyžadují podrobné vysvětlení.

Krok 2

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN"

„https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>

Jednoduché rozbalovací menu s podsekcemi

* {

rodina fontů: arial;

velikost písma: 16px;

}

/ * pro starší prohlížeče IE * /

body {behavior: url ("csshover.htc");}

ul, li, a

displej: blok;

okraj: 0;

výplň: 0;

ohraničení: 0;

}

ul {

šířka: 150px;

okraj: 1px masivní stříbro;

pozadí: bílá;

styl seznamu: žádný;

}

li {

pozice: relativní;

výplň: 1px;

barva pozadí: stříbrná;

z-index: 9;

}

li.folder {barva pozadí: stříbrná;}

li.folder ul {

pozice: absolutní;

vlevo: 111 pixelů; / * Pouze IE * /

nahoře: 5px;

}

li.folder> ul {left: 140px;} / * pro ostatní * /

a {

výplň: 2px;

ohraničení: 1px plná bílá;

textová výzdoba: žádná;

Černá barva;

váha písma: tučné;

šířka: 100%; / * pro IE * /

}

li> a {width: auto;} / * pro ostatní * /

li a {

displej: blok;

šířka: 140px;

}

li a.submenu {

barva pozadí: žlutá;

}

/ * Kapitoly * /

a: hover {

barva ohraničení: šedá;

barva pozadí: červená;

Černá barva;

}

li.folder a: hover {

barva pozadí: červená;

}

/ * Sekce * /

li.folder: hover {z-index: 10;}

ul ul, li: vznášet se ul ul {display: none;}

li: hover ul, li: hover li: hover ul {display: block;}

  • 1. Kapitola
  • 2. Sekce

    • 2.1 Kapitola
    • 2.2 Sekce

      • 2.2.1 Kapitola
      • 2.2.2 Kapitola
      • 2.2.3 Kapitola
    • 2.3 Kapitola
  • 3. Sekce

    • 3.1 Kapitola
    • 3.2 Kapitola
    • 3.3 Kapitola
  • 4. Kapitola
Nabídka s rozevíracími seznamy podnabídek
Nabídka s rozevíracími seznamy podnabídek

Krok 3

Pokud chcete použít tuto možnost k podpoře již zastaralých úprav prohlížeče, měl by být do bloku popisu stylu přidán další řádek (bezprostředně po) (nemusíte přidávat komentář):

/ * pro starší prohlížeče IE * /

body {behavior: url ("csshover.htc");}

Krok 4

Poté vytvořte samostatnou stránku, jejíž obsah je uveden níže.

window. CSSHover = (function () {var m = / (^ | / s) ((([^ a] ([^] +)?) | (a ([^ #.] [^] +) +)):(hover | active | focus)) / i; var n = / (. *?):(hover | active | focus) / i; var o = / [^:] +: ([az / -] +). * / i; var p = / (. ([a-z0-9 _ / -] +): [az] +) | (: [az] +) / gi; var q = / \. ([a-z0-9 _ / -] * on (hover | active | focus)) / i; var s = / msie (5 | 6 | 7) / i; var t = / backcompat / i; var u = {index: 0, list: ['text-kashida', 'text-kashida-space', 'text-justify'], get: function () {return this.list [(this.index ++)% this. list.length]}}; var v = funkce (c) {návrat c.replace (/-(.)/ mg, funkce (a, b) {návrat b.toUpperCase ()})}; var w = {prvky: , zpětná volání: {}, init: function () {if (! s.test (navigator.userAgent) &&! t.test (window.document.compatMode)) {návrat} 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. importy; var l = b.length; for (var i = 0; i <l; i ++) {this.parseStylesheet (a.imports )}} catch (securityException) {} } zkuste {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, 'on $ 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 + ': výraz (CSSHover (this, "'+ f +'", "'+ h +'", "'+ k +'")))); this.callbacks = true} b.addRule (g, d)} }, patch: function (a, b, c, d) {try {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 = new CSSHoverElement (a, b, c); this.elements.push (g)} return b}, unload: function () {try {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', deaktivátor: 'onmouseup'}, onfocus: {activator: 'onfocus', deaktivátor: 'onblur'}}; funkce CSSHoverElement (a, b, c) {this.node = a; toto t ype = b; var d = new 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 ()}); návratová funkce (a, b, c, d) {if (a) {návrat w.patch (a, b, c, d)} else {w.init ()}}}) ();

Krok 5

Tato stránka by měla být uložena s názvem csshover.htc a umístěna na stejném místě jako hlavní stránka.

Doporučuje: