当前位置: 首页 > 面试题库 >

Material-UI中的高级样式

殷功
2023-03-14
问题内容

我开始研究material-ui,并在SandBox中创建一个简单的应用程序:https ://codesandbox.io/s/eager-ride-cmkrc

jss的样式对我来说并不常见,但是如果您通过这两个简单的练习帮助我,那么我将理解所有内容。

首先:我希望将ButtonLeft和的通用属性ButtonRight合并到新类中并进行扩展:(https://github.com/cssinjs/jss-
extend#use-rule-name-from-the-current-styles-
object

ButtonControll: {
    display: "none",
    position: "absolute",
    fontSize: "24px"
},
ButtonLeft: {
    extend: 'ButtonControll',
    left: "0",
},
ButtonRight: {
    extend: 'ButtonControll',
    right: "0",
}

但这是行不通的=(

第二:当您将鼠标悬停在容器上时,我希望箭头出现,所以我这样写:

"&:hover .MuiIconButton-root": {
    display: "block"
}

问题:MuiIconButton-root它是所有IconButton的基类名吗?但我想要这样的东西:

"&:hover ButtonLeft": {
    display: "block",
    backgroundColor: 'red' 
},
"&:hover ButtonRight": {
    display: "block",
    fontSize: '50px' 
}

请帮我完成这两个简单的任务,然后我将理解一切=)


问题答案:

jss-plugin-extend 默认情况下,不包含在Material-UI中。

您可以在此处找到包含的JSS插件的列表:https : //material-ui.com/styles/advanced/#jss-plugins。

您可以按照说明添加其他插件,但是也可以通过其他方式达到相同的效果。

您可以将通用属性放在对象中:

const commonButton = {
  display: "none",
  position: "absolute",
  fontSize: "24px"
};
export default props => ({
  ButtonLeft: {
    ...commonButton,
    left: "0",
  },
  ButtonRight: {
    ...commonButton,
    right: "0",
  }
});

或者由于您有一个root规则,即按钮在结构上位于其中,因此您可以通过以下嵌套规则来应用所有常见样式root

export default props => ({
  root: {
    width: "250px",
    height: "182px",
    alignItems: "center",
    justifyContent: "space-between",
    border: "1px solid black",
    position: "relative",
    "& $ButtonLeft, & $ButtonRight": {
      display: "none",
      position: "absolute",
      fontSize: "24px"
    },
    "&:hover $ButtonLeft, &:hover $ButtonRight": {
      display: "block"
    }
  },
  ButtonLeft: { left: "0" },
  ButtonRight: { right: "0" }
});

上述杠杆的例子jss-plugin-nested,其 默认包含在材料的UI。这也显示了hover引用的适当语法。



 类似资料:
  • 问题内容: 我想更改SelectInput的样式。我正在使用基于类的组件。我是这样设置的: 然后在渲染中,我在“选择”部分中有此部分: 我正在使用仅带有下划线的基本Select组件。我想更改下划线的颜色和大小。我在源代码中看过这里: https://github.com/mui-org/material-ui/blob/master/packages/material- ui/src/Select

  • 我使用material-ui中的TableRow组件实现了一个表,它有一个名为“Selected”的属性。只要“selected”为true,就会为其应用一个粉红色的背景色(来自默认主题)。我试图更改这个默认的粉色,根据文档,我选择覆盖css类,比如: 但这并没有奏效,这很让人困惑。因为我已经成功地在其他地方用上面相同的方法对抽屉组件执行了相同的操作。 我用Chrome开发工具调试了每个css属性

  • Material UI 是一套实现了 Google 的 Material Design 全新设计语言的 CSS 框架。Material UI 提供了 npm 包的形式,使用示例: /** * @jsx React.DOM*/var React = require('react'),  mui = require('material-ui'),  PaperButton = mui.PaperBut

  • MUI Quickly build beautiful React apps. MUI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start w

  • 问题内容: 我使用的示例中的一个,我只是改变了它从一个函数的一类组件,在那之后我看着怎么用,我做同样的事情,但无论我做什么的变化,以及什么样的我做没有应用样式。 的回报: 但这些样式均不适用于实际商品或。我究竟做错了什么? 问题答案: 您不应该尝试与一起使用。返回一个自定义钩子,并且将此自定义钩子传递到该钩子将无法正常工作。 而是,您需要以下内容:

  • 是否有任何方法可以重写'@devexpress/dx-react-grid-material-ui'库中的TableSummaryRow的样式? 我所拥有的:一个组件,它呈现表(使用'@devexpress/dx-react-grid-material-ui'库),并在最后一行输出表中的总行数。 我需要做的:样式表单元格,其中TableSummaryRow呈现结果。 我已经试过这个解决办法了,但它