reactjs - 带标签的单选按钮垂直对齐
问题描述
我正在尝试构建一个单选按钮,在这段代码中,我无法正确地使标签垂直对齐,我认为这是因为我在绝对和相对部分缺少一些东西,也尝试了垂直对齐但没有工作。
有没有更好的方法来使用 flex 呢?
如果我使用 flex 我无法正确分配输入内的小圆。
解决方案
我假设您正在尝试将标签放置在单选按钮的右侧。
看起来您正在尝试使用 flexbox,所以我会使用它来回答。
首先,您应该在单选按钮之后放置标签RadioButton
:
return (
<Label htmlFor={id} disabled={disabled}>
<Input
id={id}
type="radio"
role="radio"
name={name}
value={value}
disabled={disabled}
onChange={onChange}
checked={checked}
/>
<Indicator />
{label} // <----
</Label>
);
然后,您可以将 flexbox 用于Label
:
const Label = styled.label`
display: flex; // <----
align-items: center; // <----
cursor: ${({ disabled }) => (disabled ? "not-allowed" : "pointer")};
font-size: 24px;
`;
最后,您需要使Indicator
位置相对:
const Indicator = styled.div`
border: 1px solid;
border-radius: 1em;
width: 0.75em;
height: 0.75em;
position: relative; // <---
${Label}:hover & {
background: #ccc;
}
推荐阅读
- javascript - 在表格中以特定标题名称的顺序显示对象数组
- css - 在 Firefox 中显示 flex 没有达到 100% 的高度
- javascript - 如何将变量从 javascript 传递到 django 视图
- python - 如何将参数传递给 Airflow on_success_callback 和 on_failure_callback
- f# - 是否可以要求静态解析的类型参数是泛型类型?
- pipeline - 如何在 ADF 中动态获取管道名称?
- web-services - 任何人都可以解释一下webservices的用途是什么
- javascript - 根据权限更改按钮状态反应本机
- ios - 如何告诉我的应用程序准确读取字符串包含的内容?
- dialogflow-es - Dialogflow 在三个交互后返回“抱歉,我无能为力”消息