跳到内容
+

CSS 基线

CssBaseline 组件帮助启动一个优雅、一致且简单的基线,以便在其上构建。

全局重置

您可能熟悉 normalize.css,它是 HTML 元素和属性样式规范化的集合。

import * as React from 'react';
import CssBaseline from '@mui/material/CssBaseline';

export default function MyApp() {
  return (
    <React.Fragment>
      <CssBaseline />
      {/* The rest of your application */}
    </React.Fragment>
  );
}

作用域限定于子元素

但是,您可能正在逐步将网站迁移到 Material UI,使用全局重置可能不是一个选项。 可以通过使用 ScopedCssBaseline 组件将基线仅应用于子元素。

import * as React from 'react';
import ScopedCssBaseline from '@mui/material/ScopedCssBaseline';
import MyApp from './MyApp';

export default function MyApp() {
  return (
    <ScopedCssBaseline>
      {/* The rest of your application */}
      <MyApp />
    </ScopedCssBaseline>
  );
}

⚠️ 确保首先导入 ScopedCssBaseline,以避免像上面示例中那样的 box-sizing 冲突。

方法

页面

<html><body> 元素已更新,以提供更好的页面范围默认值。 更具体地说

  • 移除了所有浏览器中的外边距。
  • 应用了默认的 Material Design 背景颜色。 它对标准设备使用 theme.palette.background.default,对打印设备使用白色背景。
  • 如果为 CssBaseline 提供了 enableColorScheme,则将通过在 <html> 上应用 color-scheme 来设置原生组件颜色。 使用的值由主题属性 theme.palette.mode 提供。

布局

  • box-sizing<html> 元素上全局设置为 border-box。 每个元素(包括 *::before*::after)都被声明为继承此属性,这确保了元素的声明宽度永远不会因内边距或边框而超出。

滚动条

可以自定义滚动条的颜色以提高对比度(尤其是在 Windows 上)。 将此代码添加到您的主题中(用于暗黑模式)。

import darkScrollbar from '@mui/material/darkScrollbar';

const theme = createTheme({
  components: {
    MuiCssBaseline: {
      styleOverrides: (themeParam) => ({
        body: themeParam.palette.mode === 'dark' ? darkScrollbar() : null,
      }),
    },
  },
});

但是请注意,使用此实用程序(并自定义 -webkit-scrollbar)会强制 macOS 始终显示滚动条。

颜色方案

此 API 在 @mui/material (v5.1.0) 中引入,用于在使用 color-scheme CSS 属性的原生组件(例如滚动条)的浅色和深色模式之间切换。 要启用它,您可以按如下所示设置 enableColorScheme=true

<CssBaseline enableColorScheme />

// or

<ScopedCssBaseline enableColorScheme >
  {/* The rest of your application using color-scheme*/}
</ScopedCssBaseline>

排版

  • <html> 上未声明基本字体大小,但假定为 16px(浏览器默认值)。 您可以在主题文档页面中了解有关更改 <html> 默认字体大小的更多信息。
  • <body> 元素上设置 theme.typography.body1 样式。
  • <b><strong> 元素的字体粗细设置为 theme.typography.fontWeightBold
  • 启用了自定义字体平滑,以更好地显示 Roboto 字体。

自定义

前往文档的全局自定义部分以更改这些组件的输出。

API

请参阅下面的文档,以获取此处提及的组件可用的所有 props 和类的完整参考。