>웹 프론트엔드 >CSS 튜토리얼 >추천 간편 탭 네비게이션(웹페이지 탭) 3가지에 대한 간략한 분석_경험교류

추천 간편 탭 네비게이션(웹페이지 탭) 3가지에 대한 간략한 분석_경험교류

PHP中文网
PHP中文网원래의
2016-05-16 12:07:452159검색

웹페이지에 탭을 적용하면 웹페이지가 더욱 컴팩트하게 보일 수 있으며, AJAX 기술과 결합하면 제한된 공간에 더 많은 콘텐츠를 페이지에 표시할 수 있습니다. 이 기사에서는 주로 여러 가지 간단한 탭 효과(미닫이 문 및 AJAX를 포함하지 않음)의 구현을 소개하고 예제와 함께 그림이 없고 호환성이 뛰어나며 모든 사람이 직접 사용하기 편리합니다.
첫 번째 형태: 디스플레이 스타일을 변경하여 달성되는 경우는 매우 일반적이므로 자세히 설명하지 않겠습니다.

<div id="tabs0">  
<ul class="menu0" id="menu0">  
  <li onclick="setTab(0,0)" class="hover">新闻</li>  
  <li onclick="setTab(0,1)">评论</li>  
  <li onclick="setTab(0,2)">技术</li>  
  <li onclick="setTab(0,3)">点评</li>  
</ul>  
<div class="main" id="main0">  
  <ul class="block"><li>新闻列表</li></ul>  
  <ul><li>评论列表</li></ul>  
  <ul><li>技术列表</li></ul>  
  <ul><li>点评列表</li></ul>  
</div>  
</div>



두 번째 형태: 이 구조는 더 복잡합니다. 외부에 상대 레이어(.menu1box)를 추가하고 오버플로 숨김을 설정하고 탭을 숨깁니다( #menu1)은 절대 위치로 설정되어 있고, 레이어 포인터는 1(z-index:1;)로 설정되어 있어 하단 메인 블록(.main1box)의 높이를 1px 정도 덮을 수 있습니다. 메인 블록의 테두리를 1px 검정색 테두리로 설정하고 상단 여백(margin-top)을 -1px로 설정하여 상단 테두리가 탭 아래로 확장되도록 합니다. 탭 항목(li)의 배경을 흰색으로 변경하면 메인 영역의 위쪽 테두리 일부를 가릴 수 있습니다. 이 효과가 달성됩니다.

<div id="tabs1">  
<div class="menu1box">  
  <ul id="menu1">  
   <li class="hover" onmouseover="setTab(1,0)"><a href="#">新闻</a></li> 
   <li onmouseover="setTab(1,1)"><a href="#">评论</a></li>  
   <li onmouseover="setTab(1,2)"><a href="#">技术</a></li>  
   <li onmouseover="setTab(1,3)"><a href="#">点评</a></li>  
  </ul>  
</div>  
<div class="main1box">  
  <div class="main" id="main1">  
   <ul class="block"><li>新闻列表</li></ul>  
   <ul><li>评论列表</li></ul>  
   <ul><li>技术列表</li></ul>  
   <ul><li>点评列表</li></ul>  
  </div>  
</div>  
</div>


JS 코드의 첫 번째 및 두 번째 형식:

function setTab(m,n){  
var tli=document.getElementById("menu"+m).getElementsByTagName("li"); /*获取选项卡的LI对象*/  
var mli=document.getElementById("main"+m).getElementsByTagName("ul"); /*获取主显示区域对象*/  
for(i=0;i<tli.length;i++){  
  tli[i].className=i==n?"hover":""; /*更改选项卡的LI对象的样式,如果是选定的项则使用.hover样式*/  
  mli[i].style.display=i==n?"block":"none"; /*确定主区域显示哪一个对象*/  
}  
}

세 번째 형식: 이것도 흔하지 않은 메서드입니다. 레이어(.menu2box), 배경 레이어(#tip2)를 사용하여 위치를 지정하고 레이어의 왼쪽 거리(왼쪽)를 변경하여 효과를 얻습니다.

<div id="tabs2">  
<div class="menu2box">  
  <div id="tip2"></div>  
  <ul id="menu2">  
   <li class="hover" onmouseover="nowtab(2,0)"><a href="#">新闻</a></li> 
   <li onmouseover="nowtab(2,1)"><a href="#">评论</a></li>  
   <li onmouseover="nowtab(2,2)"><a href="#">技术</a></li>  
   <li onmouseover="nowtab(2,3)"><a href="#">点评</a></li>  
  </ul>  
</div>  
  <div class="main" id="main2">  
新闻内容  
</div>  
</div>

효과 시연:

<!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=gb2312" /> 
<title>简洁Tab</title> 
<style type="text/css"> 
<!-- 
body,div,ul,li{ 
 margin:0 auto; 
 padding:0; 
} 
body{ 
 font:12px "宋体"; 
 text-align:center; 
} 
a:link{ 
 color:#00F; 
 text-decoration:none; 
} 
a:visited { 
 color: #00F; 
 text-decoration:none; 
} 
a:hover { 
 color: #c00; 
 text-decoration:underline; 
} 
ul{ 
 list-style:none; 
} 
.main{ 
 clear:both; 
 padding:8px; 
 text-align:center; 
} 


/*第一种形式*/ 
#tabs0 { 
 height: 200px; 
 width: 400px; 
 border: 1px solid #cbcbcb; 
 background-color: #f2f6fb; 
} 
.menu0{ 
 width: 400px; 
} 
.menu0 li{ 
 display:block; 
 float: left; 
 padding: 4px 0; 
 width:100px; 
 text-align: center; 
 cursor:pointer; 
 background: #FFFFff; 
} 
.menu0 li.hover{ 
 background: #f2f6fb; 
} 
#main0 ul{ 
 display: none; 
} 
#main0 ul.block{ 
 display: block; 
} 


/*第二种形式*/ 
#tabs1{ 
 text-align:left; 
 width:400px; 
} 
.menu1box{ 
 position:relative; 
 overflow:hidden; 
 height:22px; 
 width:400px; 
 text-align:left; 
} 
#menu1{ 
 position:absolute; 
 top:0; 
 left:0; 
 z-index:1; 
} 
#menu1 li{ 
 float:left; 
 display:block; 
 cursor:pointer; 
 width:72px; 
 text-align:center; 
 line-height:21px; 
 height:21px; 
} 
#menu1 li.hover{ 
 background:#fff; 
 border-left:1px solid #333; 
 border-top:1px solid #333; 
 border-right:1px solid #333; 
} 
.main1box{ 
 clear:both; 
 margin-top:-1px; 
 border:1px solid #333; 
 height:181px; 
 width:400px; 
} 
#main1 ul{ 
 display: none; 
} 
#main1 ul.block{ 
 display: block; 
} 

/*第三种形式*/ 
.menu2box{ 
 position:relative; 
 overflow:hidden; 
 height:22px; 
 width:400px; 
 text-align:left; 
 background: #FFFFff; 
} 
#tabs2 { 
 height: 200px; 
 width: 400px; 
 border: 1px solid #cbcbcb; 
 background-color: #f2f6fb; 
} 
#tip2{ 
 position:absolute; 
 top:0; 
 left:0; 
 height:22px; 
 line-height:22px; 
 z-index:0; 
 width:100px; 
 background: #f2f6fb; 
} 
#menu2{ 
 position:absolute; 
 top:0; 
 left:0; 
 z-index:1; 
} 
#menu2 li{ 
 display:block; 
 float: left; 
 padding: 4px 0; 
 width:100px; 
 text-align: center; 
 cursor:pointer; 
} 
--> 
</style> 
<script> 
<!-- 
/*第一种形式 第二种形式 更换显示样式*/ 
function setTab(m,n){ 
 var tli=document.getElementById("menu"+m).getElementsByTagName("li"); 
 var mli=document.getElementById("main"+m).getElementsByTagName("ul"); 
 for(i=0;i<tli.length;i++){ 
  tli[i].className=i==n?"hover":""; 
  mli[i].style.display=i==n?"block":"none"; 
 } 
} 

/*第三种形式 利用一个背景层定位*/ 
var m3={0:"",1:"评论内容",2:"技术内容",3:"点评内容"} 
function nowtab(m,n){ 
 if(n!=0&&m3=="")m3=document.getElementById("main2").innerHTML; 
 document.getElementById("tip"+m).style.left=n*100+&#39;px&#39;; 
 document.getElementById("main2").innerHTML=m3[n]; 
} 
//--> 
</script> 
</head> 
<body> 

 

 
<!--第一种形式--> 
<div id="tabs0"> 
 <ul class="menu0" id="menu0"> 
  <li onclick="setTab(0,0)" class="hover">新闻</li> 
  <li onclick="setTab(0,1)">评论</li> 
  <li onclick="setTab(0,2)">技术</li> 
  <li onclick="setTab(0,3)">点评</li> 
 </ul> 
 <div class="main" id="main0"> 
  <ul class="block"><li>新闻列表</li></ul> 
  <ul><li>评论列表</li></ul> 
  <ul><li>技术列表</li></ul> 
  <ul><li>点评列表</li></ul> 
 </div> 
</div> 

<!--第二种形式--> 
<div id="tabs1"> 
 <div class="menu1box"> 
  <ul id="menu1"> 
   <li class="hover" onmouseover="setTab(1,0)">新闻</li> 
   <li onmouseover="setTab(1,1)">评论</li> 
   <li onmouseover="setTab(1,2)">技术</li> 
   <li onmouseover="setTab(1,3)">点评</li> 
  </ul> 
 </div> 
 <div class="main1box"> 
  <div class="main" id="main1"> 
   <ul class="block"><li>新闻列表</li></ul> 
   <ul><li>评论列表</li></ul> 
   <ul><li>技术列表</li></ul> 
   <ul><li>点评列表</li></ul> 
  </div> 
 </div> 
</div> 



 

 

<!--第三种形式--> 
<div id="tabs2"> 
 <div class="menu2box"> 
  <div id="tip2"></div> 
  <ul id="menu2"> 
   <li class="hover" onmouseover="nowtab(2,0)">新闻</li> 
   <li onmouseover="nowtab(2,1)">评论</li> 
   <li onmouseover="nowtab(2,2)">技术</li> 
   <li onmouseover="nowtab(2,3)">点评</li> 
  </ul> 
 </div> 
  <div class="main" id="main2"> 
新闻内容 
 </div> 
</div> 

</body> 
</html>

위는 권장되는 세 가지 간단한 탭 탐색(웹 페이지 탭)에 대한 간략한 분석입니다. _ 체험교류 내용은 PHP 중국어 홈페이지(www.php.cn)에서 더 많은 관련 내용을 참고해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.