如何添加您自己的自定义 css 以覆盖 react-confirm-alert 默认值

Posted

技术标签:

【中文标题】如何添加您自己的自定义 css 以覆盖 react-confirm-alert 默认值【英文标题】:How to add your own custom css to override react-confirm-alert defaults 【发布时间】:2021-04-18 13:08:09 【问题描述】:

我正在使用来自react-confirm-alert 的确认弹出窗口:

   popup = _id => 
    confirmAlert(
      title: "Delete user",
      message: "Are you sure?",
      buttons: [
        
          label: "Ja",
          onClick: () => this.deleteUserHandler(_id)
        ,
        
          label: "Nej",
        
      ],
      closeOnEscape: true,
      closeOnClickOutside: true,
    );
  

有没有办法设置它的样式?我可以像这样设置叠加层。

.react-confirm-alert-overlay 
  background: rgba(0,0,0,0.5);

但我不知道如何更改按钮、消息或标签。请帮忙。

【问题讨论】:

【参考方案1】:

这是渲染示例:

<div id="react-confirm-alert">
  <div class="react-confirm-alert-overlay">
    <div class="react-confirm-alert">
      <div class="react-confirm-alert-body">
        <h1>Confirm to submit</h1>
        Are you sure to do this.
        <div class="react-confirm-alert-button-group"><button>Yes</button><button>No</button></div>
      </div>
    </div>
  </div>
</div>

您可以通过类名(.react-confirm-alert.react-confirm-alert-body.react-confirm-alert-button-group 等)或使用子选择器(.react-confirm-alert-body h1.react-confirm-alert-button-group button.react-confirm-alert-button-group button:first-child 等)来定位元素.

您还可以创建并传递您自己的自定义 UI 组件,您可以按照自己的方式设置样式:

confirmAlert(
  customUI: ( onClose ) => 
    return (
      <div className="alert">
        <h1 className="alert__title">Are you sure?</h1>
        <p className="alert__body">You want to delete this file?</p>
        <button onClick=onClose className="alert__btn alert__btn--no">No</button>
        <button
          onClick=() => 
            this.handleClickDelete();
            onClose();
          
          className="alert__btn alert__btn--yes"
        >
          Yes, Delete it!
        </button>
      </div>
    );
  
);

https://www.npmjs.com/package/react-confirm-alert#custom-ui-component

【讨论】:

非常感谢伙计,这是一个好的开始,正是我想要的。如何使整个警报框居中?我试过填充、边距等,但它不动。我什至尝试过 .react-confirm-alertposition:relative 不客气。这应该是一个新问题,但如果您尝试过position: relative,您可以添加top: 50%; 将顶部移至中间,并添加transform: translateY(-50%); 将其再次上移一半。您可能还需要添加margin: auto。如果上面的答案有助于解决您的问题,您可以通过单击旁边的复选标记按钮来接受我的答案;) 我刚刚勾选了它:)。我非常感谢你,非常感谢。知道如何在我的示例中定位消息(询问“您确定吗?”之间的文本)? 谢谢 :) 不幸的是,他们没有在消息周围添加div,所以它不是那么简单。您可以更改.react-confirm-alert-body 的样式并更新h1 和按钮的样式以将它们改回。不理想,但如果您不想添加自定义 UI,这可能是最简单的。 非常感谢队友,非常感谢,祝您白天或黑夜愉快。

以上是关于如何添加您自己的自定义 css 以覆盖 react-confirm-alert 默认值的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap cdn 覆盖了我在 react js 中的自定义 css 样式

如何使用CSS在Bootstrap中更改样式

如何使用自定义 css 文件覆盖 react-bootstrap

如何覆盖 React 本机 web 预定义的 css

如何在通过 NPM 分发时管理 React 组件(Redux、CSS)的自定义方面

如何更改引导程序原色?