我正在使用Material UI并尝试将普通的CSS类转换为js文件。
.nav {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
}
.navItem {
float: left;
flex: 1;
}
.navLink {
color: white;
text-decoration: none;
display: block;
font-size: '1 rem';
font-weight: 500;
line-height: 1.6;
letter-spacing: '0.0075em';
opacity: 1;
text-transform: 'none';
min-width: 0;
padding: 10px;
margin-left: 10px;
margin-right: 10px;
}
.navLink-static {
color: white;
text-decoration: none;
display: block;
font-size: '1rem';
font-weight: 500;
line-height: 1.6;
letter-spacing: '0.0075em';
opacity: 1;
text-transform: 'none';
padding: 10px;
margin-left: 10px;
margin-right: 10px;
}
.navLink:hover {
border-bottom: 2px solid mediumvioletred;
background: #8DB8DD;
cursor: pointer;
}
.navLink:hover > div:hover {
border-bottom: none;
}
.navLink.active {
font-weight: 600;
border-radius: 0;
border-color: transparent;
border-bottom: 3px solid orange;
padding-bottom: 10px;
}
<ul className={classes.nav}>
<li className={classes.navItem}>
<NavLink className={classes.navLink} to="/" exact>
abc
</NavLink>
</li>
<li className={classes.navItem}>
<NavLink className={classes.navLink} to="/def" exact>
def
</NavLink>
</li>
<li className={classes.navItem}>
<NavLink className={classes.navLink} to="/ghi">
ghi
</NavLink>
</li>
</ul>
如何在材料ui模式中转换这些CSS样式。我没有看到任何有关如何为元素设置“活动”状态和嵌套悬停样式的示例。与此类高级方案相关的更多文档会有所帮助。
这是我在转换这些内容方面走了多少。
const styles = theme => ({
nav: {
listStyleType: 'none',
margin: 0,
padding: 0,
overflow: 'hidden'
},
navItem: {
float: 'left',
flex: 1
},
navLink: {
color: 'white',
textDecoration: 'none',
display: 'block',
fontSize: '1rem',
fontWeight: 500,
lineHeight: 1.6,
letterSpacing: '0.0075em',
opacity: 1,
textTransform: 'none',
minWidth: 0,
padding: '10px',
marginLeft: '10px',
marginRight: '10px',
'&:hover': {
borderBottom: '2px solid mediumvioletred',
background: '#8DB8DD',
cursor: 'pointer',
// '& div': {
// '&:hover': {
// borderBottom: 'none',
// }
// },
'&> div &:hover': {
borderBottom: 'none',
}
},
// 'div:hover': {
// borderBottom: 'none',
// },
},
navLinkStatic: {
color: 'white',
textDecoration: 'none',
display: 'block',
fontSize: '1rem',
fontWeight: 500,
lineHeight: 1.6,
letterSpacing: '0.0075em',
opacity: 1,
textTransform: 'none',
padding: '10px',
marginLeft: '10px',
marginRight: '10px',
}
});
如何将其转换为材质样式 .navLink:hover > div:hover {
我尝试过的东西。
navLink: {
'&:hover': {
borderBottom: '2px solid mediumvioletred',
background: '#8DB8DD',
cursor: 'pointer',
// '& div': {
// '&:hover': {
// borderBottom: 'none',
// }
// },
// '&> div &:hover': {
// borderBottom: 'none',
// }
},
'&:hover > div:hover': {
borderBottom: 'none'
}
},
任何帮助表示赞赏。
正确的语法是"&:hover > div:hover": { ... }
。
这是一个演示语法的工作示例:
import React from "react";
import ReactDOM from "react-html" target="_blank">dom";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles({
navlink: {
border: "1px solid green",
fontSize: "16pt",
"&:hover": {
backgroundColor: "lightgreen"
},
"&:hover > div:hover": {
backgroundColor: "lightblue"
}
}
});
function App() {
const classes = useStyles();
return (
<div className="App">
<div className={classes.navlink}>
Hello <div>CodeSandbox</div>
</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
它还可以深深地嵌套以下语法:
const useStyles = makeStyles({
navlink: {
border: "1px solid green",
fontSize: "16pt",
"&:hover": {
backgroundColor: "lightgreen",
"& > div:hover": {
backgroundColor: "lightblue"
}
}
}
});
这是相关的JSS文档:https
://cssinjs.org/jss-plugin-nested/ ?v= v10.0.0-alpha.24
问题内容: 我想知道是否有可能用JS触发CSS HOVER效果,而不必使用其他类… 我尝试使用触发效果,但这不会触发CSS悬停效果。 PS:我做了一个功能,可以帮助用户使用在线CMS。帮助功能通过在图像上四处移动来显示操作方法,以显示操作方法。虚拟光标可以单击内容,显示元素等。但是我希望该虚拟光标也可以触发CSS中设置的:hover效果。 问题答案: 我知道您要做什么,但为什么不简单地这样做: 该
我非常喜欢React中的内联CSS模式,并决定使用它。 但是,不能使用和类似的选择器。那么,在使用内联CSS样式时,实现悬停高亮显示的最佳方法是什么? #reactjs的一个建议是使用一个可点击的
问题内容: 我有一个嵌套列表: 问题是,悬停“ foo”也会悬停“ fnord”及其所有元素。如何仅将鼠标悬停在上面悬停? 嵌套是可变的,理论上可以是无穷无尽的。 。 问题答案: 我相信使用CSS可以得到的最接近的结果是从悬浮元素的子元素中删除悬浮样式…这对父母没有帮助。 对于您发现的重复项,可接受的答案是用JavaScript做到这一点的最佳方式,方法是:使用CSS级联-hover效。不过,您将
问题内容: 我试图理解reactjs中的一些概念,但是我无法理解函数的嵌套。我创建了以下示例来调查我的担忧。 在下面的示例中,我呈现了一些内容,这些内容的价值来自一系列嵌套函数。但是,出现错误“未捕获的TypeError:无法读取未定义的属性’renderInnerContent’”。您能帮我了解发生了什么以及如何解决此问题吗?我的主要动机是了解如何将事物抽象为不同的功能。 问题答案: 未在该函数
问题内容: 我有两个不同的应用程序。在集成到单个应用程序期间,我不得不 嵌套ng-views。 对于示例(index.html)是 我的应用程序视图之一是(view2.html) 现在,此应用程序内部再次具有不同的视图。 我试过了,但是页面没有加载。有可能嵌套ng-views吗? 如果不可能,可以解释一下 提前致谢 问题答案: 更新的答案: UI路由器(现在位于此处:https : //angul
问题内容: 这应该是一个简单的问题,但是我似乎找不到解决方案。 我有以下标记: 我需要将背景色绑定到示波器,因此我尝试了以下操作: 那没有用,所以我做了一些研究发现,但是那没用,所以我尝试删除动态部分,只是像这样硬编码其中的样式… 甚至都不起作用。我误会如何工作吗?有没有一种方法可以放入普通样式属性并使其插入值? 问题答案: ngStyle 指令允许您动态设置HTML元素上的 CSS 样式。 表示