首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react-modal更改模式的样式

使用react-modal更改模式的样式
EN

Stack Overflow用户
提问于 2018-04-07 04:28:39
回答 4查看 12.6K关注 0票数 4

我有这个对象,其中包含我想要的模式样式:

代码语言:javascript
复制
const customStyles = {
  content: {
    top: '35%',
    left: '50%',
    right: 'auto',
    bottom: 'auto',
    marginRight: '-50%',
    width: '60%',
    transform: 'translate(-40%, -10%)',
  },
};

然后我将样式传递给模型,如下所示:

代码语言:javascript
复制
            <Modal
              isOpen={this.state.modalIsOpen}
              onRequestClose={this.closeModal}
              style={customStyles}
            >

它工作得很好,但我想传递一个类,而不是在组件内创建customStyle对象。

我尝试这样做,首先创建模式类:

代码语言:javascript
复制
.modal {
  top: '35%';
  left: '50%';
  right: 'auto';
  bottom: 'auto';
  marginRight: '-50%';
  width: '60%';
  transform: 'translate(-40%, -10%)';
}

然后:

代码语言:javascript
复制
            <Modal
              isOpen={this.state.modalIsOpen}
              onRequestClose={this.closeModal}
              className="modal"
            >

但它并没有起作用。我做错了什么?

EN

回答 4

Stack Overflow用户

发布于 2018-08-10 22:22:41

应该是portalClassName:

代码语言:javascript
复制
<Modal
  isOpen={this.state.modalIsOpen}
  onRequestClose={this.closeModal}
  portalClassName="modal"
>
票数 7
EN

Stack Overflow用户

发布于 2018-04-07 05:19:22

我认为可能有十亿种方法可以做到这一点,这里只有一种使用CSS模块的方法。如果将样式放入单独的.css.js文件中,则可以将其导入模块中:

代码语言:javascript
复制
/// modal.css.js ///
export default {
  modal: {
    top: '35%',
    left: '50%',
    right: 'auto',
    bottom: 'auto',
    marginRight: '-50%',
    width: '60%',
    transform: 'translate(-40%, -10%)'
  },
  greenText: {
    color: 'rgb(0,255,100)'
  },
  style3: {
    marginRight: '-25%'
  }
}

然后,您可以通过像访问任何对象一样访问样式来分配样式,并将它们应用于style属性上的组件

代码语言:javascript
复制
import styles from './modal.css.js'

...

<Modal
  isOpen={this.state.modalIsOpen}
  onRequestClose={this.closeModal}
  style={styles.modal}
>

如果要将多个样式应用于组件,则需要为style属性提供一个数组。这将允许您应用来自多个导入的样式对象的样式。

代码语言:javascript
复制
<Modal
  isOpen={this.state.modalIsOpen}
  onRequestClose={this.closeModal}
  style={[styles.modal, styles.greenText]}
>
票数 1
EN

Stack Overflow用户

发布于 2021-10-22 11:52:45

代码语言:javascript
复制
 <ReactModal id={this.state.dialogId}
              isOpen={showDialog}
              onRequestClose={this.onCancel.bind(this)}
              className={`shadow p-4`}
              style={{
                overlay: {
                  position: 'fixed',
                  zIndex: 1020,
                  top: 0,
                  left: 0,
                  width: '100vw',
                  height: '100vh',
                  background: 'rgba(255, 255, 255, 0.75)',
                  display: 'flex',
                  alignItems: 'center',
                  justifyContent: 'center',
                },
                content: {
                  background: 'white',
                  width: '45rem',
                  maxWidth: 'calc(100vw - 2rem)',
                  maxHeight: 'calc(100vh - 2rem)',
                  overflowY: 'auto',
                  position: 'relative',
                  border: '1px solid #ccc',
                  borderRadius: '0.3rem',
                }}}
              appElement={document.getElementById('root') as HTMLElement}> ... </ReactModal>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49700574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档