【发布时间】:2019-06-09 14:34:55
【问题描述】:
我只有两个 SCSS 文件。一个叫app.scss,另一个叫app-rtl.scss。
它们之间的区别在于一个具有从右到左处理的 SCSS 文件(导入 rtl 文件)。我要解决的是,一旦dir 是 rtl,那么我想使用另一个文件 (app-rtl.scss)。
我在后端使用 Node(主要是 API),在前端使用 React。
如果有人对我能做什么提出建议,我将不胜感激。
更新
只是为了澄清一些事情。我使用了 create-react-app 包然后弹出来添加 SCSS。这就是我目前获取样式表的方式(一个样式表)
index.js
import '../scss/app.scss'; // this where I'm getting all the styles.
这就是那个文件的样子。
app.scss
// Override default value for $dir in directional
$dir: ltr;
// Import helpers from directional
@import "base/directional";
@import "base/variables";
// Import helpers from bootestrap
@import "bootstrap/functions";
@import "bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/root";
@import "bootstrap/reboot";
@import "bootstrap/type";
@import "bootstrap/images";
//@import "bootstrap/code";
@import "bootstrap/grid";
//@import "bootstrap/tables";
@import "bootstrap/forms";
//@import "bootstrap/buttons";
@import "bootstrap/transitions";
@import "bootstrap/dropdown";
@import "bootstrap/button-group";
@import "bootstrap/input-group";
@import "bootstrap/custom-forms";
@import "bootstrap/nav";
@import "bootstrap/navbar";
@import "bootstrap/card";
.
.
.
app-rtl.scss 有一堆从右到左的 scss 文件。
如果我想使用 Webpack,如何将其编译为两个 CSS 文件,然后应用答案中为我建议的内容?如果从 Node 处理这个,我也使用这种方法。
P.S:我对 Webpack 不太熟悉,但我认为这是完成这项工作的方法:
{
test: /\.scss$/,
loaders: [
require.resolve('style-loader'),
require.resolve('css-loader'),
require.resolve('fast-sass-loader')
]
},
{
test: /\.css$/,
loaders: [
require.resolve('style-loader'),
require.resolve('css-loader'),
]
},
【问题讨论】:
-
@isherwood 感谢您的快速回复,这几乎是文本方向。例如,默认情况下,它是从左到右 (ltr)。如果是 rtl,那么 HTML 中的所有内容都将从右到左呈现。 w3schools.com/tags/att_global_dir.asp
-
这通常通过一个不同的指标来完成,比如一个 url 参数而不是一个 DOM 属性。我认为它更容易实现(在服务器端和客户端)
-
我明白什么是文本方向。我不清楚您要检查什么以确定 RTL 状态。考试内容是什么?