Кандайча меню түзсө болот

Мазмуну:

Кандайча меню түзсө болот
Кандайча меню түзсө болот

Video: Кандайча меню түзсө болот

Video: Кандайча меню түзсө болот
Video: Болот Ибрагимовду ким сабаган? 2024, Апрель
Anonim

Беттин мейкиндигин үнөмдөө менен, бөлүмдөрдүн жана бөлүмчөлөрдүн түзүмүн так көрсөтүү үчүн сайттын жайгашуусунда ачылуучу подменю бөлүмдөрү бар меню колдонулат. Мындай механизмди ишке ашыруу анчалык деле кыйын эмес: ишке ашыруу мисалдарынын бири макалада келтирилген.

Кандайча меню түзсө болот
Кандайча меню түзсө болот

Нускамалар

1 кадам

Төмөндө барактын толук баштапкы коду келтирилген. Стилдердин сүрөттөлүшү түздөн-түз барактын текстине жайгаштырылат. Бул менюнун вариантынын htmlинде да, cssинде дагы толук түшүндүрмөнү талап кылган татаал конструкциялар жок.

2-кадам

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

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

Бөлүмдөр менен жөнөкөй ачылуучу меню

* {

font-family: arial;

ариптин көлөмү: 16px;

}

/ * эски IE браузерлери үчүн * /

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

ul, li, a {

дисплей: блок;

margin: 0;

толтуруу: 0;

чек: 0;

}

ul {

туурасы: 150px;

чек: 1px катуу күмүш;

фон: ак;

тизме стили: жок;

}

li {

кызмат: салыштырмалуу;

толтуруу: 1px;

фон-түс: күмүш;

z-индекс: 9;

}

li.folder {background-color: silver;}

li.folder ul {

абалы: абсолюттук;

солдо: 111px; / * IE гана * /

top: 5px;

}

li.folder> ul {left: 140px;} / * башкалар үчүн * /

a {

толтуруу: 2px;

чек: 1px ак түстө;

текстти жасалгалоо: жок;

Кара түс;

font-weight: bold;

туурасы: 100%; / * IE үчүн * /

}

li> a {width: auto;} / * башкалар үчүн * /

li a {

дисплей: блок;

туурасы: 140px;

}

li a.submenu {

фон-түс: сары;

}

/ * Главалар * /

a: hover {

чек ара түсү: боз;

фон-түс: кызыл;

Кара түс;

}

li.folder a: hover {

фон-түс: кызыл;

}

/ * Бөлүмдөр * /

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

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

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

  • 1. Глава
  • 2. Бөлүм

    • 2.1 Глава
    • 2.2 Бөлүм

      • 2.2.1 Глава
      • 2.2.2 Глава
      • 2.2.3 Глава
    • 2.3 Глава
  • 3. Бөлүм

    • 3.1 Глава
    • 3.2 Глава
    • 3.3 Глава
  • 4. Глава
Төмөнкү менюлардын ачылуучу тизмелери бар меню
Төмөнкү менюлардын ачылуучу тизмелери бар меню

3-кадам

Эгер сиз эскирген браузердин модификациясын колдоого мүмкүнчүлүктү колдонгуңуз келсе, анда стилдин сүрөттөмөсүнүн блогуна кошумча сап киргизилиши керек (андан кийин) (комментарий кошуунун кажети жок):

/ * эски IE браузерлери үчүн * /

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

4-кадам

Андан кийин өзүнчө баракча түзүңүз, анын мазмуну төмөндө көрсөтүлгөн.

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 = function (c) {return c.replace (/-(.)/ mg, function (a, b) {return b.toUpperCase ()})}; var w = {elements: , чалуулар: {}, 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. импорт; var l = b. узундук; for (var i = 0; i <l; i ++) {this.parseStylesheet (a.imports )}} catch (securityException) {} } {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.lace (o, 'on $ 1'); var g = c.lace (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 + ': express (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'}, активдүү: {activator: 'onmousedown', deactivator: 'onmouseup'}, onfocus: {activator: 'onfocus', deactivator: 'onblur'}}; function CSSHoverElement (a, b, c) {this.node = a; бул т 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 ()}); return function (a, b, c, d) {if (a) {return w.patch (a, b, c, d)} else {w.init ()}}}) ();

5-кадам

Бул барак csshover.htc аты менен сакталып, башкы баракча менен бир жерге жайгаштырылышы керек.

Сунушталууда: