【问题标题】:Bootstrap - 2 column form layout with fixed textarea height and column orderingBootstrap - 具有固定文本区域高度和列顺序的 2 列表单布局
【发布时间】:2015-08-04 11:29:57
【问题描述】:

我正在尝试在引导程序中构建一个 2 列表单布局,右侧有一个固定高度的文本区域。我让它在桌面屏幕上运行良好,在 textarea 框上有一个.pull-right-md(自己的类)。但是在“响应”模式下(在较小的屏幕上),我对盒子的顺序有疑问。我希望 textarea 在小屏幕上显示时位于最后一个位置。我已经尝试通过使用 .col-*-pull.col-*-push 类订购 col 来解决这个问题,但它不起作用。

在这里你可以看到我到目前为止所做的事情:http://www.bootply.com/BBFB4Tt97j

您有什么想法可以解决这个问题吗?

【问题讨论】:

    标签: html css forms twitter-bootstrap responsive-design


    【解决方案1】:

    这就是我的建议,尝试通过拉和推来解决问题,但我还没有找到解决方案。您可以使用 hidden-xs, visible-xs 创建两个不同的文本区域,一个仅在小屏幕上可见,另一个仅在大屏幕上可见。但是您要确保在处理表单时处理两个不同的文本区域。

    <form class="">
        <div class="col-md-6 col-sm-12 form-group pull-right-md hidden-sm hidden-xs">
            <textarea class="form-control textarea-fixed-height" id="textarea" name="textarea">default text</textarea>
        </div>
        <div class="col-md-6 col-sm-12 form-group">
            <input class="form-control" id="inputEmail3" placeholder="Name" type="text">
        </div>
        <div class="col-md-6 col-sm-12 form-group">
            <input class="form-control" id="inputPassword3" placeholder="Email" type="email">
        </div>
        <div class="col-md-6 col-sm-12 form-group">
            <input class="form-control" id="inputPassword3" placeholder="Telefon" type="text">
        </div>
        <div class="col-md-6 col-sm-12 form-group">
            <input class="form-control" id="inputPassword3" placeholder="Betreff" type="text">
        </div>
        <div class="col-md-6 col-sm-12 form-group pull-right-md hidden-lg hidden-md">
            <textarea class="form-control textarea-fixed-height" id="textarea1" name="textarea1">default text</textarea>
        </div>
    </form>
    

    Bootply link

    【讨论】:

    • 不错的方法..似乎这可以解决我的问题,谢谢!!
    • 在提交表单或检查用户输入时不要忘记处理这两个文本区域。如果您认为这是答案,您也可以将其标记为答案。 :D
    • 现在被标记为答案 ;) 并且您提交的注释也很有趣.. 您认为两个文本区域在小屏幕和大屏幕上提交时都应该具有相同的 id/name 吗?或者你会给他们两个不同的 id 来在 ajax/php 中寻址?
    • 他们应该有不同的 ID/名称。因为代码同时看到了 textarea 而只有用户看不到它们,所以最好的办法是检查其中一个是否有文本。如果一个不为空,则提交它,因为在任何情况下,只有当用户访问代码并对其进行修改时,您才会让用户同时提交两者。您可以检查提交时的屏幕类型,然后根据提交时的屏幕类型选择文本区域。这一切都取决于你。
    • 是的,听起来很合理。将尝试检查 textareas 的内容,如果有,则应提交.. 希望我能做到,因为我的 js/ajax 技能不是最好的;)
    【解决方案2】:

    所以对于遇到相同问题的每个人,这就是我的问题的解决方案:http://www.bootply.com/BBFB4Tt97j#

    我在form-tag 中放了两个textareas。一个作为第一个框,第二个在最后一个位置,但在提交按钮之前。在第一个文本区域中使用 .hidden-xs.hidden-sm 对于较小的设备不可见,使用 .hidden-md.hidden-lg 我会阻止 textarea-标签出现在大屏幕上。

    现在一切正常.. thx

    【讨论】:

      【解决方案3】:

      请不要为了样式而复制 html 元素,这是不值得的!你破坏了语义,并产生了难以维护的不合逻辑的代码。

      无需复制任何东西,即可轻松达到想要的效果:

      http://output.jsbin.com/debenudiqi/2/

      你可以在这里获取代码

      http://jsbin.com/debenudiqi/2/edit

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-05
        • 1970-01-01
        • 1970-01-01
        • 2014-01-28
        • 1970-01-01
        • 2021-11-04
        • 2017-03-23
        相关资源
        最近更新 更多