【问题标题】:How to bring a Text vertically center using Flex CSS for bar chart如何使用 Flex CSS 将文本垂直居中用于条形图
【发布时间】:2019-05-07 18:58:11
【问题描述】:

我试图将数量文本显示为垂直水平,就像 Mozilla 开发人员页面显示的浏览器支持但使用 flex CSS 例如。 https://developer.mozilla.org/en-US/docs/Web/CSS/transform(查看页面底部)

我已经尝试了 flex CSS 几乎我已经实现了,但是文本被破坏并且它不是中心和底端对齐。

CSS

ul.chart-bg {
    width: 100%;
    height: 100%;
    border-bottom: 1px solid #ccc;
    padding: 0;
    display: flex;
    justify-content: space-between;
}

.container {
    flex: 1 1 auto;
    list-style: none;
    margin-left: 15px;
    display: flex;
    align-items: flex-end;
}

ul li.container:nth-child(1) {
    margin: 0 !important;
}

.skills {
    flex: 1 1 auto;
    padding: 0;
    width: 100%;
    animation: draw 1s ease-in-out;
    background-color: #e9e9e9;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    display: flex;
    align-items: flex-end;
}

.amount {
    flex: 1 1 auto;
    color: #9c9c9c;
    font-family: "sans-serif";
    transform-origin: 0 0;
    transform: rotate(-90deg);
    animation: amountVal 2s ease-in-out;
}

尝试使用条形图的 flex 将数量文本垂直对齐,但它打破了

小提琴:https://jsfiddle.net/snx5mqj8/1/

【问题讨论】:

    标签: css flexbox


    【解决方案1】:

    我更改了一些 CSS 属性以执行文本中心

    我删除了amount 类中的transform-origin 属性,并在skill 类中将align-items: flex-end; 替换为center,并添加white-space CSS 属性以在一行中查看数量和文本

    这是你的小提琴:https://jsfiddle.net/df6uraLw

    【讨论】:

    • 要摸到底线的金额,金额要在一行内
    • @NishargShah 如果您将 align-items: end 更改为 align-items: center,它会按照 OP 的要求工作。
    • 是的,我知道writing-mode 是新的 CSS 属性,目前正在流行,但他为此使用了旋转,所以我不想更改它@AdityaThakur
    • @AdityaThakur 如果有人举报你的评论,版主会因此惩罚你,因为 SO 中没有授予这种类型的词,所以删除它
    【解决方案2】:

    如果你想让它看起来和 Mozilla 中的一模一样,你需要写作模式和绝对定位,这里我没有使用 flexbox,使用writing-modeposition:absolute,它对齐得非常好,看看是否为你工作https://jsfiddle.net/k6gcxysr/

    .skills {
      padding: 0;
      width:100%;
      animation: draw 1s ease-in-out;
      background-color: #e9e9e9;
      border-top-left-radius: 6px;
      border-top-right-radius: 6px;
      position: relative;
    }
    .amount {
        color: #9c9c9c;
        font-family: "sans-serif";
        animation: amountVal 2s ease-in-out; 
        writing-mode: vertical-rl;
        position:absolute;
        right:30%;
        bottom:4%;
        transform: rotateZ(180deg);
        }
    

    【讨论】:

    • 有问题他提到了 flex 所以我继续使用flexbox
    • 是的,你的答案是正确的,我应该保留它还是删除它?
    • 别,你完成了另一个 CSS 属性,它对将来的人有帮助,所以不要删除它并 +1 表示感谢
    猜你喜欢
    • 2012-02-10
    • 2013-02-14
    • 2014-10-22
    • 1970-01-01
    • 2018-05-20
    • 2011-02-25
    相关资源
    最近更新 更多