<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    Last tutorial, I showed you how to design a watercolor effect menu in Photoshop. This tutorial I will show you how to slice up the menu design (step by step) and put them together with CSS. Most of you probably know how to code a horizontal or vertical CSS list menu. Now let’s take it to the next level — code an advanced (un-typical) list menu utilizing the CSS position property.

    View Demo CSS menu

    Download Demo ZIP

    Overview

    Here are the required graphics to assembe the menu (you can download from the zip).

    required graphics

    1. Main background

    Open the Photoshop file. Turn off the menu text Layer Group and save the main background as menu-bg.jpg.

    screen 2

    2. Button graphics

    Turn off the background Layer Group and leave only the menu text layers visible. Make a rectangle selection cover the "home" item, go to menu Edit > Copy Merged (Cmd + Shift + C).

    screen 3

    Create a new file and take note of the file dimension (w x h), in my case the "home" graphic is 144 x 58px. Paste the "home" graphic in the new file. Go to menu Image > Canvas Size, adjust the image height x 2 (58 + 58 = 116px). Duplicate the home graphic layer and align it to the bottom. Erase the highlight strokes in the upper layer.

    screen 4

    Here is how the hover effect will work. We will set the link button to 144 x 58px, when mouseover, we will shift the background image from top to bottom.

    screen 5

    Repeat this step for the other buttons. You should have the follow graphics:

    required graphics

    3. HTML source

    When you are done with the graphics, let’s start coding. Start with an un-ordered list <ul>.

    • note there is an id="menu" assigned to the<ul> tag
    • an unique class name assigned to each link <a>
    • an empty <span> tag (the purpose of this is to make the mouseover effect)
    <ul id="menu">
    <li><a href="#" class="home">Home <span></span></a></li>
    <li><a href="#" class="about">About <span></span></a></li>
    <li><a href="#" class="rss">RSS <span></span></a></li>
    </ul>

    #menu

    Reset the menu to no padding, no margin, and no list-style. Specify the width and height same dimension as the menu-bg.jpg. Then attach the menu background image. The key point to remember here is set the position property to relative.

    #menu {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 774px;
    height: 210px;
    background: url(images/menu-bg.jpg) no-repeat;
    position: relative;
    }

    #menu span

    Specify the span element to display:none (so they will be invisible by default). Specify position:absolute, so we can place the mouseover GIF image on exact position.

    #menu span {
    display: none;
    position: absolute;
    }

    #menu a

    The key point here is the text-indent property. We specify the text-indent property with a negative value (-900%), so the text will be hidden.

    #menu a {
    display: block;
    text-indent: -900%;
    position: absolute;
    outline: none;
    }

    #menu a:hover

    When mouseover the link, we want to shift the background image from top to bottom.

    #menu a:hover {
    background-position: left bottom;
    }

    #menu a:hover span

    When mouseover the link, we want the span element to display:block.

    #menu a:hover span {
    display: block;
    }

    #menu .home

    Specify the width, height, and background image. Since we already specified all <a> element postition:absolute in previous step, now just say where the .home button should be by specifying the left and top property.

    #menu .home {
    width: 144px;
    height: 58px;
    background: url(images/home.gif) no-repeat;
    left: 96px;
    top: 73px;
    }

    #menu .home span

    Here we are specifying the width, height, background, and position of the span element of .home (mouseover GIF image)

    #menu .home span {
    width: 86px;
    height: 14px;
    background: url(images/home-over.gif) no-repeat;
    left: 28px;
    top: -20px;
    }

    #menu .about

    Copy the .home rules and rename them to .about. Now just change the width, height, background, left, and top property.

    #menu .about {
    width: 131px;
    height: 51px;
    background: url(images/about.gif) no-repeat;
    left: 338px;
    top: 97px;
    }
    #menu .about span {
    width: 40px;
    height: 12px;
    background: url(images/about-over.gif) no-repeat;
    left: 44px;
    top: 54px;
    }

    #menu .rss

    Repeat this step for .rss

    #menu .rss {
    width: 112px;
    height: 47px;
    background: url(images/rss.gif) no-repeat;
    left: 588px;
    top: 94px;
    }
    #menu .rss span {
    width: 92px;
    height: 20px;
    background: url(images/rss-over.gif) no-repeat;
    left: 26px;
    top: -20px;
    }

    All in one:

    #menu {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 774px;
    height: 210px;
    background: url(images/menu-bg.jpg) no-repeat;
    position: relative;
    }
    #menu span {
    display: none;
    position: absolute;
    }
    #menu a {
    display: block;
    text-indent: -900%;
    position: absolute;
    outline: none;
    }
    #menu a:hover {
    background-position: left bottom;
    }
    #menu a:hover span {
    display: block;
    }

    #menu .home {
    width: 144px;
    height: 58px;
    background: url(images/home.gif) no-repeat;
    left: 96px;
    top: 73px;
    }
    #menu .home span {
    width: 86px;
    height: 14px;
    background: url(images/home-over.gif) no-repeat;
    left: 28px;
    top: -20px;
    }

    #menu .about {
    width: 131px;
    height: 51px;
    background: url(images/about.gif) no-repeat;
    left: 338px;
    top: 97px;
    }
    #menu .about span {
    width: 40px;
    height: 12px;
    background: url(images/about-over.gif) no-repeat;
    left: 44px;
    top: 54px;
    }

    #menu .rss {
    width: 112px;
    height: 47px;
    background: url(images/rss.gif) no-repeat;
    left: 588px;
    top: 94px;
    }
    #menu .rss span {
    width: 92px;
    height: 20px;
    background: url(images/rss-over.gif) no-repeat;
    left: 26px;
    top: -20px;
    }

    Done

    That’s it. You can preview my CSS menu.

    Note: there is an IE6 bug where the <span> hover effect doesn’t display properly. To fix that, you can use Javascript to specify the <span> to display block on mouseover.

    posted on 2009-09-23 09:41 seal 閱讀(370) 評論(0)  編輯  收藏 所屬分類: CSS
    主站蜘蛛池模板: 91在线亚洲精品专区| 亚洲高清视频在线观看| 亚洲国产精品成人午夜在线观看 | 精品亚洲国产成AV人片传媒| 免费无码黄网站在线看| 亚洲精品成人网站在线观看| 免费A级毛片无码专区| 日韩亚洲Av人人夜夜澡人人爽| 最近最新高清免费中文字幕| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲一区二区免费视频| 亚洲一区二区三区国产精品无码| 伊在人亚洲香蕉精品区麻豆| 日韩成人精品日本亚洲| 亚洲国产精品日韩专区AV| 国产日韩在线视频免费播放| 亚洲国产精品无码成人片久久| 99久久国产免费中文无字幕| 亚洲乱人伦精品图片| 国产精品成人四虎免费视频| 丁香六月婷婷精品免费观看| 亚洲国产成人精品无码区在线观看 | 又粗又大又黑又长的免费视频| 中文字幕精品三区无码亚洲| 国产免费一区二区三区VR| 又大又硬又粗又黄的视频免费看| 亚洲日韩精品射精日| 亚洲国产精品免费在线观看| 亚洲国产AV一区二区三区四区 | 亚洲精品自产拍在线观看动漫| 免费一本色道久久一区| 猫咪www免费人成网站| 亚洲一区二区影院| 日本一道本高清免费| 女同免费毛片在线播放| 亚洲精品无码永久在线观看男男 | 亚洲精品熟女国产| 免费真实播放国产乱子伦| 久久久久国产精品免费看| 鲁死你资源站亚洲av| 亚洲av无码无在线观看红杏|