我有以下情景:

超文本标记语言

.input {
  color: red;
}

.input:not(:disabled, :read-only):hover {
  color: blue;
}
<input class="input" type="text" value="Hello">
<div class="input">Hello</div>

因此,悬停效果不会应用于div元素,但如果我从css中删除:read-only伪类部分,它将会apply.

为什么会发生这种情况??

推荐答案

您正在使用的:not() Select 器正在应用AND逻辑,因此这两个要求都需要为真.:not(:disabled):not(:read-only).Div与第二个div不匹配(只有输入匹配),因此悬停效果将不起作用.

如果您将其设置为可编辑,它将与输入内容类似

.input {
  color: red;
}

.input:not(:disabled, :read-only):hover {
  color: blue;
}
<input class="input" type="text" value="Hello">
<div class="input" contenteditable>Hello</div>

Html相关问答推荐

如何删除html原生对话框的宽度

只有一行上有溢出的CSS网格

如何才能只给没有孟加拉语Kar符号的字母上色?

如何在伪元素背景中定位多个CSS径向梯度

如何使用CSS在NSAttributedString中为HTML文本中的图像制作覆盖图

更改Angular 为17的material Select 字段的高度?

SVG';COLOR&39;属性不优先于通用css';COLOR&39;属性

带有排序元素的 CSS 网格

使用简单的 HTML 设计公司徽标和文本

悬停时宽度从 0 过渡到自动

Angular:从服务器下载 HTML 并打印

如何将背景与之前的内容正确对齐

pull-right 不适用于 bootstrap alert 内的按钮

如何动态调整彼此重叠的两个 div 的大小,使它们在增长时保持相同的高度