在情感css中悬停时访问其他className

unguejic  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(125)

我使用EmotionCSS。我想访问另一个className,同时捕获另一个className的焦点。例如,我有一个组件,如下所示:

<div className={styles.root}>
  <input className={styles.input} ... />
<div/>

样式文件如下所示:

import { css } from '@emotion/css';

export const styles = {
  root: css`
    border: 1px solid black;
  `

  input: css`
    ... 

    &:focus {
      // Here I want to access 'root' className and change its colour. Is it possible?
    }

  `,
}
afdcj2ne

afdcj2ne1#

您可以在root上使用:has()伪类来更改input类中的焦点样式。

import { css } from "@emotion/css";

export const styles = {
  root: css`
    border: 3px solid black;
    &:has(input:focus) {
      border-color: red;
    }
  `,
  input: css`
    font-size: 1.5rem;
    &:focus {
      text-transform: uppercase;
    }
  `
};

export default function App() {
  return (
    <div className="App">
      <div className={styles.root}>
        <input type="text" className={styles.input} />
      </div>
    </div>
  );
}

相关问题