我正在为Vue3组件编写CSS,但我无法让一个 Select 器覆盖另一个 Select 器.我的目标元素有.in-选定行、.in-选定列、.in-选定框和.选定单元格类,但我只想应用第二个 Select 器中的样式.

我认为第二个 Select 器会比第一个 Select 器更具体,但我能够让它工作的唯一方法是添加!Important属性.

以下是代码:

.in-selected-row.in-selected-box, .in-selected-col.in-selected-box {
  background-color: rgba(0, 128, 128, .25);
}

table tbody tr td.selected-cell {
  background-color: rgba(255, 0, 0, .25);
}

以下是我的目标元素:

<table><tbody>...<tr>...<td data-v-b4e148ca="" class="selected-cell in-selected-row in-selected-col in-selected-box"><input data-v-b4e148ca="" readonly="" class="sudoku-input"></td>...</tr>...</tbody><table>

下面是我在浏览器中看到的css:

.in-selected-row.in-selected-box[data-v-b4e148ca], .in-selected-col.in-selected-box[data-v-b4e148ca] {
  background-color: rgba(0, 128, 128, 0.25);
}
table tbody tr td.selected-cell[data-v-b4e148ca] {
  background-color: rgba(255, 0, 0, 0.25); <- striked through
}

推荐答案

让我们看一下给定 Select 器的CSS specificity weight个:

selector ids class type specificity
.in-selected-row.in-selected-box[data-v-b4e148ca] 0 3 0 0-3-0
.in-selected-col.in-selected-box[data-v-b4e148ca] 0 3 0 0-3-0
table tbody tr td.selected-cell[data-v-b4e148ca] 0 2 4 0-2-4

比较特定性列从左到右,直到一个列值超过另一个列值.因此,在0-3-00-2-4之间,第二列将决定0-3-0获胜.

因此,您需要向 Select 器添加另一个类,以确定第三列的专用性,或者添加两个类,类似于:

table tbody tr td.in-selected-row.selected-cell[data-v-b4e148ca] /* 0-3-4 */
.in-selected-row.selected-cell.selected-cell[data-v-b4e148ca]    /* 0-4-0 */

(我显然不知道这些课程的确切含义,所以请查看哪些课程适合您)

Html相关问答推荐

Vue.js复选框对齐问题:在表格单元格中居中复选框

未显示新组件的视图

Angular 分量被循环

react :事件和转发器在特定代码段中不起作用

如何在一行文本溢出省略号后显示文本?

文本css后面未显示背景 colored颜色

如何使VS代码支持以模仿嵌套的方式对已经包含注释的HTML进行注释?

如何将图像放在其内部按钮下方

样式化单选按钮 背景 colored颜色

CSS Grid 布局:1 大图和 3 小图

需要帮助个性化我的 CSS 导航栏:如何在鼠标悬停时突出显示
  • 元素?
  • 如何将背景与之前的内容正确对齐

    透明渐变凹矩形

    如何为某些行具有 rowspan 的表的每个奇数行着色

    删除按钮组件时 bootstrap col-auto 布局高度对齐中断

    如何从 razor 页面打开 html 页面

    如何在 blazor 中单击单个按钮调用 2 个等待任务

    我可以在标签元素中使用标题元素吗?

    本地 css 样式表未链接

    将固定/绝对伪元素放置在相对 div(具有滚动条)内,始终位于底部