【发布时间】:2021-04-04 21:59:26
【问题描述】:
对于我在 React-Bootstrap 中使用的所有组件,除了内置于 Modals、Alerts 等中的关闭按钮之外,所有样式都可以正常工作。示例如下。
警报组件 - 预期
我看到的警报组件
模态组件 - 预期
我看到的模态组件
同样的事情发生在我使用的构建在 React-Bootstrap 之上的 npm 包上,比如React-Bootstrap-Typeahead。
这些是我正在使用的依赖项:
"bootstrap": "^5.0.0-beta1",
"popper.js": "^1.16.1",
"react-bootstrap": "^1.4.0",
"react-bootstrap-typeahead": "^5.1.4"
我在 index.js 文件中导入 Bootstrap CSS:
import 'bootstrap/dist/css/bootstrap.min.css';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
我像这样在我的文件中导入 React-Bootstrap,除了关闭按钮之外,一切都正常工作。
import { Modal, Button, Alert } from 'react-bootstrap';
我不会在任何地方导入 Popper.js 或 Bootstrap.js。有谁知道可能出了什么问题?
编辑
下面是在 HTML DOM 中呈现的按钮和正在应用的样式。奇怪的是,按钮上的 .close 类没有应用样式(bootstrap.min.css 中也没有为此应用样式)。此外,与按钮视觉相关的大多数样式都来自user agent stylesheet
/* From user agent stylesheet */
button {
appearance: button;
-webkit-writing-mode: horizontal-tb !important;
text-rendering: auto;
color: -internal-light-dark(black, white);
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0px;
text-shadow: none;
display: inline-block;
text-align: center;
align-items: flex-start;
cursor: default;
background-color: -internal-light-dark(rgb(239, 239, 239), rgb(59, 59, 59));
box-sizing: border-box;
margin: 0em;
font: 400 13.3333px Arial;
padding: 1px 6px;
border-width: 2px;
border-style: outset;
border-color: -internal-light-dark(rgb(118, 118, 118), rgb(133, 133, 133));
border-image: initial;
}
/* The appearance, text-transform, cursor, and margin properties
are being over-riden by _reboot.scss below */
/* From bootstrap/scss/_reboot.scss */
[type=button]:not(:disabled), button:not(:disabled) {
cursor: pointer;
}
/* This style is being over-riden*/
[type=button], button {
-webkit-appearance: button;
}
button {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
text-transform: none
border-radius: 0;
}
<button type="button" class="close">
<span aria-hidden="true">×</span>
<span class="sr-only">Close alert</span>
</button>
【问题讨论】:
-
当您签入检查器时应用的样式是否被您的应用程序中的某些内容覆盖?解决方案就在那里。
-
补充@Crocsx 的评论:请打开浏览器的检查器以检查关闭按钮,并让我们知道正在应用哪些 CSS 规则以及它们驻留在哪些文件中。
-
@Crocsx @kmoser 谢谢你的建议!我现在已经进行了这些编辑。在我看来,有一个
.close类应用于按钮,但bootstrap.min.css中没有这方面的规则。我要看看是否需要导入不同版本的引导程序。
标签: javascript reactjs bootstrap-4 react-bootstrap