gpt4 book ai didi

javascript - 如何使文本在另一个 div 内动态更改宽度的 div 上居中?

转载 作者:行者123 更新时间:2023-12-03 13:43:33 25 4
gpt4 key购买 nike

我正在 React 中为显示自动化结果的应用程序创建一个组件。我正在尝试创建一个自定义进度条,显示通过的测试的百分比。但是,当我尝试将文本居中时,它相对于内部 div 居中。

我的进度条的代码是:

import React from 'react';
import classes from './ProgressBar.modules.scss';

const progressBar = props => {
return (
<div className={ classes.ProgressBar }>
<div style={{ width: props.passed }}>
{ props.passed }
</div>
</div>
);
};

我的 SCSS 文件如下所示:

.ProgressBar {
width: 125px;
max-width: 125px;
background: rgb(255, 97, 97);
border-radius: 4px;
height: 40px;
box-shadow: 0 2px 3px rgb(110, 109, 109);
overflow: hidden;
transition: 0.2s ease-in-out;
}

.ProgressBar div {
background: rgb(98, 167, 98);
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
height: 40px;
padding: 8px 1px 9px 5px;
box-sizing: border-box;
font-weight: bold;
color: white;
}

我尝试将文本居中,但它仅相对于绿色保持居中。如何将其置于两个 div 之上?

最佳答案

将其放在单独的 span 中(或 divp 等):

const progressBar = props => {
return (
<div className={ classes.ProgressBar }>
<div style={{ width: props.passed }}></div>
<span className="label">{props.passed}</span>
</div>
);
};

在外部容器上使用position:relative:

.ProgressBar {
position: relative; /* <<< */
width: 125px;
max-width: 125px;
background: rgb(255, 97, 97);
border-radius: 4px;
height: 40px;
box-shadow: 0 2px 3px rgb(110, 109, 109);
overflow: hidden;
transition: 0.2s ease-in-out;
}

然后设置span的样式,例如:

.ProgressBar .label {
position: absolute; /* <<< reason for relative positioning */
top: 0;
left: 0;
width: 100%;
padding: 5px; /* <<< adjust to your needs */
text-align: center;
}

关于javascript - 如何使文本在另一个 div 内动态更改宽度的 div 上居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59789840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com