【问题标题】:Why don't all the elements of my form align right?为什么我的表单的所有元素都没有对齐?
【发布时间】:2015-07-19 10:45:35
【问题描述】:

我不明白为什么我的表单中的所有元素都没有跟随align="right" 标记。理想情况下,我希望所有内容都居中,但我注意到输入问题、添加资金和添加标签的部分位于左侧,而添加文件和提交按钮的部分是唯一遵循对齐规则的元素在<form> 标签中。为什么是这样?如何将所有内容对齐

HTML

    <div class="container">
        <!--Sections: Question, Add money, Add file, Submit-->
        <form role="form" align="right">

        <!-- Section to type question-->
            <div class="form-group" id="AddQuestion">
                <textarea class="form-control" rows="5" placeholder="Search"></textarea>
            </div>

        <!--Section to add money---->
            <div class="input-group" id="AddMoney">
              <span class="input-group-addon">$</span>
              <input id="EnterMoney" type="text" class="form-control" onkeypress='validate(event)'>
            </div>

        <!--Section to add tags-->
            <div class="input-group" id="AddTag">
              <input type="text" class="form-control" placeholder="Tags" aria-describedby="basic-addon1">
            </div>

        <!--Section to add file-->
            <div id="AddFile">
                <a href="#" onclick="document.getElementById('uploadFile').click(); return false;" />Add File</a>
                <input type="file" id="uploadFile" style="visibility: hidden;" />
            </div>

            <div id="imagePreview"></div>

        <!--Section for the Submit button-->
            <div>
                <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </form>
    </div>

</body> 

CSS

form {

}
.container {
    max-width:500px;
}
#imagePreview {
    width: 100px;
    height: 100px;
    background-position: center center;
    background-size: cover;   
    display: inline-block;
}
#AddMoney {
    max-width:200px;
}
#AddFile {
    position:relative;
    top:20px;
}
#AddTag {
    position:relative;
    top:20px;
}

【问题讨论】:

标签: html css alignment


【解决方案1】:

这是因为您的控件上应用了其他 CSS 类。例如,您的 divtextarea 分别具有 CSS 类 form-groupform-control。检查您的 CSS,您将能够看到导致此问题的 CSS 类。

您可以使用 F12 按钮打开浏览器的开发者工具,当您检查元素时它会显示相应的 HTML 和 CSS。

希望这能帮助您解决问题。

【讨论】:

  • 我已将 CSS 添加到我的问题中。请注意,我在 CSS 代码中的 form 是空白的(它始终是空白的),但表单仍然没有遵循对齐 - 这是为什么?
  • 你在使用引导程序吗?似乎您的表单控件的某些或任何一种方式都有它们的 CSS,它们会据此对齐。您是否尝试过开发人员工具来检查您的控件上应用的 CSS?
【解决方案2】:

HTML 的 align 属性随着 HTML5 和 CSS3 的发布而过时。一个好的解决方法是使用 CSS 属性来使用 margin-left 或 margin-right 属性对齐元素。

#example {

margin-left: 1px; /*play around with these values*/
margin-right 1px; /*play around with these values*/
}

玩转这些价值观,它们应该会为您提供所需的东西。如果需要,您还可以使用左右边距的百分比值。

【讨论】:

  • 他们是用其他东西替换了align,还是我们只是希望使用CSS?另外,如果它过期了,为什么它仍然会对我的最终结果产生影响?
  • 我认为假设是您应该使用 CSS。老实说,我不知道为什么它会起作用,也许是错误?但是我 100% 知道它已经过时了。在w3schools.com 上查找 align 属性,您会看到该属性已与 HTML5 过时。希望这可以帮助! :) 直接链接就在这里w3schools.com/tags/att_div_align.asp
  • 大声笑我喜欢他们在他们的网站上让它听起来很空洞。感谢@Chris 的帮助
  • @whatin1992 - 表单元素上的属性仅在 Chrome 中有效,在 IE 或 Firefox 中无效。 Chrome 这样做是因为用户代理样式表规则,并且由于没有规范强制执行浏览器样式表规则,因此不能说它是一个错误。 HTML5 建议该属性只应在&lt;div&gt; 元素上生效,其他浏览器也是如此。
猜你喜欢
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
相关资源
最近更新 更多