选项卡(1)

选项卡控件它提供一系列操作按钮,单击不同的按钮可以在各个页面之间进行切换。

选项卡实现的几种方法:

html+css

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
         *{
    margin:0;
    padding:0;
    list-style:none;
    box-sizing:border-box;
}
body{
    padding:20px;
}
.tabs{
    width:650px;
    position:relative;
    background:#aaf;
}
.tabs li{
    float:left;
}
.tabs input[type=radio]{/*隐藏单选框的样式*/
    position:absolute;
    top:-9999px;
    left:-9999px;
}
.tabs label{
    display:block;
    border:1px solid #000;
    padding:10px;
    text-align:center;
    border-radius:6px 6px 0 0 ;
    background:#aaf;
    border-bottom:1px solid transparent;
    position:relative;
    top:4px;
    z-index:3;
    transition:all 0.2s ease-in-out;  

}
.tabs label:hover{
    background:#bbf;
}
.tabs .tab_content{
    width:100%;
    background:#faf;
    height:200px;
    position:absolute;
    top:43px;
    left:0px;
    z-index:2;
    border:1px solid #000;
    padding:10px;
    display:none;
}
.tabs input[type=radio]:checked + label{
    top:0px;
    padding-top:14px;
    background:#faf;
}
.tabs input[type=radio]:checked ~ div[id^=tab_content]{
    display:block;
}
    </style>
</head>
<body>
     <ul class="tabs">
<li>
    <input type="radio" name="tabs" id="tab1" checked/>
    <label for="tab1">选择卡1</label>
    <div class="tab_content" id="tab_content1">
        <p>选项卡1的内容</p>
    </div>
</li>
<li>
    <input type="radio" name="tabs" id="tab2"/>
    <label for="tab2">选择卡2</label>
    <div class="tab_content" id="tab_content2">
        <p>选项卡2的内容</p>
    </div>
</li>
</ul>
</body>
</html>

 

html+css+js实现切换效果

基本思路:首先编写HTML,然后再加载样式,最后用JS修改相应的DOM,达到更改选项卡和内容的目的。

HTML页面布局

HTML显示的是所有与文字有关的信息,所以在这个页面中与文字有关的信息为上面选项卡的三个标题,以及选项卡的内容。 
于是决定标题使用<ul> <li>布局,内容使用<div>布局。

CSS样式

要制作成上图所示的选项卡样式,几个地方需要注意: 
1、整个选项卡的样式设置 
2、选项卡标题的样式设置 
3、选项卡内容的样式设置 
4、只能显示一个选项卡的内容,其他选项卡内容隐藏。

JavaScript实现选项卡切换

1、需要获取选项卡标题和选项卡内容 
2、选项卡内容有三个,需要循环遍历来操作,得知哪个选项卡和哪个选项内容匹配。 
3、通过改变DOM的css类名称,当前点击的选项卡显示,其它隐藏。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Tab切换</title>
    <style>
*{
    padding: 0px;
    margin: 0px;
}
body{
    margin: 80px;
}
ul{
    list-style: none;
}
#tab{
    border: 1px solid #dddddd;
    width: 498px;
   height: 130px;
}
#tab-header{
    height: 38px;
   background-color: #f7f7f7;
    position: relative;
}
.tab-header ul{
    width: 501px;
    position: absolute;
    left: -1px;
}
.tab-header ul li{
    float: left;
    width: 98px;
    height: 38px;
    line-height: 38px;
    text-align: center;
    padding: 0px 1px;
    border-bottom: 1px solid #dddddd;
}
#tab-header ul li.selected{
    background-color: white;
    border-bottom: 0px;
    border-left: 1px solid #dddddd;
    border-right: 1px solid #dddddd;
    padding: 0px;
}
.tab-header ul li:hover{
    font-weight: bold;
    color: orangered;
}
#tab-content ul{
    margin-top: 10px;
}
a{
   color: black;
    text-decoration: none;
}
#tab-content li{
    float: left;
    width: 220px;
    margin: 10px;
}
#tab-content a:hover{
    color: orangered;
}
#tab-content .dom{
    display: none;
}
    </style>
</head>
<body>
    <div id="tab">
        <div id="tab-header" class="tab-header">
            <ul>
                <li class="selected">公告</li>
                <li>规则</li>
                <li>论坛</li>
                <li>安全</li>
                <li>公益</li>
            </ul>
        </div>
        <div id="tab-content">
            <div class="dom" style="display: block;">
                <ul>
                    <li>
                        <a href="#">数据七夕:金牛爱送玫瑰</a>
                    </li>
                    <li>
                        <a href="#">阿里打造"互联网监管"</a>
                    </li>
                    <li>
                        <a href="#">10万家店60万新品</a>
                    </li>
                    <li>
                        <a href="#">全球最大网上时装周</a>
                    </li>
                </ul>
            </div>
            <div class="dom">
                <ul>
                    <li>
                        <a href="#">“全额返现”要管控啦</a>
                    </li>
                    <li>
                        <a href="#">淘宝新规发布汇总(7月)</a>
                    </li>
                    <li>
                        <a href="#">炒信规则调整意见反馈</a>
                    </li>
                    <li>
                        <a href="#">质量相关规则近期变更</a>
                    </li>
                </ul>
            </div>
            <div class="dom">
                <ul>
                    <li>
                        <a href="#">阿里建商家全链路服务</a>
                    </li>
                    <li>
                        <a href="#">个性化的消费时代来临</a>
                    </li>
                    <li>
                        <a href="#">跨境贸易是中小企业机</a>
                    </li>
                    <li>
                        <a href="#">美妆行业虚假信息管控</a>
                    </li>
                </ul>
            </div>
            <div class="dom">
                <ul>
                    <li>
                        <a href="#">接次文件,毁了一家店</a>
                    </li>
                    <li>
                        <a href="#">账号安全神器阿里钱盾</a>
                    </li>
                    <li>
                        <a href="#">新版阿里110上线了</a>
                    </li>
                    <li>
                        <a href="#">卖家学违禁避免被处罚</a>
                    </li>
                </ul>
            </div>
            <div class="dom">
                <ul>
                    <li>
                        <a href="#">为了公益high起来</a>
                    </li>
                    <li>
                        <a href="#">魔豆妈妈在线申请</a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
    <script>
function $(id) {
    return typeof id === ‘string‘ ? document.getElementById(id) : id;
}
window.onload = function () {
    var lis = $(‘tab-header‘).getElementsByTagName(‘li‘);
    var content = $(‘tab-content‘).getElementsByClassName(‘dom‘);
    if (lis.length != content.length) return;
    for (var i = 0; i < lis.length; i++){
        var li = lis[i];
        li.id = i;
        li.onmousemove = function () {
            for (var j = 0; j < lis.length; j++){
                lis[j].className = ‘‘;
                content[j].style.display = ‘none‘;
            }
            this.className = ‘selected‘;
            content[this.id].style.display = ‘block‘;
        }
    }
}
    </script>
</body>
</html>
时间: 2024-10-14 06:18:45

选项卡(1)的相关文章

转载《Android-TabHost 选项卡功能用法详解》

一. TabHost介绍 TabHost组件可以在界面中存放多个选项卡, 很多软件都使用了改组件进行设计; 1. TabHost常用组件 TabWidget : 该组件就是TabHost标签页中上部 或者 下部的按钮, 可以点击按钮切换选项卡; TabSpec : 代表了选项卡界面, 添加一个TabSpec即可添加到TabHost中; -- 创建选项卡 : newTabSpec(String tag), 创建一个选项卡; -- 添加选项卡 : addTab(tabSpec); 2. TabHos

js实现选项卡

通过JavaScript实现如上选项卡切换的效果. 实现思路: 一.HTML页面布局 选项卡标题使用ul..li 选项卡内容使用div 二.CSS样式制作 整个选项卡的样式设置 选项卡标题的样式设置 选项卡内容的样式设置 一开始只显示一个选项卡内容,其它选项卡内容隐藏. 三.JS实现选项卡切换 获取选项卡标题和选项卡内容 选项卡内容多个,需要循环遍历来操作,得知哪个选项卡和哪个选项内容匹配 通过改变DOM的css类名称,当前点击的选项卡显示,其它隐藏 <!--代码一--><!DOCTYP

【锋利的JQuery-学习笔记】Tab选项卡的实现

效果图: 关键点: 1.标签和标签内容都是用<ul><li>实现的,主要是通过Css样式设计成选项卡的模样. 2.用js代码实现点击标签时,标签内容的切换(做法是<div id="jnBrandList">横向滚动). html: <div id="jnBrand"> <div id="jnBrandTab"> <h2 title="品牌活动">品牌活动&

WEB前端:01_Tab选项卡

Tab选项卡 采用两种方法实现选项卡切换功能,目前只提供了最基本的切换效果,后期增加jquery版和渐变切换效果. 效果图: 纯JS简化版: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 <html> <head> <ti

2、开关灯-选项卡-隔行换色

一. <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> html,body{ margin: 0; padding: 0; width: 100%; height: 100%; cursor: pointer; } </style> </hea

Flex中TabNavigator隐藏和显示选项卡

1.问题背景 遇到这样一个问题:有四个Tab选项卡.依据不同的參数隐藏和显示选项卡 2.实现实例 (1)隐藏"春季" protected function springClickHandler(event:MouseEvent):void { tabs.getTabAt(0).visible = false; tabs.getTabAt(0).includeInLayout = false; tabs.getTabAt(1).visible = true; tabs.getTabAt(

AngularJs选项卡的不同写法

AngularJs选项卡的写法有很多,每个人都会有自己的一个写法,今天我来给大家展示两种不同写法的AngularJs选项卡! 方法一: 1.创建选项卡,我是在控制器里创建数组将其渲染在页面上: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>选项卡1</title> <style> #ul{

jquery easyui 选项卡

CSS加载 <div class="easyui-tabs" style="width: 400px;height: 250px">   <div title="Tab1" data-options="closable:true">    tab1   </div>   <div title="Tab2" data-options="closable:tr

【笔记】与Android选项卡一周

果然,还是项目驱动的学习方式比较有趣呢. 这周的学习全部围绕着选项卡,也就是tab. 用到了好多知识点,都不知道从哪里开始啦(≧o≦*). 选项卡的制作有很多方法.选项菜单可以用普通的TextView,也可以直接上button.我选择的是TextView,可能更接近网页的思路吧. 先列个清单出来: selector Fragment ViewPager 布局嘛,网上有一堆,就不提了. 1.selector 选项卡的功能,就是按不同的按钮就能切换到不同页面.作为反馈,按钮总得有点变化,比如换个颜色

CSS3及JS简单实现选项卡效果(适配手机端和pc端)

想要适配手机端和pc端,有几种简单的方法,本人使用的是百分比分配的方法. *{ padding: 0; margin: 0; } body,html{ width: 100%; height: 100%; overflow: hidden; } #bottom_box{ width: 100%; height: 50px; background-color: #eee; display: flex; //这是flex布局,父元素设置为flex,子元素设置几等份就是分成几等份 position: