【问题标题】:How to fit 15 fields into a 400px by 510px form如何将 15 个字段放入 400 x 510 像素的表单中
【发布时间】:2014-04-15 03:35:06
【问题描述】:

我目前正在处理一个包含许多字段的表单,并且我试图将它们都很好地放入一个高度为 400 像素、宽度为 510 像素的框中。在编辑高级 CSS 时,我非常讨厌(这对我来说是高级的)。

如果有人能帮我解决这个问题,我会很高兴的!我不是想为我完成这件事,而是如果有人这样做或解释了如何做,它真的会帮助我自己学习如何做。

  • 我无权访问 html
  • 我正在从另一个我也无权访问的服务器中提取样式表
  • 我需要 15 个表单域才能(整齐地)适应 400x510 像素的空间

CSS:

#qw {
    width: 100%;
    height: 400px;
    background-color: #transparent;
    border-radius: 0 0 0px 0px;
    padding: 0px;
    font: 14px/20px sylfaen, garamond, 'urw palladio l', georgia, serif;
}
#qw #qw_header {
    background-image:;
    width: 100%;
    height: 68px;
}
#qw label {
    display: none;
}
#qw fieldset {
    border: none;
    margin-top: 0px;
    padding-top: 0px;
    padding-left: 8px;
}
#qw fieldset legend {
    visibility: hidden;
}
#qw fieldset input, #qw fieldset select {
    width: 93%;
    border: 1px solid #bbb;
    border-top-color: #777;
    border-bottom-color: #ddd;
    padding: 4px;
    margin-bottom: 4px;
    font-size: 16px;
    font-family: helvetica, arial, sans-serif;
    height: 18px;
}
#qw fieldset select {
    height: 28px;
    width: 100%;
}
#qw .qw_personal_header {
    text-align: center;
}
#qw .qw_personal_header:before {
    content:'You';
    text-transform: uppercase;
    font-size: 16px;
    color: #000;
    width: 100%;
}
#qw .qw_personal:after {
    clear: both;
}
#qw .qw_vehicle_header {
    text-align: center;
    clear:both;
}
#qw .qw_vehicle_header:before {
    clear: both;
    font-size: 16px;
    content:' Car';
    text-transform: uppercase;
    color: #000;
    width: 100%;
}
#qw .qw_first_name, #qw .qw_last_name, #qw .qw_zip_code, #qw .qw_city, #qw .qw_state, #qw .qw_phone, #qw .qw_email {
    float: left;
    width: 45%;
    margin: 5px;
}
#qw .qw_monthly_income, #qw .qw_vehicle_year, #qw .qw_vehicle_make, #qw .qw_vehicle_model, #qw .qw_vehicle_mileage, #qw .qw_vehicle_owned {
    float: right;
    width: 45%;
    margin: 5px;
}
#qw .qw_vehicle_owned {
    width: 93%;
}
#qw .submit {
    margin-top: 10px;
    text-align: center;
}
#qw .submit input {
    background:url cursor:pointer;
    height: 46px;
    width: 297px !important;
    font-size: 0px;
    border: none;
}
#qw .qw_legal {
    font-size: 12px;
    color: #000;
    padding-left: 15px;
    padding-right: 15px;
    line-height: 12px;
}
#qw .qw_legal a {
    color: black;
    text-decoration:underline;
}
#qw .submit input {
    width: 80%;
}

【问题讨论】:

  • 如果你知道一个肯定的,但如果有人要做一些,我可以查看调整并可能弄清楚:)
  • 这似乎是“太宽泛”的一个很好的例子。
  • 是不是太宽泛了? CSS 在那里,目标也在那里。如果我应该包含更多内容,请告诉我。
  • 我看到了 css,但我没有看到要应用它的 html?
  • @Dr.Tenma 您可能应该提供 HTML 以缩小问题的范围……

标签: html css forms mobile


【解决方案1】:

工作示例:http://jsfiddle.net/awesome/Jbj2h/

使用引导程序 3.1:http://getbootstrap.com

CSS:

.form-box {
    width: 510px !important;
    height: 400px !important;
    overflow: hidden !important;
    background-color: White;
    display: block;
    padding: 5px;
}
body {
    background-color: Gainsboro;
}
.form-box .form-group {
    margin-bottom: 10px;
}
.form-box textarea {
    margin-bottom: 10px;
}

HTML:

<div class="form-box">
    <form class="form-horizontal" role="form">
        <div class="col-xs-12">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-4">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-4">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-4">
            <div class="form-group">
                <label class="sr-only" for="awesome">Awesome</label>
                <input type="text" class="form-control input-sm" id="awesome" placeholder="Enter text">
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <select class="form-control input-sm">
                    <option>1</option>
                    <option>2</option>
                    <option>3</option>
                    <option>4</option>
                    <option>5</option>
                </select>
            </div>
        </div>
        <div class="col-xs-6">
            <div class="form-group">
                <select class="form-control input-sm">
                    <option>1</option>
                    <option>2</option>
                    <option>3</option>
                    <option>4</option>
                    <option>5</option>
                </select>
            </div>
        </div>
        <textarea class="form-control input-sm" rows="2" placeholder="stuff"></textarea>
        <button type="button" class="btn btn-primary btn-block">Go!</button>
    </form>
</div>

【讨论】:

    【解决方案2】:

    我发现用 css 在表单上拟合东西可能有点棘手。我的建议是尽可能避免使用浮点数和 clearfixes,而是坚持你的宽度=__%
    但是,当使用宽度时,让我感到困惑的一件事是,这也包括边距和填充,所以为什么将两个项目并排设置为 50% 可能是有意义的,但通常情况并非如此。 我在做这样的 css 时使用的另一个技巧是使用开发工具在浏览器中检查它(在大多数情况下,您可以通过右键单击并选择“检查元素”来访问它)。这样,您可以随意修改您的 css 代码,直到您满意为止,以便在您的代码中进行适当的尝试,并查看边距、内容和填充的边界。

    【讨论】:

    • 谢谢您的提示,先生!当我检查字段集时,这是我可以编辑的 CSS 的一部分:#qw fieldset input, #qw fieldset select { width: 93%;边框:1px 实心#bbb;边框顶部颜色:#777;边框底部颜色:#ddd;填充:4px;边距底部:4px;字体大小:16px;字体系列:helvetica、arial、sans-serif;高度:18px;从我的新手的角度来看,我知道它可以让我编辑实际的字段......我不知道如何调整它们并使它们适合我提到的大小的盒子。我想我不知道让它看起来漂亮的正确参数。
    • 实际上...到目前为止,我已经发现将所有字段浮动到左侧会拆分字段,因此它们彼此相邻排列...虽然我不明白为什么?我猜我必须显着降低田地的高度,但如果我这样做,它看起来会很差。
    • 别担心(我不是先生,我是女士)。当您检查元素时,您可以编辑已经存在的内容。如果您单击内嵌样式部分的正下方或顶部,您也可以添加新内容以查看它们的外观。因此,您可以随意调整页面的高度和宽度,以实时查看它们的外观。
    【解决方案3】:

    http://jsfiddle.net/r3gw7/

    概念小提琴,利用

    overflow-y: scroll;
    

    【讨论】:

    • 这如何回答这个问题?
    • “someforms”中的任何内容都将“很好地放在一个高度为 x 宽度为 x 的盒子内”,不是吗?
    • 但我为什么要滚动表单?!把内容放在一个漂亮的盒子里,而不是把盒子放在一个漂亮的(滚动)盒子里。 (或者,至少这就是我认为问题的意思)
    • 谢谢约翰,我知道你在那里做了什么,我的问题是所有这些字段都将在响应式表单中,因此滚动在较小的设备上不会非常友好。我很感激您的意见,但它仍然是一个解决方案。
    • 我的意思是,这只是一个似乎将他指向 A 方向的答案,可能是正确的答案。也许您可以利用这段时间想出一个更好的解决方案?我知道我不能;D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2018-06-06
    相关资源
    最近更新 更多