不能为 Label 元素的子元素设置样式

Posted

技术标签:

【中文标题】不能为 Label 元素的子元素设置样式【英文标题】:Cannot style children of a Label element 【发布时间】:2021-10-24 03:38:42 【问题描述】:

我正在尝试自定义一个复选框,但由于某种原因,我无法设置此标签元素的子元素的样式。例如,尝试向子 Input 元素添加填充我尝试了 CSS 中显示的最后两个条目,但都不起作用。这是怎么回事?

    #container 
      display: flex;
      flex-direction: column;
    

    #container div 
      display: flex;
    

    .test 
      display: flex;
      height: 4rem;
      align-items: center;
      padding-left: 2rem;
    

    .container input 
      padding-right: 3rem;
    
    
    .test input 
      padding-right: 3rem;
    
    <section id="container">
        <div>
            <label class="test">Expand Sidebar To Show Text                     
                <input type="checkbox">
                <span class="checkmark"></span>
            </label>
        </div>
    </section>

【问题讨论】:

您可能会发现这很有用!:Customize radio and checkbox 您将容器作为一个类引用,它是和 ID。而不是 .container 使用 #container 感谢您指出 Gerardo,在我的真实代码中它是正确的,但这并不能解决问题。只是在重新格式化问题的代码时错过了这一点。我已经更新了问题中的代码。 【参考方案1】:

可应用于input 等元素的样式有限。例如paddinginput[type="checkbox"] 没有影响。您需要隐藏元素并重新绘制它。查看this answer中的链接

【讨论】:

我认为 OP 实际上也在尝试制作一个自定义复选框 - 隐藏输入和样式 .checkmark - 但在翻译中迷路了:)

以上是关于不能为 Label 元素的子元素设置样式的主要内容,如果未能解决你的问题,请参考以下文章

css判断某元素的子元素个数,并分别设置样式

stylus选中hover元素的兄弟元素下的子元素

根据子元素将CSS样式应用于元素[重复]

如果元素有一个具有类“.foo”样式的子元素,它就像这样 [SASS] [重复]

CSS 可以检测元素的子元素数量吗?

为啥我们不能使用 CSS 设置下拉菜单的样式? [复制]