На самом деле, вам не нужно ничего делать :). Вы используете CSS! Учтите следующее:
<!-- Notice the space between the class names -->
<li class="switch">
<div class="a toggle"> ... </div>
<div class="b toggle"> ... </div>
<div class="c toggle"> ... </div>
</li>
Теперь вы можете сохранить элементы стиля для a
, b
, c
. Добавив простой стиль CSS, вы можете быстро и легко удовлетворить оба ваших набора потребностей. Кроме того, он абстрагирован, так что вы можете использовать его в большем количестве мест, когда это необходимо. Нет необходимости в добавлении элементов DOM и никаких реальных изменений в вашем текущем коде стиля для a
, b
и c
. Кроме того, ваш переключатель даже не должен быть li
.
.switch:hover > .toggle,
.switch.current > .toggle { display:block;
}
Дополнительная информация о классах CSS
Элементы могут быть более чем одного класса. Используя это, вы можете отделить псевдо-функциональность от просмотра вашего CSS. При использовании нескольких классов браузер объединяет правила обоих для завершения своего стиля.
Примите во внимание следующее:
<body class="article twocolumns">
- Элемент
body
будет иметь любое позиционирование в формате html и общий переопределение документа.
- Класс
article
будет иметь любые стили представления, которые вам могут понадобиться.
-
twocolumns
будет иметь те параметры макета, которые вам нужны.
Вы можете указать индивидуальный или комбинированный стиль, например:
body {
margin:0 auto;
}
.article {
background-color:white;
}
.twocolumns {
background-image: url("divider.png");
}
/* This is a combination style. Notice no space between the two classes. */
.article.twocolumns > div {
padding:15px;
float:left;
width:50%;
}
/* A possible further extension. */
.article.onecolumn > div {
padding:20px;
float:none;
width:100%;
}
.article.threecolumn > div {
padding:10px;
float:left;
width:33%;
}
Научиться делать что-то таким образом имеет ряд преимуществ. Это позволяет вам абстрагировать функциональность, элементы макета и презентации, что позволяет вам «портировать» любой другой веб-проект, который у вас может быть. Это позволяет вам найти то, что работает кросс-браузер более эффективно для более унифицированного внешнего вида. Это также снижает вероятность случайной настройки правил, которые могут не иметь отношения к вашей проблеме. Наконец, это уменьшает вашу зависимость от посторонних элементов DOM, позволяя вам поддерживать производительность.
Надеюсь, это поможет.
FuzzicalLogic