Tìm kiếm Blog này

Thứ Sáu, 27 tháng 5, 2011

Tạo menu giống trang theothao.zing.vn


by PHAN DŨNG on AUGUST 11, 2010
Có 1 bạn đã yêu cầu thủ thuật này từ lâu, đến nỗi mình quên mất cái comment yêu cầu nằm ở đâu và tất nhiên là cả tên bạn ấy nữa. Hồi trước mình cũng thấy bên vnblognet.com dùng cái menu này, nhưng chỉ có menu chính, không có menu phụ. Hôm nay mình sẽ giới thiệu đầy đủ về menu này. Tất nhiên là mình có điều chỉnh 1 chút so với bên thethao.zing.vn, ví dụ như hộp tìm kiếm chẳng hạn.
Hình ảnh minh họa :
menu Zthethao - mothuthuat.com
Xem DEMO : menu Zthethao
* Sau đây là code của thủ thuật :
1. Vào bố cục
2. Vào phần tử trang
3. Tạo 1 widget HTML/javascript và dán code bên dưới vào:
<style type="text/css">
.hide {display:none;}
#kmenu
{
    font-size:12px;
    height: 80px;
    background: url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/menu-bg.gif) repeat-x;
}
#kmenu .kmenu-r
{
    height: 80px;
    background: url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/menu-right-bg.gif) no-repeat top right;
}
#kmenu .kmenu-l
{
    height: 80px;
    background: url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/menu-left-bg.gif) no-repeat top left;
}
#kmenu .homepage
{
    padding: 20px 0px 0px 8px;
    width: 78px;
    float: left;
}
#kmenu .homepage a
{
    font-weight: bold;text-decoration: none;
}
#kmenu .homepage a:hover
{
    color: #f68121;
    text-decoration: none;
}
#kmenu .mnav
{
    width: 800px;
    float: left;
    padding: 17px 0 0 20px;
}
#kmenu .mnav ul.zlstmnav
{
    list-style: none;
    margin: 0px;
    padding: 0px;
    position: relative;
    height: 28px;
}
#kmenu .mnav .zlstmnav li
{
    list-style: none;
    margin: 0px;
    padding: 0px;
    float: left;
}
#kmenu .mnav .zlstmnav li a
{
    float: left;
    display: block;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    padding: 0 0 0 0px;
    height: 27px;
    line-height: 27px;
    text-align: center;
    cursor: pointer;
    font-family: Arial;
}
#kmenu .mnav .zlstmnav li a span
{
    float: left;
    display: block;
    padding: 0 0px 0 20px;
}
#kmenu .mnav .zlstmnav li a:hover, #kmenu .mnav .zlstmnav li.selected a
{
    margin-top: 1px;
    height: 26px;
    line-height: 26px;
    background: #2e2e2e url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/nav-left-bg.gif) no-repeat top left;
}
#kmenu .mnav .zlstmnav li.first a:hover
{
    background: #2e2e2e url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/nav-left-home.gif) no-repeat top left;
}
#kmenu .mnav .zlstmnav li a:hover span, #kmenu .mnav .zlstmnav li.selected a span
{
    background: url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/nav-right-bg.gif) no-repeat top right;
    padding: 0 23px 0 23px;
}
#kmenu .submenu
{
    padding-left: 15px;
 padding-top: 3px;
}
#kmenu .submenu li
{
    float: left;list-style: none;
}
#kmenu .submenu li a
{
    color: #fff;
    display: block;
    padding-right: 15px;
    text-decoration:none;
}
#kmenu .submenu li a:hover
{
              color: #f68121;
 background:url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/icon-li.png) no-repeat left;
 padding-left:14px;
}
#sub_FormSearch {float:right;}

#sub_FormSearch {
 padding:0 0px 3px 20px;
 background:url(http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/img/search-bg.png) no-repeat top left;
 height:24px;
}
#sub_FormSearch .search {

 width: 200px;
 height: 25px;
        margin:0;
        padding:0;

 }
#sub_FormSearch input {

 width: 180px;
 height: 18px;
 margin: 1px 0 0 0;

 font: normal normal normal 11px/15px Verdana, Geneva, Tahoma, sans-serif;
 color: #fff;
        border:none;
 background-color: transparent;
 }
#sub_FormSearch .search-submit, #sub_FormSearch .button {
 display: none;
 }

</style>
<script src="http://data.fandung.com/blog/demo/zthetheo-menu/Zmenu/kMenu.js" type="text/javascript"></script>
<div id="kmenu">
    <div class="kmenu-r">
        <div class="kmenu-l">
            <div class="kmenu-c">
                <div class="homepage"><a href="http://fandung.com">fandung</a></div>

  <div id="mn1" class="mnav">
                    <ul class="zlstmnav">
                        <li class="selected"><a id="mn_home" href=""></a></li>
                        <li class=""><a id="mn_1" href="#"><span>Menu 1</span></a></li>
                        <li class=""><a id="mn_2" href="#"><span>Menu 2</span></a></li>
                        <li class=""><a id="mn_3" href="#"><span>Menu 3</span></a></li>
                        <li class=""><a id="mn_4" href="#"><span>Menu 4</span></a></li>
                        <li class=""><a id="mn_5" href="#"><span>Menu 5</span></a></li>
                        <li class=""><a id="mn_6" href="#"><span>Menu 6</span></a></li>
       </ul>

                    <div class="submenu">
          <div id="main"></div>
                        <div id="sub_FormSearch" class="">
  <div class="search" id="search-">
                              <form action='/search/' class='search-form' id='search-form-' method='get'>
       <input class="search-text" id="search-text-" name="q" onBlur="if (this.value == &quot;&quot;) {this.value = &quot;Search on this site...&quot;;}" onFocus="if (this.value == &quot;Search on this site...&quot;) {this.value = &quot;&quot;}" tabindex="7" type="text" value="Search on this site..." />
       <input class="search-submit button" id="search-submit-" name="submit" tabindex="8" type="submit" value="Search" />
     </form>
                        </div></div>

  <div id="sub_home" class="hide" title="0">
                               <ul>
         <li><a href="#">Blogger</a> </li>
         <li><a href="#">Wordpress</a> </li>
         <li><a href="#">Joomla</a> </li>
     </ul>
                            </div>

                        <div id="sub_1" class="hide" title="0">
                            <ul style="padding-left: 0px;">
                                <li><a href="#">Sub Menu 1.1</a></li>
                                <li><a href="#">Sub Menu 1.2</a></li>
                                <li><a href="#">Sub Menu 1.3</a></li>
                            </ul>
                        </div>

                        <div id="sub_2" class="hide" title="0">
                            <ul style="padding-left: 0px;">
                                <li><a href="#">Sub Menu 2.1</a></li>
                                <li><a href="#">Sub Menu 2.2</a></li>
                                <li><a href="#">Sub Menu 2.3</a></li>
                            </ul>
                        </div>

                        <div id="sub_3" class="hide" title="10">
                            <ul style="padding-left: 10px;">
                                <li><a href="#">Sub Menu 3.1</a></li>
                                <li><a href="#">Sub Menu 3.2</a></li>
                                <li><a href="#">Sub Menu 3.3</a></li>
                            </ul>
                        </div>

                        <div id="sub_4" class="hide" title="190">
       <ul style="padding-left: 190px;">
                                <li><a href="#">Sub Menu 4.1</a></li>
                                <li><a href="#">Sub Menu 4.2</a></li>
                                <li><a href="#">Sub Menu 4.3</a></li>
                            </ul>
                        </div>

                        <div id="sub_5" class="hide" title="260">
      <ul style="padding-left: 260px;">
                                <li><a href="#">Sub Menu 5.1</a></li>
                                <li><a href="#">Sub Menu 5.2</a></li>
                                <li><a href="#">Sub Menu 5.3</a></li>
                            </ul>
                        </div>

                        <div id="sub_6" class="hide" title="320">
                            <ul style="padding-left: 320px;">
                                <li><a href="#">Sub Menu 6.1</a></li>
                                <li><a href="#">Sub Menu 6.2</a></li>
                                <li><a href="#">Sub Menu 6.3</a></li>
                            </ul>
                        </div>

                    </div>
                </div>
                <div class="clear">
                </div>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">
    kMenu.Init('kmenu',o_ChannelRoot);
</script>
4. Save widget
- 1 vài lưu ý :
* Code CSS :
#kmenu .mnav
{
    width: 800px;
    float: left;
    padding: 17px 0 0 20px;
}
800px là độ rộng của vùng hiển thị sub menu, kể cả vùng hiển thị form search. Nếu độ rộng này lớn hơn độ rộng của vùng hiển thị của cả menu (hoặc độ rộng của blog) thì sẽ gặp 1 lỗi như bên dưới :
menu Zthethao 2 - mothuthuat.com
-thay đổi giá trị 800px lại cho thích hợp
* Căn lề trái cho submenu:
- nếu không căn lề trái (padding:left) thì các submenu đều nằm hết ở phía bên trái. Việc căn lền trái nhằm giúp cho submenu hiển thị ngay dưới menu chính. Ví dụ ta xem đọan code của submenu6
<div id="sub_6" class="hide" title="320">
                            <ul style="padding-left: 320px;">
                                <li><a href="#">Sub Menu 6.1</a></li>
                                <li><a href="#">Sub Menu 6.2</a></li>
                                <li><a href="#">Sub Menu 6.3</a></li>
                            </ul>
                        </div>
- ta thấy giá trị padding-left ở đây là 320px, thoạt nhìn vô ta sẽ chỉnh ngay đọan code ở trong thẻ ul, nhưng thực chất file js lấy giá trị title=”320″ ở thẻ div để canh lề cho submenu. Vì thế các bạn muốn căn lề cho các sub thì thay đổi giá trị title. Còn giá trị ở thẻ ul chỉ nhằm giúp ta dễ hiểu hơn mà thôi.
Hình ảnh minh họa :
menu Zthethao 3 - mothuthuat.com
- nếu submenu ở menu chính cuối cùng nằm gần phía bên phải quá sẽ đụng phải form search, và form search sẽ bị trồi xuống dưới như hình bên dưới :
Hình ảnh minh họa :
menu Zthethao 3 - mothuthuat.com
- nếu mắc lỗi này các bạn chỉ việc giảm giá trị padding-left đi là ok.
Chúc các bạn thành công.
»»  read more
Twitter Delicious Facebook Digg Stumbleupon Favorites More