首页  >  文章  >  web前端  >  React 基础知识~样式组件/ _ js 中的 css_

React 基础知识~样式组件/ _ js 中的 css_

Barbara Streisand
Barbara Streisand原创
2024-10-09 22:47:28296浏览
  • 如果我们想在 javascript 文件中将样式编写为 css 样式,我们可以使用样式组件。

  • 我们需要使用类似 npm i styled-components 的命令来安装样式组件。

・src/Example.js

iimport { useState } from "react";
import styled from "styled-components";

const StyledButton = styled.button`
  margin: auto;
  border-radius: 9999px;
  border: none;
  display: block;
  width: 120px;
  height: 60px;
  font-weight: bold;
  cursor: pointer;
  background: ${({ isSelected }) => (isSelected ? "pink" : "")};

  @media (max-width: 600px) {
    border-radius: 0;
  }
`;

const OrangeButton = styled(StyledButton)`
  background: orange;

  :hover {
    color: red;
    opacity: 0.7;
  }

  span {
    font-size: 2em;
  }
`;

const Example = () => {
  const [isSelected, setIsSelected] = useState(false);

  const clickHandler = () => setIsSelected((prev) => !prev);

  return (
    <>
      <StyledButton isSelected={isSelected} onClick={clickHandler}>
        StyledButton
      </StyledButton>

      <OrangeButton isSelected={isSelected} onClick={clickHandler}>
        <span>OrangeButton</span>
      </OrangeButton>

      <div style={{ textAlign: "center" }}>{isSelected && "Clicked!"}</div>
    </>
  );
};

export default Example;

  1. 我们需要将样式化组件设置为 styled.element。
    这是一个例子。
    const StyledButton = styled.button
    //样式
    ;.

  2. 我们可以像这样将 prop 传递给样式组件。
    来自:
    至:背景:${({ isSelected }) => (isSelected ? "pink" : "")};

  3. 我们可以在样式组件中设置媒体查询,如下所示
    @media(最大宽度:600px){
    边框半径:0;
    }

  4. 我们可以像这样在样式组件中实现其他样式。
    const OrangeButton = styled(StyledButton)

  5. 我们可以像这样在样式组件中设置伪元素。
    :悬停{
    颜色:红色;
    不透明度:0.7;
    }

・cliekd 之前的普通按钮(灰色按钮)。
React Basics~styling component/ css_ in _ js

・cliekd 之后的普通按钮(粉红色按钮)。
React Basics~styling component/ css_ in _ js

・cliekd 之前的橙色按钮。
React Basics~styling component/ css_ in _ js

・cliekd 之后的橙色按钮。
React Basics~styling component/ css_ in _ js

以上是React 基础知识~样式组件/ _ js 中的 css_的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn