如何通过 react/next js 删除 :focus 伪类?

Posted

技术标签:

【中文标题】如何通过 react/next js 删除 :focus 伪类?【英文标题】:How to remove :focus pseudo class via react/ next js? 【发布时间】:2021-10-22 20:49:11 【问题描述】:

我正在为我的 Web 应用程序使用下一个 js,我正在使用 :focus 显示按钮工具提示,即使选择了选项,它仍然保持不变。我想不择手段地删除这个:focus 类。

这是我的 css 供参考:

.icon-container-interaction:focus .post-cell-options
    opacity: 1;
    top: 56px;
    right: 16px;
    z-index: 1;
    box-shadow: 0px 0px 12px 6px  rgba(0, 0, 0, 0.08);
    visibility: visible;



.post-cell-options
    opacity: 0;
    visibility: hidden;
    border-radius: 10px;
    z-index: 1;
    background-color: #ffffffe3;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: 0.2s;
    float: right;
    color: #000;
    top: 0px;
    right: 0px;
    position: absolute;
    width: 200px;

【问题讨论】:

【参考方案1】:

很难看不到组件的代码本身,但听起来您可以尝试为按钮创建一个引用,然后在单击选项时调用blur()(这会使该元素失去焦点,有效地删除了那个伪类。

不了解完整设置的基本思路:

const buttonRef = React.useRef(null)

....

return <>
  <ButtonTooltip ref=buttonRef />
  <Options onClick=() => buttonRef.current.blur() />
</>

类组件:

constructor(props)  
  super(props); 
  this.buttonRef = React.createRef()


return <>
  <ButtonTooltip ref=this.buttonRef />
  <Options onClick=() => this.buttonRef.current.blur() />
</>

【讨论】:

有没有办法在类组件中使用它? 是的,类组件等效于React.createRef,您将其绑定到构造函数...用该代码编辑了原始帖子

以上是关于如何通过 react/next js 删除 :focus 伪类?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React、Next.js 中使用 tailwind.css 垂直和水平放置内容中心?

Rails+React/Next.js:如何存储代码块以保持格式化?

使用 MUI V5 最新版本通过 React、Next JS 和本地存储切换暗模式

如何使用 formdata 将图像文件发送到 React/Next js api?

在 React (Next JS) 和 Apollo 中创建数据后如何获取 Id

REACT 学习路线