【发布时间】:2020-08-14 17:12:29
【问题描述】:
我有几个网页,我有这个:
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>React App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/superhero/bootstrap.min.css">
</head>
<body>
<div class="full-height">
<div id="app" class="full-height">Loading...</div>
</div>
</body>
<script
src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g="
crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</html>
如果我用这个
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/superhero/bootstrap.min.css">
在 index.html 中,我的整个应用中的样式都会受到影响,但我想在单个组件中使用它们。
我试图通过删除这 2 行并创建 聊天.scss
#chat{
@import url("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css");
@import url("https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/superhero/bootstrap.min.css");
}
//other import statements
import "../../styles/chat.scss"
然后我将聊天组件的 id 设置为“聊天”并应用 scss
export default class Chat extends React.Component {
render() {
return (
<div id="chat">
<div className="full-height">
<div className="row">
<Nav/>
</div>
<div className="row full-height">
<div className="col-md-3 full-height">
<UserProfile/>
<OnlineUsers/>
</div>
<div className="col-md-9 full-height">
<div className="full-height">
<Messages/>
<MessageInput/>
</div>
</div>
</div>
</div>
</div>
);
}
}
这种方法与在 index.html 中导入样式表具有相同的输出。它会影响所有页面。
我的问题是我怎样才能只为我的聊天组件应用这些样式表。
【问题讨论】:
-
您所采取的方法并不像您注意到的那样有效。我建议使用他们的工具自定义引导包:getbootstrap.com/docs/3.4/customize。这样,您可以只使用网格系统(如果这是您正在寻找的)。此外,它将减少捆绑。只为一个组件和一个功能加载整个引导程序是非常可耻的。
标签: html reactjs sass stylesheet