样式:如何覆盖活动元素上的 primeng tabmenu 边框颜色
styling: how to override primeng tabmenu border-colors on active element
我目前有一个全局蓝色主题 (saga-blue)。我设法通过使用简单的 css.
来更改文本和底部边框颜色(以匹配所需的品牌颜色)
但是,当第一次选择菜单项时,它后面会出现难看的蓝色边框,如下所示:
https://imgur.com/SYF7xmJ
无论 CSS 我怎样尝试,都无法删除它。当我检查元素时,我找不到它的来源。此外,只要我点击屏幕上的其他任何地方,它就会被删除:它只在第一次点击该项目时出现,在任何其他点击后消失。
我试过的CSS:
.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link {
color: $brand-red;
border-left: 0px !important;
border-right: 0px !important;
}
.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight {
color: $brand-red;
border-left: 0px !important;
border-right: 0px !important;
}
我还尝试取消设置与 menuitem 和 menulink 组件上的 'left' 或 'right' 有关的任何 属性 - 但丑陋的蓝色边框一直显示。如果有人知道这可能是什么样的 属性,我将不胜感激。
尝试outline: 0
这是默认浏览器主要为可访问性所做的事情。
如果您的样式未被应用并且您想覆盖 primeng 默认样式,您可能需要使用 :host ::ng-deep
。
另一种将样式应用于 PrimeNG 组件嵌套元素的方法是使用 styleClass
模板 属性。它并非每次都有效,您有时需要通过 !important
优先级修饰符强制 css。这不是最干净的方法,但很少 CSS 属性是通过计算在某些组件上内联的。
对于您的特定问题,当元素处于焦点状态时,.p-tabmenu(和子classes)正在使用焦点混合。
@mixin focused() {
outline: $focusOutline;
outline-offset: $focusOutlineOffset;
box-shadow: $focusShadow;
}
你需要玩玩 属性 box-shadow
到 remove/modify 这种你不喜欢的模糊颜色,如果你没有应用我给你的 primeng 样式建议希望。
在覆盖样式时不要忘记伪class :focus
。
你可能会有这样的结果把它彻底去掉
:host ::ng-deep .p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link:focus {
box-shadow: none;
}
我目前有一个全局蓝色主题 (saga-blue)。我设法通过使用简单的 css.
来更改文本和底部边框颜色(以匹配所需的品牌颜色)但是,当第一次选择菜单项时,它后面会出现难看的蓝色边框,如下所示: https://imgur.com/SYF7xmJ
无论 CSS 我怎样尝试,都无法删除它。当我检查元素时,我找不到它的来源。此外,只要我点击屏幕上的其他任何地方,它就会被删除:它只在第一次点击该项目时出现,在任何其他点击后消失。
我试过的CSS:
.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link {
color: $brand-red;
border-left: 0px !important;
border-right: 0px !important;
}
.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight {
color: $brand-red;
border-left: 0px !important;
border-right: 0px !important;
}
我还尝试取消设置与 menuitem 和 menulink 组件上的 'left' 或 'right' 有关的任何 属性 - 但丑陋的蓝色边框一直显示。如果有人知道这可能是什么样的 属性,我将不胜感激。
尝试outline: 0
这是默认浏览器主要为可访问性所做的事情。
如果您的样式未被应用并且您想覆盖 primeng 默认样式,您可能需要使用 :host ::ng-deep
。
另一种将样式应用于 PrimeNG 组件嵌套元素的方法是使用 styleClass
模板 属性。它并非每次都有效,您有时需要通过 !important
优先级修饰符强制 css。这不是最干净的方法,但很少 CSS 属性是通过计算在某些组件上内联的。
对于您的特定问题,当元素处于焦点状态时,.p-tabmenu(和子classes)正在使用焦点混合。
@mixin focused() {
outline: $focusOutline;
outline-offset: $focusOutlineOffset;
box-shadow: $focusShadow;
}
你需要玩玩 属性 box-shadow
到 remove/modify 这种你不喜欢的模糊颜色,如果你没有应用我给你的 primeng 样式建议希望。
在覆盖样式时不要忘记伪class :focus
。
你可能会有这样的结果把它彻底去掉
:host ::ng-deep .p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link:focus {
box-shadow: none;
}