当前位置:  开发笔记 > 编程语言 > 正文

样式输入元素以填充其容器的剩余宽度

如何解决《样式输入元素以填充其容器的剩余宽度》经验,为你挑选了5个好方法。

假设我有一个像这样的html片段:

这不是我的确切代码,但重要的是在固定宽度容器中的同一行上有标签和文本输入.如何设置输入样式以填充容器的剩余宽度而不包装并且不知道标签的大小?



1> danijar..:

这是一个简单而干净的解决方案,不使用JavaScript或表布局黑客.它与此答案类似:输入文本自动宽度填充100%,其他元素浮动

用输出字段包装输入字段很重要display:block.接下来的事情是按钮必须先来,然后是输入字段.

然后,您可以将按钮浮动到右侧,输入字段填充剩余空间.

HTML

form {
    width: 500px;
    overflow: hidden;
    background-color: yellow;
}
input {
    width: 100%;
}
span {
    display: block;
    overflow: hidden;
    padding-right:10px;
}
button {
    float: right;
}

CSS

一个简单的小提琴:http://jsfiddle.net/v7YTT/90/

更新1:如果您的网站仅针对现代浏览器,我建议使用灵活的方框.在这里你可以看到当前的支持.

更新2:这甚至适用于多个按钮或与输入字段共享的其他元素.这是一个例子.


这非常有效.使用float:left而不是right来创建facebook样式标记器或类似的东西.

2> cobbal..:

尽管每个人都讨厌表格的布局,他们确实帮助这样的东西,使用显式表格标签或使用display:table-cell


关心分享乔尔?
同意,你应该与我们其他人分享你的*实际*解决方案,并将其标记为答案 - 因为这有点烦人.

3> leishman..:

我建议使用Flexbox:

请确保添加适当的供应商前缀!

form {
  width: 400px;
  border: 1px solid black;
  display: flex;
}

input {
  flex: 2;
}

input, label {
  margin: 5px;
}


4> basarat..:

请使用flexbox.你有一个容器,可以将它的孩子变成一排.第一个孩子根据需要占据空间.第二个弯曲以占用所有剩余空间:



5> llange..:

实现这一目标的最简单方法是:

CSS:

label{ float: left; }

span
{
    display: block;
    overflow: hidden;
    padding-right: 5px;
    padding-left: 10px;
}

span > input{ width: 100%; }

HTML:

看起来像: http ://jsfiddle.net/JwfRX/

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有