首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使所有的孩子在一个flexBox中都有相同的高度

使所有的孩子在一个flexBox中都有相同的高度
EN

Stack Overflow用户
提问于 2020-07-20 23:37:10
回答 2查看 292关注 0票数 0

我有一个flexBox,它有两个孩子。1孩子只是一个图标,它似乎不像另一个孩子那样高。请告诉我如何解决这个问题。

游乐场网址:URL

代码语言:javascript
复制
import React from "react";
import "./styles.scss";
import styled from "styled-components/macro";
import { Button, Card, Colors, Icon } from "@blueprintjs/core";
import { IconNames } from "@blueprintjs/icons";
import { Box, Flex } from "@rebass/grid";
import cx from "classnames";

const CustomIcon = styled(Button)`
  transition: all 0.2s ease;
}
`;

function App() {
  return (
    <Flex>
      <Box width={"90%"}>
        <Card
          interactive={true}
          className={cx({ selected: true, muted: true })}
        >
          <Flex alignItems="center">
            <Box mr={2} css={{ minWidth: 0 }}>
              Sample
            </Box>
            <Box flex="auto" />
            <Box flex="none">
              <CustomIcon
                className="utility-button"
                icon={<Icon icon={IconNames.EDIT} />}
                minimal={true}
                title="Edit scenario"
              />
              <CustomIcon
                className="utility-button"
                icon={<Icon icon={IconNames.DUPLICATE} />}
                minimal={true}
                title="Copy scenario"
              />
              <CustomIcon
                className="utility-button"
                icon={<Icon icon={IconNames.DOCUMENT_SHARE} />}
                minimal={true}
                title={"Transfer"}
              />
              <CustomIcon
                className="utility-button"
                icon={<Icon icon={IconNames.TRASH} color={Colors.RED1} />}
                minimal={true}
                title="Delete scenario"
              />
            </Box>
          </Flex>
        </Card>
      </Box>
      <Box width={"10%"}>
        <Card>
          <Icon icon={IconNames.CHEVRON_RIGHT} />
        </Card>
      </Box>
    </Flex>
  );
}

export default styled(App)`
  &.selected {
    box-shadow: inset 0 1px 0 #137cbd, inset 0 -1px 0 #137cbd,
      inset 1px 0 0 #137cbd;
  }
  &.muted {
    opacity: 0.5;
    .utility-button {
      pointer-events: none;
    }
  }
  &:not(:hover):not(.selected) {
    .utility-button {
      opacity: 0;
      pointer-events: none;
    }
  }
`;

这是我的结果:

我希望第二个孩子和第一个孩子一样高。请指点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-21 00:49:51

  1. 首先,你的图标应该是相同的大小,
  2. 设置图标包装层的宽度和高度,
  3. 重置图标的line-height
代码语言:javascript
复制
.utility-button{
  flex: none;
  width: 44px;
  height: 44px;
  line-height: 44px;
  text-align: center;
}

.utility-button .icon {
  font-size: 1em;
}
票数 1
EN

Stack Overflow用户

发布于 2020-07-21 00:39:00

您应该能够显式地设置CSS中元素的高度。sampleDiv { height: 20px )。另外,左侧元素上的填充可能大于右侧,从而使其显示大小更大。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63005277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档