Skip to main content

样式和资源

样式表

此项目设置使用 Webpack 处理所有资源。 和 Create React App 一致,Webpack 提供了一种自定义方式,可以将导入概念 “扩展” 到 JavaScript 之外。 要表明 JavaScript 文件依赖于某个 CSS 文件,你需要 JavaScript 文件中导入 CSS:

Button.css

.Button {
padding: 20px;
}

Button.js

import React, { Component } from 'react';
import './Button.css'; // 告诉 Webpack Button.js 使用这些样式

class Button extends Component {
render() {
// 你可以将它们用作常规 CSS 样式
return <div className="Button" />;
}
}

CSS modules

项目使用 [name].css?module 文件命名约定支持 CSS Modules 和常规 CSS

Sass 支持

模版默认支持 sass,支持自定义变量导入

@import 'styles/_colors.scss'; // 假设 styles 目录 在 src/ 目录下
@import '~nprogress/nprogress'; // 从 nprogress node模块导入 一个 css 文件

PostCSS 支持

内置 PostCSS Loader, 压缩你的 CSS 并通过 Autoprefixer 自动添加浏览器前缀,使用 PostCSS Preset Env 后处理 CSS

可以根据 Browserslist 规范 调整 package.json 中的 browserslist 来自定义目标支持浏览器。

例如:

.App {
display: flex;
flex-direction: row;
align-items: center;
}

将变成:

.App {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}

图片,字体和文件

使用 Webpack,添加图片和字体等静态资源的工作方式与 CSS 类似。

你可以 直接在 JavaScript 模块中 import 文件。

例如:

import React from 'react';
import logo from './logo.png'; // 告诉 Webpack 这个 JS 文件使用了这个图片

console.log(logo); // /logo.84287d09.png

function Header() {
// 导入结果是图片的 URL
return <img src={logo} alt="Logo" />;
}

export default Header;