开发者社区> 问答> 正文

input[type=checkbox]:checked + table {display:block;} ?

杨冬芳 2016-06-06 14:58:04 693
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Demo</title>
    <style type="text/css">
    *{margin:0;padding:0;box-sizing:border-box;}
    .dn{
        display:none;
    }
    input[type=checkbox]{
        visibility:hidden;
        position:absolute;
    }
    input[type=checkbox]:checked+table{
        display:block;
    }
    table{
        border:1px solid red;
    }
    </style>
</head>
<body>
    <label for="swtich">swtich</label>
    <table>
        <tr>
            <td>1111111111</td>
            <td>222222222</td>
            <td>333333333</td>
            <td>444444444</td>
            <td>555555555</td>
        </tr>
    </table>
    <input type="checkbox" id='swtich'/>
    <table class='dn'>
        <tr>
            <td>1111111111</td>
            <td>222222222</td>
            <td>333333333</td>
            <td>444444444</td>
            <td>555555555</td>
        </tr>
    </table>
</body>
</html>

下面那个table的宽是什么回事啊?
screenshot

分享到
取消 提交回答
全部回答(2)
  • chenjiechenl
    2019-07-17 19:28:40
    把紧接在被勾选状态的筛选框元素后出现的表格元素(该筛选框和表格元素拥有共同的父元素)设置为块级元素展示
    0 0
  • 西秦说云
    2019-07-17 19:28:40

    display: block; 默认就是占满父元素的宽度。

    我理解这代码是像通过 display: block 让原本 display: none 的

    所以你可以改成

    input[type=checkbox]:checked+table{
        display: table;
    }

    事实上像

    默认 display 是 block、 默认是 inline 外,不同元素的默认 display 都会不同。所以还有个简单的办法是 display: initial 直接使用默认的 display。不过浏览器兼容性不好。
    0 0
添加回答
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章