Target specific class using Styled Components React.js(使用样式化组件React.js以特定类为目标)
                            本文介绍了使用样式化组件React.js以特定类为目标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我正在尝试向导航栏组件添加主题。该组件具有向下滚动时显示粘滞导航栏的功能。一旦窗口向下滚动,我就会把目标锁定在"粘性"类上。这对普通CSS有效,但是一旦我将其添加到样式组件并从CSS中删除它,它就不起作用了。
可能我没有正确瞄准className"Sticky"?
有什么建议吗??谢谢!
    export function Nav() {
      const [theme, setTheme] = useState("light");
      const [theTheme, setTheTheme] = useGlobal("onTheme");
      useEffect(() => {
        if (theTheme == false) setTheme("dark");
        else setTheme("light");
   
        window.addEventListener("scroll", function () {
        var header = document.querySelector("header");
        header.classList.toggle("sticky", window.scrollY > 0);
    });
  });
  return (
    <ThemeProvider theme={getTheme(theme)}>
      <Head>
        <Navbar>
          <NavLink></NavLink>
          <NavItem icon={<CaretIcon />}>
            <DropdownMenu />
          </NavItem>
        </Navbar>
      </Head>
    </ThemeProvider>
  );
}
我可以使用普通CSS将"Sticky"类作为目标。
    header.sticky {
      background-color: rgb(31, 31, 37);
    }
我正在尝试使用样式组件瞄准"粘滞"。
    export const Head = styled.header`
      position: fixed;
      width: 100%;
      background-color: transparent;
      top: 0rem;
      transition: 0.6s;
      z-index: 100000;
      text-decoration: none;
      & .sticky {
        background-color: ${(props) => props.theme.hoverColor};
       } 
     `;
推荐答案
看起来& .sticky之间有一个不必要的空格,结果是申请子而不是头本身。正确的答案应该是:
export const Head = styled.header`
  position: fixed;
  width: 100%;
  background-color: transparent;
  top: 0rem;
  transition: 0.6s;
  z-index: 100000;
  text-decoration: none;
  &.sticky {
     background-color: ${(props) => props.theme.hoverColor};
  } 
`;
                        这篇关于使用样式化组件React.js以特定类为目标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:使用样式化组件React.js以特定类为目标
				
        
 
            
        
             猜你喜欢
        
	     - 400或500级别的HTTP响应 2022-01-01
 - Flexslider 箭头未正确显示 2022-01-01
 - 失败的 Canvas 360 jquery 插件 2022-01-01
 - 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
 - CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
 - Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
 - Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
 - addEventListener 在 IE 11 中不起作用 2022-01-01
 - Fetch API 如何获取响应体? 2022-01-01
 - 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
 
						
						
						
						
						