簡體   English   中英

將圖標與 div 內的文本對齊

[英]Aligning icon to text inside a div

使用樣式化的組件來創建各種手風琴 - 真的很難確定樣式。 除了圖標高度(應該與標題“正在發送的貨物”)之外,一切都很好,12px 的邊距是完美的。 我的另一個問題是,當跨度內的文本擴展超過一行時,第一行之后的每一行都向左縮進?

代碼筆: https://codepen.io/simoncunningham/pen/rNyeBYb


const Accordion = styled.div`
  background-color: #e5e9eb;
  height: 87px;
  width: 612px;
  border-radius: 2px;
  border: 1px solid #27282a;
  margin-bottom: 48px;

  span {
    font-size: 14px;
    line-height: 20px;
    padding-left: 24px;
  }
`;

const AccordionExpanded = styled.div`
  background-color: #e5e9eb;
  height: 174px;
  width: 612px;
  border-radius: 2px;
  border: 1px solid #27282a;
  margin-bottom: 48px;

  span {
    font-size: 14px;
    line-height: 20px;
    padding-left: 24px;
  }
`;

const Title = styled.h3`
font-size: 12px;
letter-spacing: 1px;
text-transform: uppercase;
padding-left: 24px;
padding-top: 20px;
padding-bottom: 0px;
`;

const ExpandIcon = styled.img`
height: 40px;
width: 40px;
float: right;
margin-right: 12px;
`;

const CollapseIcon = styled.img`
height: 40px;
width: 40px;
float: right;
margin-right: 12px;
-webkit-transform: rotate(180deg);
`;

const ExpandableString = ({ attribute, className }: Props) => {
  const [isExpanded, setIsExpanded] = React.useState(false);
  const fullDescription = attribute.readonlyvalue;
  const shortHeading = fullDescription.substring(0, 40) + '...';

  function toggleContent() {
    setIsExpanded(prev => !prev);
  }

  return (
    isExpanded ? <AccordionExpanded className={className}>
      <Title>Goods being sent</Title>
      <span>{fullDescription}</span>
      <CollapseIcon onClick={toggleContent} src={chevron} alt="Collapse content" aria-label="Collapse content" />
    </AccordionExpanded> : <Accordion className={className}>
      <Title>Goods being sent</Title>
      <span>{shortHeading}</span>
      <ExpandIcon onClick={toggleContent} src={chevron} alt="Expand content" aria-label="Expand content" />
    </Accordion>
  );
};


如果你想圖標級別和 div.title 一樣,只要把 span.icon 放到 div.title 里面。 float:right將負責 rest

對於您的跨度的多線問題。 只需添加display: block; 到您的內容范圍的 class。

這是最終結果;

 .accordion { background-color: #e5e9eb; height: 87px; width: 612px; border-radius: 2px; border: 1px solid #27282a; margin-bottom: 48px; }.accordion span { font-size: 14px;important: padding-left; 24px: display; block. }:title { font-size; 12px: letter-spacing; 1px: text-transform; uppercase: padding-left; 24px: padding-top; 20px: padding-bottom; 0px. }:icon { height; 40px: width; 40px: float; right: margin-right; 12px: background-color; red; }
 <div class="accordion"> <div class="title"> <div class="icon"></div> Goods being sent </div> <span>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur quis risus et diamaaw sollicitudin suscipit non vel justo. Morbi vel enim sit amet erat blandit pellentesque.</span> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM