网页Tab

网页Tab有多种方法,下面的代码使用JavaScript实现,同时将JavaScript代码与Html代码分离,可读性较好。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>tab</title>
<style type="text/css">
ul, li, p { margin:0; padding:0; }
body { font:12px/1.5em arial; }

.tab { border:1px solid #D5D5D5; }
.tab ul {
 list-style:none;
 padding:4px 5px 0;
 border-bottom:1px solid #ddd;
 background:#eee;
}
.tab li {
 float:left;
 padding:2px 20px 5px;
}
.tab li:hover {
 margin-bottom:-1px;  /*用于盖住ul的下边框*/
 font-weight:bold;
 background:#FFF;
 border:1px solid #ddd;
 border-bottom:none;
}

.tab li a, .tab li a:visited {
 padding:5px 0;
 color:#333;
 text-decoration:none;
}
.tab li a:hover {
 color:#FF0000;
 text-decoration:underline;
}

.tab div { padding:10px; }
.tab div p { line-height:2em; }

.clearfix:after {
    content: "\20";
    clear: both;
    height: 0;
    visibility: hidden;
    display: block;
}
.clearfix { *zoom:1; }
</style>
</head>

<body>
<div class="tab">
 <ul class="clearfix">
     <li><a href="#">公告</a></li>
        <li><a href="#">规则</a></li>
        <li><a href="#">论坛</a></li>
        <li><a href="#">安全中心</a></li>
        <li><a href="#">公益</a></li>
    </ul>
    <div class="ct" style="clear:both;">
     <p>内容1 </p>
     <p>内容1</p>
    </div>
    <div class="ct">
     <p>内容2 </p>
     <p>内容2</p>
    </div>
    <div class="ct">
     <p>内容3 </p>
     <p>内容3</p>
    </div>
    <div class="ct">
     <p>内容4 </p>
     <p>内容4</p>
    </div>
    <div class="ct">
     <p>内容5 </p>
     <p>内容5</p>
    </div>
    <script type="text/javascript">
        document.getElementsByClassName = function () {
            var tTagName = "*";
            if (arguments.length > 1) {
                tTagName = arguments[1];
            }
            if (arguments.length > 2) {
                var pObj = arguments[2]
            }
            else {
                var pObj = document;
            }
            var objArr = pObj.getElementsByTagName(tTagName);
            var tRObj = new Array();
            for (var i = 0; i < objArr.length; i++) {
                if (objArr[i].className == arguments[0]) {
                    tRObj.push(objArr[i]);
                }
            }
            return tRObj;
        }
            var lia = document.getElementsByTagName("li");
            var elema = document.getElementsByClassName("ct");
            for (var i = 0; i < lia.length; i++) {
                lia[i].onmouseover = function () {
                    for (var j = 0; j < elema.length; j++) {
                        elema[j].style.display = "none";
                    }
                    for (var k = 0; k < lia.length; k++) {
                        if (this == lia[k])
                            break;
                    }
                    elema[k].style.display = "block";
                }

        }
</script>
</div>
</body>
</html>

下面的代码讲JavaScript与HTML代码混杂在一起,可读性稍微差一点:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>tab</title>
<style type="text/css">
ul, li, p { margin:0; padding:0; }
body { font:12px/1.5em arial; }

#tab { border:1px solid #D5D5D5; }
#tab ul {
 list-style:none;
 padding:4px 5px 0;
 border-bottom:1px solid #ddd;
 background:#eee;
}
#tab li {
 float:left;
 padding:2px 20px 5px;
}
#tab li:hover {
 margin-bottom:-1px;  /*用于盖住ul的下边框*/
 font-weight:bold;
 background:#FFF;
 border:1px solid #ddd;
 border-bottom:none;
}

#tab li a, #tab li a:visited {
 padding:5px 0;
 color:#333;
 text-decoration:none;
}
#tab li a:hover {
 color:#FF0000;
 text-decoration:underline;
}

#tab div { padding:10px; }
#tab div p { line-height:2em; }

.clearfix:after {
    content: "\20";
    clear: both;
    height: 0;
    visibility: hidden;
    display: block;
}
.clearfix { *zoom:1; }
</style>
<script type="text/javascript">
function showct(value)
{
 for(var i=1;i<6;i++)
 {
  document.getElementById("ct"+i).style.display = "none";
 }
 document.getElementById(value).style.display = "block";
}
</script>
</head>

<body onload="showct('ct2');">
<div id="tab">
 <ul class="clearfix">
     <li onmouseover="showct('ct1');"><a href="#">公告</a></li>
        <li onmouseover="showct('ct2');"><a href="#">规则</a></li>
        <li onmouseover="showct('ct3');"><a href="#">论坛</a></li>
        <li onmouseover="showct('ct4');"><a href="#">安全中心</a></li>
        <li onmouseover="showct('ct5');"><a href="#">公益</a></li>
    </ul>
    <div id="ct1" style="clear:both;">
     <p>内容1 </p>
     <p>内容1</p>
    </div>
    <div id="ct2">
     <p>内容2 </p>
     <p>内容2</p>
    </div>
    <div id="ct3">
     <p>内容3 </p>
     <p>内容3</p>
    </div>
    <div id="ct4">
     <p>内容4 </p>
     <p>内容4</p>
    </div>
    <div id="ct5">
     <p>内容5 </p>
     <p>内容5</p>
    </div>
</div>
</body>
</html>

原文地址:https://www.cnblogs.com/zhouhb/p/3113545.html