【问题标题】:Positioning inline labels containing input element dynamically sized into a form将包含动态大小的输入元素的内联标签定位到表单中
【发布时间】:2013-04-23 14:02:04
【问题描述】:

我有一个表单,其中包含一些输入标签到标签标签中。输入显示在标签下方。我希望根据表单的宽度动态调整输入/标签的大小。问题是如果我告诉标签占据表单宽度的 100%,最后一个输入标签进入下面的行。

这是我的代码示例:

    <form action="">
        <label>Label1:<br>
            <input type="text"></label>
        <label>Label2:<br>
            <input type="text"></label>
    </form>

这里是一些 CSS:

    form {
        width:60%;
        border:1px solid indigo;
    }
    label{
        display:inline-block;
        margin:0;
        width:50%;
    }
    input{
        width:100%
    }

【问题讨论】:

    标签: html css positioning


    【解决方案1】:

    标签元素之间的空白占用空间,阻止元素并排出现。把它注释掉,它就可以工作了:

    http://tinker.io/5e4b9

    <form action="">
        <label>Label1:<br>
            <input type="text"></label><!--
        --><label>Label2:<br>
            <input type="text"></label>
    </form>
    

    【讨论】:

    • 很好,多余的空白会导致问题。但是,额外的注释看起来有点脆弱。
    • 如果您对评论感到不舒服(尽管它没有任何脆弱之处),还有其他方法可以有效地删除空间。除了将元素设置为 inline-block 之外,您还可以浮动它们或将它们设置为 table-cell:tinker.io/5e4b9/1.
    • 实际上,输入字段的 100% 宽度存在问题(不是您的问题),导致它溢出到右侧并超出右边框。就个人而言,我会将
    • 这是因为输入元素上有填充,所以它们是 100% 宽 + 填充。调整框大小修复它:tinker.io/5e4b9/2
    • 我添加了 -moz-box-sizing 以在 Firefox 中查看它。效果很好。 +1
    猜你喜欢
    • 2015-07-04
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2012-09-22
    相关资源
    最近更新 更多