复选框中伪类的 css 位置不起作用

标签 css less frontend

我需要使用 CSS 而不是图像在复选框中创建一个勾号。

我可以看到正确显示绿色“✔”。但是 css 中的顶部和左侧不起作用,勾号总是卡在复选框的左上角,我希望它在中间。为什么 content 和 color 属性有效但 left 和 top 无效?

最佳答案

Top 和 left 不适用于静态元素,您需要指定相对、固定或绝对位置才能使用这些属性。你可以试试这个:

input[type=checkbox]:checked ~ .icon:after, ._checked input[type=checkbox] ~ .icon :after {
    background-position: 0 -800px;
    content: '✔';
    font-size: 25px;
    margin: auto;
    top: 15px;
    left: 250px;
    color: green;
    position: relative;
}

完整代码:

input[type=checkbox]:focus+.icon {
  background-position: 0 -822px;
}

input[type=checkbox]:checked~.icon,
._checked input[type=checkbox]~.icon {
  background-position: 0 -856px;
  background-color: #2196F3;
  display: block;
}

input[type=checkbox]:checked~.icon:after,
._checked input[type=checkbox]~.icon :after {
  background-position: 0 -800px;
  content: '✔';
  font-size: 25px;
  margin: auto;
  top: 5px;
  left: 50%;
  margin-left:-12px;
  color: green;
  position:relative;
}

input[type=checkbox]:not(:checked)+div.validationsContainer~.icon {
  background-position: 0 -890px;
}

,
input[type=checkbox]:checked:hover+label,
input[type=checkbox]:checked:focus+label {
  background-position: 0 15.3%;
}

&.hasError .icon {
  background-position: 0 -890px;
}
<input type="checkbox" required="required" name="terms" id="termsAgree" auto-required="true">
<span class="icon"></span>

关于复选框中伪类的 css 位置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47024539/

相关文章:

javascript - ReactJS - onClick 在原始 javascript 中不起作用

javascript - 主页横幅幻灯片无法正常运行

javascript - 使用 jquery 和 css 如何创建延迟的背景颜色变化动画?

javascript - 更少的 CSS 服务器端,但没有 node.js?

css - Less:在呈现的 CSS 中显示行号原始文件和行号

css - 如何将 box-shadow 更改为 css 中的类似命令?

html - CSS3 过渡似乎在动画期间修改 z-index

html - Flexbox 将元素垂直对齐到导航栏的中心

javascript - 修改 LESS 变量不适用于包含 LESS 代码的页内 &lt;style&gt; 标记

html - 图像前的空白