带样式的组件下划线悬停

Styled Component underline hover

您如何将这种伪效果转化为样式化组件。例如,完全相同的下划线,但在 JS 效果中都存储在一个 const CSS 中。

我想构建以下内容,但不确定如何将其写入样式化的组件

a::after {
    content: "";
    display: block;
    margin-top: 10px;
    margin-left: auto;
    margin-right: auto;
    height: 2px;
    width: 0px;
    background-color: tomato;
}

我在 https://codesandbox.io/s/ecstatic-leaf-oj1my?file=/src/App.js

创建了一个 codesandbox

下面给出的是完整性代码。我添加了一个悬停,这样您就可以轻松地看到正在应用的样式。尝试更改伪元素的高度,看看是否也应用了伪元素的样式。

import "./styles.css";
import styled from "styled-components";
const StyledAchor = styled.a`
  color: blue;

  &:hover {
    color: white;
  }
  &::after {
    content: "";
    display: block;
    margin-top: 10px;
    margin-left: auto;
    margin-right: auto;
    /* try changing the height to see the after pseudo element is being applied   */
    height: 20px;
    width: 0px;
    background-color: tomato;
  }
`;
export default function App() {
  return (
    <div className="App">
      <StyledAchor href="/">styled anchor tag</StyledAchor>
      <h1>Hello CodeSandbox</h1>
      <h2>Start editing to see some magic happen!</h2>
    </div>
  );
}