首页 > 其他分享 >使用更高优先级的选择器

使用更高优先级的选择器

时间:2025-01-06 18:59:07浏览次数:8  
标签:优先级 更高 title param label 选择器 special

文章目录


要解决这个问题,你需要确保 .special-label 的样式优先级高于 .param-title 的默认样式。你可以通过以下几种方法来实现:

1. 使用更高优先级的选择器

你可以通过使用更高优先级的选择器来覆盖默认样式。例如:

.param-title.special-label {
  width: 50rpx;
}

这样会确保 .special-label 的样式优先级高于 .param-title

2. 使用 !important

你可以使用 !important 来强制覆盖默认样式。例如:

.special-label {
  width: 50rpx !important;
}

修改后的 CSS 文件

以下是修改后的 CSS 文件,应用了更高优先级的选择器:

/* 新增样式 */
.param-title.special-label {
  width: 50rpx;
}

.logistics-param-wrap {
  width: 100%;
  padding: 40rpx 20rpx;
}

.logistics-param-title {
  width: 100%;
  font-size: 28rpx;
  color: #161616;
}

.logistics-param-box {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}

.param-item-box {
  width: 33.333%;
  font-size: 20rpx;
  display: flex;
  margin-top: 24rpx;
}

.param-title,
.param-image-title {
  width: 140rpx;
  color: #5B5E65;
}

.param-value,
.param-image-value {
  width: calc(100 - 140rpx);
  color: #000;
}

.logistics-image-param-box {
  width: 100%;
}

.param-image-item-box {
  width: 100%;
  margin-top: 24rpx;
  display: flex;
  font-size: 20rpx;
}

.param-image {
  width: 120rpx;
  height: 120rpx;
  background: #D9D9D9;
  margin-right: 20rpx;
  margin-bottom: 20rpx;
}

.param-image {
  width: 120rpx;
  height: 120rpx;
}

修改 WXML 文件

确保在 wxml 文件中正确应用了 special-label 类:

<view class="logistics-param-wrap">
  <view class="logistics-param-title">
    物流参数
  </view>
  <view class="logistics-param-box">
    <view class="param-item-box" wx:for="{{ list }}" wx:key="key">
      <view class="param-title {{ item.key === 'boxCode' ? 'special-label' : '' }}">{{ item.label }}</view>
      <view class="param-value {{ item.key === 'boxCode' ? 'special-key' : '' }}">{{ detail[item.key] || '/' }}</view>
    </view>
  </view>
  <view class="logistics-image-param-box">
    <view class="param-image-item-box">
      <view class="param-image-title">外箱样式图</view>
      <view class="param-image-value">
        <image class="param-image" wx:for="{{ detail.boxStyleImageList }}" wx:key="name" src="{{ oss + item.thumbnail }}" data-item="{{ item }}" catch:tap="handlePreview" />
      </view>
    </view>
  </view>
  <view class="logistics-param-box">
    <view class="param-item-box" wx:for="{{ list2 }}" wx:key="key">
      <view class="param-title {{ item.key === 'middleBoxCode' ? 'special-label' : '' }}">{{ item.label }}</view>
      <view class="param-value {{ item.key === 'middleBoxCode' ? 'special-key' : '' }}">{{ detail[item.key] || '/' }}</view>
    </view>
  </view>
  <view class="logistics-image-param-box">
    <view class="param-image-item-box">
      <view class="param-image-title">中箱样式图</view>
      <view class="param-image-value">
        <image class="param-image" wx:for="{{ detail.middleBoxStyleImageList }}" wx:key="name" src="{{ oss + item.thumbnail }}" data-item="{{ item }}" catch:tap="handlePreview" />
      </view>
    </view>
  </view>
</view>

通过这些修改,你可以确保 .special-label 的样式优先级高于 .param-title,从而使 width: 50rpx 生效。


1、复合选择器

.param-title.special-label 是一种 复合选择器,它结合了类选择器和类选择器,属于 类选择器 优先级范畴。

详细解析:

  • .param-title: 这是一个 类选择器,它会选中所有具有 param-title 类名的 HTML 元素。
  • .special-label: 这也是一个 类选择器,它会选中所有具有 special-label 类名的 HTML 元素。
  • .param-title.special-label: 这是一个 复合选择器,或者称为组合选择器。它会同时选中 既具有 param-title 类名又具有 special-label 类名 的 HTML 元素。

优先级:

根据 CSS 选择器的优先级规则,param-title.special-label 属于 类选择器 的范畴,其优先级高于类型选择器(例如 divp)但低于 ID 选择器(例如 #id)。

优先级计算(权值):

  • .param-title: 10
  • .special-label: 10
  • .param-title.special-label: 10 + 10 = 20

举例说明:

<view class="param-title"> 普通标签 </view>
<view class="param-title special-label"> 特殊标签 </view>
.param-title {
  color: #000; /* 普通标签颜色为黑色 */
}

.special-label {
    font-weight: bold;/*特殊标签字体加粗*/
    font-style: italic; /* 特殊标签字体斜体 */
}

.param-title.special-label {
  width: 120rpx;  /* 特殊标签宽度为120rpx */
}

在这个例子中:

  • 第一个 view 元素,只应用了 .param-title 的样式,所以是黑色。
  • 第二个 view 元素,同时应用了 .param-title.special-label 的样式,所以是黑色,加粗,斜体。
  • 但是因为有 .param-title.special-label ,所以第二个元素的宽度被设置为 120rpx

总结:

.param-title.special-label 是一个 复合类选择器,它选择了同时具有 param-titlespecial-label 两个类名的元素,它的优先级高于单独的类选择器,但低于 ID 选择器。 这种选择器常用于精确控制特定元素的样式。


2、CSS 优先级规则

如果 .param-title 也有宽度定义,那么 .param-title.param-title.special-label 的宽度定义就会产生冲突,这时就需要根据 CSS 优先级规则来判断哪个样式生效。

分析:

  1. .param-title (类选择器): 优先级为 10 (一个类选择器)。
  2. .param-title.special-label (复合类选择器): 优先级为 20 (两个类选择器相加)。

结论:

由于 .param-title.special-label 的优先级更高(20 > 10),因此 .param-title.special-label 中定义的宽度会覆盖 .param-title 中定义的宽度

例子:

<view class="param-title"> 普通标签 </view>
<view class="param-title special-label"> 特殊标签 </view>
.param-title {
  color: #000; /* 普通标签颜色为黑色 */
  width: 100rpx; /* 普通标签宽度为100rpx */
}

.special-label {
    font-weight: bold;/*特殊标签字体加粗*/
    font-style: italic; /* 特殊标签字体斜体 */
}

.param-title.special-label {
  width: 120rpx;  /* 特殊标签宽度为120rpx */
}

在这个例子中:

  • 第一个 view 元素,只应用了 .param-title 的样式,所以是黑色,宽度为 100rpx
  • 第二个 view 元素,同时应用了 .param-title.special-label 的样式。虽然 .param-title 定义了宽度为 100rpx,但 .param-title.special-label 的宽度定义 120rpx 的优先级更高,所以它的宽度最终为 120rpx,同时字体也是黑色、加粗和斜体。

总结:

当多个选择器同时作用于同一个元素,并且对同一个属性(例如 width)进行了定义时,优先级更高的选择器定义的样式会覆盖优先级较低的选择器定义的样式

在这个例子中,param-title.special-label 选择器拥有更高的优先级,所以它的 width: 120rpx; 会覆盖 param-title 选择器的 width: 100rpx;

因此,.param-title.special-label 定义的宽度会生效。

在这里插入图片描述

标签:优先级,更高,title,param,label,选择器,special
From: https://blog.csdn.net/m0_65152767/article/details/144969091

相关文章

  • 周选择器 vxe-date-picker 自定义一周开始日
    周选择器vxe-date-picker自定义一周开始日官网:https://vxeui.com周一开始<template><div><vxe-date-pickerv-model="val1"placeholder="周选择,周一开始"type="week":start-day="1"></vxe-date-picker></div......
  • 这样设置让Windows11更高效更符合操作习惯
    Windows11进行了大量的UI优化,看上去美观大方,但太臃肿效率太低,如果你习惯Windows10的界面,那么这么更改可以更简洁 1.干净任务栏,效果图如下:方法:隐藏小组件、隐藏搜索框、关闭任务视图、任务栏对齐方式靠左、合并任务栏标签改为“任务栏已满时"。部分设置页面截图:  2.文......
  • Java代码实现优先级队列
         最近看了PriorityQueue的源码实现后,我深有感悟,其实本质上就是用了堆的数据结构,我也自己尝试实现了优先级队列的代码,不多说了,代码如下。目录源码实现 测试用例代码源码实现    最近看了PriorityQueue的源码实现后,我深有感悟,其实本质上就是用了堆......
  • element-plus DatePicker 日期选择器设置默认打开/ 阻止DatePicker 日期选择器默认收
    需求是我只想要一个日期选择框,如下 但是element的日期选择框架都是这样,带有一个框,为了得到我想要的效果,我们把他设置为默认打开,在将其input框隐藏起来。 建议将其单独封装为组件使用,避免影响其它日期选择框<scriptsetuplang="ts">import{ref,onMounted,nextTick,......
  • 请说说js中运算符的优先级
    在JavaScript中,运算符的优先级决定了表达式中各个部分的计算顺序。理解运算符的优先级对于编写准确、可预测的代码至关重要。以下是JavaScript中运算符的优先级,从高到低排列:一元运算符:递增/递减:++、--(作为前缀或后缀)一元加/减:+、-逻辑非:!按位非:~类型运算符:typeof、void、......
  • 团队管理必备:RACI责任矩阵让分工更高效
    在团队合作中,最怕的就是责任不清、任务分工混乱。谁该做什么,谁对结果负责,谁需要提供帮助,谁需要被通知?如果这些问题没有理清楚,就很容易出现任务没完成、团队内耗或者“甩锅”的情况。RACI责任矩阵正是为了解决这些问题的神器。什么是RACI矩阵?RACI矩阵可以简单理解为一个“责任分......
  • Odoo17 4模型计算字段:compute_sudo=True:在更高权限下执行计算
    在Odoo开发中,compute字段是一种强大的工具,用于动态计算字段的值。然而,有时你可能会遇到这样的情况:计算需要访问一些普通用户无法访问的数据,或者需要跨越访问控制。这时,compute_sudo=True标志就派上了用场。本文将详细介绍compute_sudo=True的含义、作用、应用场景......
  • 2.2层次选择器
    2.2层次选择器1.后代选择器:在某个元素的后面 祖爷爷-爷爷-爸爸-你 2.子选择器:只有一代父亲-儿子3.相邻兄弟选择器:同辈 必须是紧邻的,且是下一个 4.通用选择器:同一级中,可以不相邻,但必须在下面 ......
  • 3.选择器
    选择器:作用:选择页面上的某一个或者某一类元素3.1基本选择器:1.标签选择器:选择一类标签  2.类选择器class:选中所有class属性一致的标签(可以跨标签) .class名称{}   3.id选择器:id全局唯一#id名称{} 不遵循就近原则:id>class>标签......
  • 五十八:我们需要Stream优先级
    在网络通信和数据传输中,特别是在使用HTTP/2协议时,Stream优先级的概念显得尤为重要。Stream优先级通过对不同数据流进行排序,使得网络资源能够更加高效地分配,从而提升用户体验和减少延迟。本文将探讨Stream优先级的必要性、实现方式以及其在网络通信中的应用。为什么需要Stream......