在 React 中使用样式组件在图标旁边显示文本

Posted

技术标签:

【中文标题】在 React 中使用样式组件在图标旁边显示文本【英文标题】:Displaying text next to an icon using styled components in React 【发布时间】:2021-07-26 22:25:32 【问题描述】:

React 新手并使用样式化组件,但我正在构建一个标题组件,它基本上有两个黑条 - 顶部栏 (StyledApplicationBanner) 包含徽标,然后 (StyledBackBar) 包含返回箭头(SVG)-我当前的代码在定位方面具有我想要的一切,但我不确定如何使我的 <p>``back</p> 文本与箭头对齐?任何人都可以提出实现这一目标的起点吗?

import styled from "styled-components";
import icon from "./myicons-icon-light.png";
import arrow from "./arrow-left.svg";

const StyledApplicationBanner = styled.header`
  background: black;
  height: 64px;
  width: 100%;
  border-bottom: 1px solid rgb(151, 153, 155);
`;

const StyledBackBar = styled.div`
background: black;  
height: 48px;
width: 100%;
color: white;

p 
  color: white;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 1px;
  line-height: 16px;
  text-transform: uppercase;

`;

const Icon = styled.img`
  height: 22px;
  width: 116px;
  margin-top: 21px;
  margin-left: 96px;
`;

const Arrow = styled.img`
  height: 32px;
  width: 32px;
  margin-top: 8px;
  margin-left: 88px;
`
  return (

      <StyledApplicationBanner>
        <Icon src=icon  />
      </StyledApplicationBanner>
      <StyledBackBar>
        <Arrow src=arrow  />
        <p>Back</p>
      </StyledBackBar>

  );
;



export default ApplicationHeader;

【问题讨论】:

您是否尝试过将 display: flex; 添加到 StyledBackBar 中,理论上这会使这两个项目进入一行 【参考方案1】:

display: flexalign-items: center 一起使用:

const StyledBackArrow = styled.div`
  display: flex;
  flex-direction: row;
  align-items: center;
`;

...
<StyledBackArrow>
  <img />
  <span>Back</span>
</StyledBackArrow>
...

div 
  display: flex;
  flex-direction: row;
  align-items: center;


img 
  margin-right: 10px;
<div>
  <img src="https://www.flaticon.com/svg/vstatic/svg/271/271218.svg?token=exp=1620141549~hmac=67502fda00fa10153b12a47f64e7ed81"  />
  <span>Back</span>
</div>

【讨论】:

以上是关于在 React 中使用样式组件在图标旁边显示文本的主要内容,如果未能解决你的问题,请参考以下文章

React 测试库未在快照中显示输入 onChange 道具

如何使用 React 组件在 UI 中显示 svg 图标(.svg 文件)?

使用 Vuetify 在文本字段标签旁边显示工具提示图标

使用 Themeprovider 和样式化组件实现暗模式

React+Webpack项目中使用Iconfont字体图标

React Native知识7-TabBarIOS组件