css3实现的tab切换,里面这段css选择器是什么意思?我没看明白,还有input为什么必须加name属性,不加就实现不了效果

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>CSS3实现Tab切换</title>
    <style>
        * { margin: 0;
            padding: 0;
        }
        .main {
            width: 300px;
            height: 150px;
            margin: 50px auto;
            position: relative;
            color: #fff;
        }
        .main input {
            display: none;
        }
        .main label {
            cursor: pointer;
            height: 24px;
            display: block;
        }
        .main ul {
            list-style: none;
        }
        .main li {
            float: left;
            width: 50px;
            height: 24px;
            line-height: 24px;
            background: red;
            margin-right: 3px;
        }
        .main div {
            width: 300px;
            height: 126px;
            position: absolute;
            top: 24px;
            left: 0;
            background: #000;
            display: none;
        }
        .main input:checked~ label {
            background: #000;
        }
        .main input:checked~ div {
            display: block;
        }
    </style>
</head>
<body>
    <div class="main">
        <ul>
            <li>
                <input type="radio" name="tabs" id="tab1" checked>
                <label for="tab1">Tab1</label>
                <div>11111111111111</div>
            </li>
            <li>
                <input type="radio" name="tabs" id="tab2">
                <label for="tab2">Tab2</label>
                <div>222222222222222</div>
            </li>
        </ul>
    </div>
</body>
</html>

里面的这段

    .main input:checked~ label {
        background: #000;
    }
    .main input:checked~ div {
        display: block;
        }

还有input为什么必须指定name属性

<input type="radio" name="tabs" id="tab1" checked>
<input type="radio" name="tabs" id="tab2">
阅读 3.9k
2 个回答

上面那个css就具体到checked属性后标签的样式,至于为什么要指定name,这是radio必须的。指定一样的名字,才能过去唯一的radio值

input[type="radio"]如果不使用name属性的话,浏览器怎么知道和哪个input[type="radio"]组合形成单选按钮组,既然不知道和哪个input元素组合,那浏览器就会自己本身独立为一组,而单选按钮又不能第二次点击时取消原有状态,因此就出现你所谓的"实现不了效果"。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题