【发布时间】:2020-11-09 22:23:08
【问题描述】:
我正在尝试为表单文本字段和标签创建动画。 我希望能够将 LabelText 的位置更改为 TextBox 组件的顶部。 请让我知道我缺少什么,我输入的文本和标签重叠,即标签没有动画。 请求帮助!
样式化组件:
export const TextBox = styled.input`
display: flex;
width: 100%;
height: 2em;
border-radius: 5px;
border: none;
background: ${styles.backgroundGradient};
`;
export const LabelText = styled.label`
position: absolute;
top: 0;
left: 0;
font-size: 18px;
line-height: 16px;
pointer-events: none;
transition: 0.5s;
color: ${styles.formContentColor};
${TextBox}:focus ~ &,
${TextBox}:not([value=""]) ~ & {
top: -1.5em;
left: 0;
color: ${styles.formContentColor};
font-size: 20px;
}
`;
export const InputWrapper = styled.div`
position: relative;
width: 60%;
`;
组件中的放置顺序
<InputWrapper>
<LabelText>Product Name</LabelText>
<TextBox type="text" />
</InputWrapper>
【问题讨论】:
-
请用您的代码创建一个沙箱。
-
我认为
[value=""]并没有涵盖所有内容。看笔:codepen.io/moshfeu/pen/mdVqJKd(explanation) -
嗨 Monzoor,这是链接。我正在处理产品详细信息部分
标签: css reactjs styled-components