设置:
我有一个input type="text"
,一个label
和一个自定义的checkbox
,在span
中有自己的label
来封装它们,在li
上的div
中。
样式:
input type="text"
仅具有美学样式。label
有margin-left:5px;
span
有display: inline-block; float: right;
div
有来自Bootstrap 3.3的类form-group
和form-inline
问题:
label
最初是空的,但一旦我在input
中键入内容,就会运行一个脚本,用文本填充相同的label
。
我一直在尝试将input
的width
设置为auto
,使它的宽度与它所在的容器相同,达到span
,以便当label
出现时,它会缩短自己。
相反,input
仍然很小。我想我做错了什么,但即使做了一些研究,我也不明白到底是什么。
我试过从div
中删除类(这只是破坏了它),应用width=100%;
,这使它变大,但将它和label
推到下面的一行。
有人能提供一些帮助吗?
下面是它的样子:
- 无文本 *
with text added by js
链接到Codepen。
1条答案
按热度按时间rhfm7lfc1#
你需要一个 Package 器来 Package 输入和标签,使用calc来设置宽度100% -(允许复选框的任意数量),例如。
然后你可以设置这个.listWrapper来显示:flex,并给予输入flex:11自动,使得输入将根据需要增长/收缩,以占用所有可用的内部空间减去标签所需的任何空间。您可以将flex-wrap设置为nowrap,以便所有内容都保留在一行上。
下面是一个更新的codepen:
https://codepen.io/anon/pen/ZXwxKz
相关的更新样式在这里,所以你不必在所有东西中挑选:
由于浮动,您可能还需要在 Package 器上使用clearfix。如果你已经有了一个clearfix样式,将它应用到“.form-group.form-inline”,如果没有,将这个样式添加到你的CSS中: