【问题标题】:Specific text in label disturbing the alignment标签中的特定文本干扰对齐
【发布时间】:2018-10-17 16:09:31
【问题描述】:

我有一个需要用户名和密码的登录页面。 我面临一个非常奇怪的问题。 当我将“用户名”作为标签文本放在第一个标签中时,文本位于输入上方,但是当我将“密码”作为第一个标签的文本时,它通常是并排出现的。


“密码”文本代码

 <div class="main" style="width: 25%;margin-left: 500px;" align="center">
                     <div style = "background-color:blue; color:#FFFFFF; padding:3px; "><b>Login</b></div>

                <div style = "margin:30px; color: black" class='inv'>

                   <form action = "" method = "post">
                   <br/>
                      <label>Password  :</label><input type = "text" id="username" name = "username" class = "box" value=""  required/><br /><br />
                      <label>Password  :</label><input type = "password" name = "password" id="password" class = "box" value=""  required /><br/><br />
                      <input type = "submit" value = " Submit " class=".btn-primary" /><br />
                   </form>

                   <div style = "font-size:11px; color:#cc0000; margin-top:10px"><?php error_reporting(0);echo $error; ?></div>

                </div>

             </div>
    </div>

“用户名”作为文本的代码

<div class="main" style="width: 25%;margin-left: 500px;" align="center">
                     <div style = "background-color:blue; color:#FFFFFF; padding:3px; "><b>Login</b></div>

                <div style = "margin:30px; color: black" class='inv'>

                   <form action = "" method = "post">
                   <br/>
                      <label>username:  :</label><input type = "text" id="username" name = "username" class = "box" value=""  required/><br /><br />
                      <label>Password  :</label><input type = "password" name = "password" id="password" class = "box" value=""  required /><br/><br />
                      <input type = "submit" value = " Submit " class=".btn-primary" /><br />
                   </form>

                   <div style = "font-size:11px; color:#cc0000; margin-top:10px"><?php error_reporting(0);echo $error; ?></div>

                </div>

             </div>

请帮忙!!

【问题讨论】:

  • 即使“用户名”和“密码”中的字符数相同,但两者的实际宽度却不同。 “用户名”略宽于“密码”。您正在尝试通过使用硬编码的宽度和对齐来适应这一点,这在其他屏幕上无论如何都不起作用。立即修复/解决方法是将父 div 的宽度增加到 26% 或将边距从 30px 减少到 25px。但这仍然看起来不太好,并且可能不适用于其他窗口大小。

标签: html css user-interface alignment


【解决方案1】:

就像@Nawed Khan 所说,问题的根源在于您的硬编码样式。 这条线特别导致宽度随视口(浏览器窗口的大小)缩放,并且 margin-left 将div 推到一边 500px,因此它不会在不同的浏览器上居中或当浏览器已调整大小。

&lt;div class="main" style="width: 25%;margin-left: 500px;" align="center"&gt;

简短的解决方法是增加宽度。

&lt;div class="main" style="width: 500px;margin: 0 auto;" align="center"&gt;

现在给它一个硬值是可行的。

但这为不同的屏幕引入了它自己的缩放警告集,所以如果你真的想让它适用于不同的屏幕,请考虑研究响应式设计。

【讨论】:

  • 我现在将 25% 更改为 30%。但我不明白“用户名”和“密码”的宽度有何不同。你们中的任何人都可以澄清一下。谢谢答案
  • 具有相同字符数的文本可能具有不同的宽度,因为每个字符本身可能具有不同的宽度。我说“可能”是因为它实际上取决于字体本身(例如:georgia 字体会有不同的宽度,而 consolas 不会)。这是demonstration。 P.s.:有一个 html DOM 属性用于元素的宽度,称为“offsetWidth”,可以在演示的 javascript 中找到。
【解决方案2】:

请减少输入字段的大小,也许会有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-07
    • 2013-10-03
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 2013-09-25
    相关资源
    最近更新 更多