【问题标题】:Bootstrap HTML form, not responsive引导 HTML 表单,不响应
【发布时间】:2021-10-11 16:41:50
【问题描述】:

我使用引导列创建了一个 html 表单来获得所需的布局。这是关于我想要它用于桌面的地方,但它在移动设备上堆积在一起。我不相信我使用的任何代码都与引导程序一起使用。这是表单本身:

    <div class="center_div">
        <div class="row">
            <div class="form-group col-xs-5">
                <h3>First Name</h3>
                <input name="fName" type="text" />

            </div>
            <div class="form-group col-xs-5">
                <h3>Last Name</h3>
                <input name="lName" type="text" />

            </div>
        </div>
        <div class="row">
            <div class="form-group col-xs-5">
                <h3>Company Name</h3>
                <input name="compName" type="text" />

        </div>
        <div class="form-group col-xs-5">
            <h3>Business Type</h3>
            <select class="form-control" style="width: 100%;" name="businessNeeds">
                <option value="">Select...</option>
                <option value="IntDesign">Interior Designer</option>
                <option value="Ecom">E-Commerce Only</option>
                <option value="Retail">Retail Store Only</option>
                <option value="RetailEcom">Retail and E-Commerce</option>
                <option value="Mult">Multiple Locations</option>
            </select>

        </div>
    </div>
    <div class="row">
        <div class="col-xs-10">
            <div class="input-group input-group-xs">
                <h3>Address</h3>
                <input class="form-control input-lg" name="address" type="text" />

            </div>
        </div>
    </div>
    <div class="row">
        <div class="form-group col-xs-5">
            <h3>City</h3>
            <input name="city" type="text" />

        </div>
        <div class="form-group col-xs-2">
            <h3>State</h3>
            <select name="state">
                <option value="">Select...</option>
                /*Took out states for space*/
            </select>

        </div>
        <div class="form-group col-xs-3">
            <h3>Zip</h3>
            <input name="zip" type="text" />

        </div>
    </div>
    <div class="row">
        <div class="form-group col-xs-5">
            <h3>Phone</h3>
            <input name="phone" type="text" />

        </div>
        <div class="form-group col-xs-5">
            <h3>Email</h3>
            <input id="email" name="uemail" type="text" />

        </div>
    </div>
    <div class="row">
        <div class="form-group col-xs-4">
            <h3>Create a Username</h3>
            <input name="uname" type="text" />

        </div>
        <div class="form-group col-xs-3">
            <h3>Create a Password</h3>
            <input class="form-control" style="width: 100%;" name="pass" type="password" />

        </div>
        <div class="form-group col-xs-3">
            <h3>Confirm Password</h3>
            <input class="form-control" style="width: 100%;" name="ConfPass" type="password" />

        </div>
    </div>
    <div class="row">
        <div class="form-group col-xs-5">
            <h3>Sales Tax ID</h3>
            <input name="taxID" type="text" />

        </div>
        <div class="form-group col-xs-5">
            <h3>Upload Tax ID Certificate</h3>
            <input name="fileUpload" type="file" />

        </div>
    </div>
    <div class="buttonHolder">
        <input type="submit" value="Submit" /></div>
    </div>
</form>

CSS:

.center_div{
    padding-left:150px;
    position:relative;
    width:100%;
    margin:0 auto;
}

@media only screen and (max-width: 600px){
    .mainForm{

}

.center_div{

    width:100%;
    margin:0 0 15px 0;
}

.center_div label{
    width:100%;
    float: none;
    margin:0 0 5px 0;
}

.mainForm 是表单周围的空白 div,页面上没有其他内容。我离开了 CSS 相当准系统,但是有没有一种相当简单的方法可以通过引导程序在移动设备上做出更好的响应?即使所有的田地只是彼此重叠。

【问题讨论】:

    标签: html css forms responsive


    【解决方案1】:

    所有引导行都必须在 .container div 中,否则它们将无法按预期工作。

    为了在较小的屏幕上堆叠表单元素并在较大的分辨率上有(比如说)两列(实际上每列 6 个网格列),您需要将两个类应用于您的列。

    <div class="form-group col-xs-12 col-sm-6">
    

    本质上,您是在告诉 bootstrap,元素上的最小分辨率 (xs) 应跨越 12 个网格列,而元素上的小分辨率 (sm) 应跨越 6 个网格列。

    this codepen 上,我添加了这些类,以便您可以看到正在运行的解决方案。希望对您有所帮助。

    【讨论】:

    • 所以如果我将我的主表单 div 重命名为“content center_div”,那么它们会符合要求吗?我会试一试,谢谢
    • @H.Norman 我的意思是 .container,而不是 .content,抱歉。相应地编辑了我的答案。
    • 太棒了,很高兴我能帮上忙! :) 编码愉快!
    • 很抱歉再次询问,但有一个快速的问题:这在我连续有两个字段但有些行有三个字段的情况下非常有效。我希望那些在桌面上仍然有 3 个连续但然后在移动设备上堆叠,这超出了“6 vs 12”窗口。有什么特定的格式吗?
    • 这应该很简单,对 3 列中的每一列都使用 col-sm-4。 (4 x 3 = 12)。 Here 是解释 BS 网格的绝佳资源。
    【解决方案2】:
          <html>
            <head>
                <title>
                Mobile form responsvie
                </title>
         <style>
      <style>
            .row
            {
            display: flex;
            flex-direction: column;
            }
            .form-group.col-xs-5 {
            margin-left: 30px;
            }
            .input-inline
            {
            width:50%;
            }
            .input-inline
            {
            width:50%;
            }
           .center_div {
        padding-left: 50px;
        padding-right: 50px;
    }      
            @media only screen and (max-width: 720px)
            {  
            .input-inline
            {
           
            }
            h3{
                color:grey;
            }
            .form-group.col-xs-5
            {
            margin-left: 0px;
            }
     
           
            .center_div label{
            width:100%;
            float: none;
            margin:0 0 5px 0;
            }
           .buttonolder input {
        margin-left: 18%;
        cursor: pointer;
    }
            </style>
    </style>
            </head>
            <body>
                <form>
                  <div class="center_div">
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>First Name</h3>
                            <input  class="input-inline" name="fName" type="text" />
                        </div>
                        <div class="form-group col-xs-5">
                            <h3>Last Name</h3>
                            <input  class="input-inline" name="lName" type="text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Company Name</h3>
                            <input class="input-inline" name="compName" type="text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Business Type</h3>
                            <select name="businessNeeds">
                                <option value="">Select...</option>
                                <option value="IntDesign">Interior Designer</option>
                                <option value="Ecom">E-Commerce Only</option>
                                <option value="Retail">Retail Store Only</option>
                                <option value="RetailEcom">Retail and E-Commerce</option>
                                <option value="Mult">Multiple Locations</option>
                            </select>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Address</h3>
                            <input class="input-inline" class="form-control input-lg"                name="address" type="text"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>City</h3>
                            <input class="input-inline" name="city" type="text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>State</h3>
                            <select name="state">
                                <option value="">Select...</option>
                                /*Took out states for space*/
                            </select>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Zip</h3>
                            <input class="input-inline" name="zip" type="text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Phone</h3>
                            <input class="input-inline" name="phone" type="text" />
                        </div>
                        <div class="form-group col-xs-5">
                            <h3>Email</h3>
                            <input class="input-inline" id="email" name="uemail" type="text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Create a Username</h3>
                            <input class="input-inline" name="uname" type="text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Create a Password</h3>
                            <input class="input-inline" class="form-control" name="pass" type="password" />
                        </div>
                        
                        <div class="form-group col-xs-5">
                            <h3>Confirm Password</h3>
                            <input class="input-inline" class="form-control"name="ConfPass" type="password" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Sales Tax ID</h3>
                            <input class="input-inline" name="taxID" type="text" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group col-xs-5">
                            <h3>Upload Tax ID Certificate</h3>
                            <input class="upload-file" name="fileUpload" type="file" />
                        </div>
                    </div>
                    <div class="row">
                        <div class="buttonolder">
                            <input class="upload-file" type="submit" value="Submit" style="margin-left: 21%;margin-top: 3%;text-align: center;padding: 8px;padding-left: 27px;padding-right: 27px;cursor: pointer;">
                        </div>
                    </div>
                 </div>
                </form>
            </body>
        </html>
    

    【讨论】:

      猜你喜欢
      • 2015-06-16
      • 1970-01-01
      • 2013-08-27
      • 2014-08-14
      • 2018-09-26
      • 2018-10-14
      • 2013-01-28
      • 2022-08-17
      • 2019-06-28
      相关资源
      最近更新 更多