【发布时间】:2021-11-01 07:06:55
【问题描述】:
到目前为止,我对 Modal 感到非常满意,只是下拉菜单不是我想要的。我希望它更靠右,就在“x”按钮的左侧。这是我到目前为止的代码:
<Modal isOpen={modal} toggle={toggleModal} className="modal-lg modal-dialog-scrollable" returnFocusAfterClose={false}>
<ModalHeader toggle={toggleModal}>
<span className="align-middle mr-auto">Modal Title</span>
<ButtonDropdown isOpen={dropdownOpen} toggle={toggleDropdown}>
<DropdownToggle caret color="info" className="btn-sm">
Dropdown
</DropdownToggle>
<DropdownMenu>
<DropdownItem header>Header</DropdownItem>
<DropdownItem disabled>Action</DropdownItem>
<DropdownItem>Another Action</DropdownItem>
<DropdownItem divider />
<DropdownItem>Another Action</DropdownItem>
</DropdownMenu>
</ButtonDropdown>
</ModalHeader>
<ModalBody>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</ModalBody>
</Modal>
我尝试在ModalHeader 和ml-auto 上的ml-auto 内的内容周围使用带有flex-row div 的引导类,但这对我不起作用。
更新 1
经过一段时间的研究,我仍然无法弄清楚如何解决这个问题。我确实知道 reactstrap 源代码将所有内容都包装在 modal-title div 中,然后再将 modal-header 包装在其中(我通过查看 ModalHeader.js 发现了这一点)。为了进一步研究,我用 reactstrap 写了一个基本示例:
<Modal isOpen={modal} toggle={toggleModal}>
<ModalHeader>
<div className="d-flex flex-row">
<h5 className="mr-auto">Test 1</h5>
<h5>Test 2</h5>
</div>
</ModalHeader>
<ModalBody>
Lorem ipsum .
</ModalBody>
</Modal>
这会呈现为以下 html 和 css:
<div class="modal-header">
<h5 class="modal-title">
<div class="d-flex flex-row">
<h5 class="mr-auto">Test 1</h5>
<h5>Test 2</h5>
</div>
</h5>
</div>
.modal-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
padding: 1rem 1rem;
border-bottom: 1px solid #dee2e6;
border-top-left-radius: calc(.3rem - 1px);
border-top-right-radius: calc(.3rem - 1px);
}
.modal-title {
margin-bottom: 0;
line-height: 1.5;
}
但这仍然不起作用:“测试 1”和“测试 2”彼此相邻,而不是左侧的 1 和右侧的 2。我知道如果我删除模态标题display:flex,它看起来就像是固定的,但我不确定为什么。我认为modal-title 不是问题。
【问题讨论】:
标签: html css flexbox reactstrap