CSS-меню в стиле Mac OS | WebDuty

CSS-меню в стиле Mac OS

Вы прошлых статьях было рассказано как сделать меню в стиле Mac OS используя Javascript, теперь сделаем примерно тоже самое используя исключительно HTML-разметку и CSS.
Основой для меню будет неупорядоченный список. Создадим две версии: расширяющееся кверху и книзу.
cover2
Для создания меню будем использовать псевдо-класс :hover на тег <li> и селектор “+” для изменения стилей пунка меню, находящихся справа.

Посмотреть пример Cкачать архив

HTML-разметка будет выглядеть так:

<div class="expand-down"> 
<!-- Для меню расширяющегося вверх используйте класс expand-up -->
  <ul>
    <li>
      <a href="http://jigsaw.w3.org/css-validator/check/referer">
        <!-- image -->
        <img src="/images/demos/w3c-valid-css-trans.png" />
        <!-- label -->
        <span>Valid CSS</span>
      </a>
    </li>
    <!-- копируйте <li>...</li> чтобы сделать больше элементов меню -->
  </ul>
</div>

Меню, расширяющееся вниз

css-fish-eye-menu-expand-down

.expand-down {
  font-family:Arial, Helvetica, sans-serif;
  line-height:normal;
  margin-top:20px;
  height:150px;
  width:500px;
  background: url(/images/macosx-style-background.png) no-repeat;
  margin-bottom:30px;
}
.expand-down * {
  margin: 0;
  padding: 0;
}
.expand-down ul {
  padding-top:10px;
  margin-left:10px;
}
.expand-down ul li {
  float:left;
  list-style-type:none;
}
.expand-down ul li a {
  text-decoration:none;
}
.expand-down ul li a img {
  width:50px;  /* начальная ширина изображения - 50% от его ширины */
  height:50px; /* начальная высоты изображения - 50% от его высоты */
  border:none;
}
.expand-down ul li a span {
  display:none;
}
.expand-down ul li:hover a span {
  display:block;
  font-size:14px;
  text-align:center;
  color:#fff;
}
.expand-down ul li:hover a img {
  width:100px;
  height:100px;
}
/* Увеличиваем пункт меню, стоящий первым справа от выбраного*/
.expand-down ul li:hover + li a img {
  width:60px;
  height:60px;
}
/* Увеличиваем пункт меню, стоящий вторым справа от выбраного*/
.expand-down ul li:hover + li + li a img {
  width:55px;
  height:55px;
}

Меню, расширяющееся вверх

css-fish-eye-menu-expand-up

.expand-up {
  font-family:Arial, Helvetica, sans-serif;
  line-height:normal;
  height:150px;
  width:500px;
  background: url(/images/macosx-style-background.png) no-repeat;
  overflow:visible;
  margin-bottom:30px;
}
.expand-up * {
  margin: 0;
  padding: 0;
}
.expand-up ul {
  margin-left:10px;
}
.expand-up ul li {
  float:left;
  list-style-type:none;
  padding-top:65px;
  margin-top:25px;
}
.expand-up ul li a {
  text-decoration:none;
}
.expand-up ul li a img {
  width:50px;  
  height:50px;
  border:none;
}
.expand-up ul li a span {
  display:none;
}
.expand-up ul li:hover a span {
  display:block;
  font-size:14px;
  text-align:center;
  color:#fff;
  margin-top:-65px;
}
.expand-up ul li:hover a img {
  width:100px;
  height:100px;
}
.expand-up ul li:hover + li a img {
  width:60px;
  height:60px;
  margin-top:-10px;
}
.expand-up ul li:hover + li + li a img {
  width:55px;
  height:55px;
  margin-top:-5px;
}

Это меню работает в Internet Explorer 7 + и 8 +, Firefox 3 +, Google Chrome, Safari 3.2 +, Opera 9.52 + и Konqueror 3.5.7 +.

Посмотреть пример Cкачать архив

Подпишись на обновления

Если вам понравилась статья, подпишитесь на обновления через RSS (?), чтобы не пропустить новые интересные статьи. Также Вы можете зафолловить меня в Twitter или подписаться на обновления по email.

Закладки

Bookmark and Share

Комментарии

  1. FlounderIdenticon Flounder

  2. SoloIdenticon Solo

    Ну да, известное дело. Примерно так ещё png’хи фиксят, чтобы просвечали. Запишу в блокнотик, возможно когда-нибудь дополню пост.


  3. ИраклийIdenticon Ираклий

    Интересный пост, спасибо вам. Интересует только вопрос – будет ли продолжение? :)


  4. 2web

    Да. Не плохо было бы сделать плавную анимацию. А то глаз режет(


Оставить комментарий

Вы можете использовать следующие теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Spam Protection by WP-SpamFree