如何使 Appbar 内容在较大的显示器上不会延伸到两侧

IT技术 reactjs material-ui appbar
2021-05-25 08:47:01

我想将我的Appbar内容居中,这样在较大的显示器上它就不会扩散到屏幕的两侧。关于它的外观与我希望它看起来如何的图像

问题是在较小的屏幕上,Appbar页面内容和页面内容都适合屏幕,但在较大的显示器上,Appbar内容继续传播,而页面内容保持居中。因此,我希望Appbar在其内容与页面内容位于同一位置时保持全角 - 正如您在第二个屏幕中看到的那样。

我的页面代码:

<Box sx={{ display: "flex" }}>
  <CssBaseline />
  <AppBar
    position="fixed"
    sx={{
      marginTop: "10px",
      width: `100%`,
    }}
  >
    <Toolbar>
      <IconButton
        color="inherit"
        aria-label="open drawer"
        edge="start"
        sx={{ mr: 2, display: { sm: "none" } }}
      >
        <MenuIcon />
      </IconButton>
      <Box
        sx={{
          borderBottom: 1,
          borderColor: "divider",
          mr: 2,
          display: { xs: "none", sm: "block", md: "block" },
        }}
      >
        <Tabs
          aria-label="basic tabs example"
          TabIndicatorProps={{
            style: {
              background: "#ffffff",
            },
          }}
        >
         // MY TABS 
        </Tabs>
      </Box>
      <div className={classes.alignRight}>
        <IconButton
          color="inherit"
          aria-label="open drawer"
          edge="right"
        >
          <LogoutRoundedIcon />
        </IconButton>
      </div>
    </Toolbar>
  </AppBar>
  <Box
    component="nav"
    sx={{ width: { sm: 0 }, flexShrink: { sm: 0 } }}
    aria-label="mailbox folders"
  >
  </Box>
  {/* Page content */}
  <Box
    component="main"
    sx={{
      flexGrow: 1,
      p: 3,
    }}
  >
    // MY CONTENT
  </Box>
</Box>

更改Appbar位置标签以position="static"将其更改为所需的宽度,但我只想要该宽度的内容。

2个回答
<AppBar position="static">
  <Toolbar
    sx={{
      width: "100%",
      maxWidth: 600,
      mx: "auto"
    }}
  >
  • 设置 amaxWidth来限制大屏幕的宽度
  • 设置width100%在上述maxWidth限制内扩展内容宽度
  • margin左右设置auto为将Toolbar自身居中Appbar

现场演示

代码沙盒演示

width您的Appbar设置为100% -这意味着它都会占据其弯曲的父元素的空间Box,你需要给它一个固定的宽度或设置一个最高限额它多少可以伸展。

以下是一些可以解决您的问题的建议:

  • Appbar为每个 Media 查询提供固定宽度,以便它不会根据您的屏幕尺寸而扩展。

  • Appbar动态宽度与偏移量相结合,例如width=calc(75vw + 2rem),请注意75vw可以替换为 75%,因为父组件占据了宽度视图的 100%。

  • 使用justifyContent : "space-around"您的Box父组件,以达到预期的效果。

编辑:NearHuscarl的解决方案似乎更好。