纯CSS3完成选项卡,不要js完成的选项卡

我爱撸码,撸码使我感到快乐!
大家好,我是Counter。
今天就来敲一敲,选项卡,注意哦,不是一般利用js完成的选项卡,今天是纯用HTML和CSS来完成的,这怎么可能?那你不用js的点击事件,怎么处理?注意CSS3的新属性就可以完成啦,利用单选框的选择状态来查找兄弟元素,来改变下面元素的属性,就可以达到目的了。html的结构就不赘述了。
先看看效果:

 

效果有点丑,功能有就行了,懒得去修饰了,还有更重要的事等着我,好吧,代码给出:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>纯CSS3选项卡</title>
    <style>
        /* 初始化 */
        body, ul, li, a {
            margin: 0;
            padding: 0;
            text-decoration: none;
            list-style: none;
        }
        /* 外面一层容器居中 */
        .wrapper {
            width: 600px;
            margin: 0 auto;
            font-size: 0;
            background-color: #ccc;
        }
        /* 设置导航栏为块级行元素,并将里面的字体垂直居中 */
        .nav .nav-list li {
            display: inline-block;
            width: 200px;
            height: 50px;
            text-align: center;
            line-height: 50px;
            font-size: 20px;
            user-select: none;
        }
        /* 设置主题新闻样式以及字体大小 */
        .news ul {
            display: none;
            padding: 20px;
            font-size: 18px;
            background-color: #f7f7f7;
        }
        /* 将主题新闻里的每条新闻空开来 */
        .news li {
            padding: 10px;
        }
        /* 设置主题新闻的字体颜色 */
        .news li a {
            color: #888;
        }
        /* 最关键的一步,利用表单元素的属性,选中或者未选中,来设置,展示新闻主题是哪块 */
        #hot:checked ~ .news .hot-news,
        #home:checked ~ .news .home-news,
        #international:checked ~ .news .international-news {
            display: block;
        } 
        /* 当表单元素被选中时,对应的导航栏背景颜色也跟着变 */
        #hot:checked ~ .nav li:nth-of-type(1),
        #home:checked ~ .nav li:nth-of-type(2),
        #international:checked ~ .nav li:nth-of-type(3)
         {
            background-color: #f7f7f7
        }
        /* 将label标签的设置为行级块元素。同时设置大小,这样点击可点击的范围就变大了 */
        .nav .nav-list label {
            display: inline-block;
            width: 200px;
            height: 50px;
            cursor: pointer;
        }
        /* 将单选框给隐藏掉 */
        .wrapper input {
            display: none;
        }
    </style>
</head>
<body>
    <div class="wrapper">
        <input type="radio" name="tab" id="hot" checked>
        <input type="radio" name="tab" id="home">
        <input type="radio" name="tab" id="international">
        <div class="nav">
            <ul class="nav-list">
                <li>
                    <label for="hot">热门新闻</label>
                </li>
                <li>
                    <label for="home">国内新闻</label>
                </li>
                <li>
                    <label for="international">国际新闻</label>
                </li>
            </ul>
        </div>
        <div class="news">
            <ul class="hot-news">
                <li>
                    <a href="javascript:;">AAAAAAAAAAA</a>
                </li>
                <li>
                    <a href="javascript:;">AAAAAAAAAAA</a>
                </li>
                <li>
                    <a href="javascript:;">AAAAAAAAAAA</a>
                </li>
                <li>
                    <a href="javascript:;">AAAAAAAAAAA</a>
                </li>
                <li>
                    <a href="javascript:;">AAAAAAAAAAA</a>
                </li>
            </ul>
            <ul class="home-news">
                <li>
                    <a href="javascript:;">BBBBBBBBBBB</a>
                </li>
                <li>
                    <a href="javascript:;">BBBBBBBBBBB</a>
                </li>
                <li>
                    <a href="javascript:;">BBBBBBBBBBB</a>
                </li>
                <li>
                    <a href="javascript:;">BBBBBBBBBBB</a>
                </li>
                <li>
                    <a href="javascript:;">BBBBBBBBBBB</a>
                </li>
            </ul>
            <ul class="international-news">
                <li>
                    <a href="javascript:;">CCCCCCCCCCC</a>
                </li>
                <li>
                    <a href="javascript:;">CCCCCCCCCCC</a>
                </li>
                <li>
                    <a href="javascript:;">CCCCCCCCCCC</a>
                </li>
                <li>
                    <a href="javascript:;">CCCCCCCCCCC</a>
                </li>
                <li>
                    <a href="javascript:;">CCCCCCCCCCC</a>
                </li>
            </ul>
        </div>
    </div>
</body>
</html>

猜你喜欢

转载自www.cnblogs.com/Counterrr/p/10627747.html