【问题标题】:Struts2: Textboxes of different sizesStruts2:不同大小的文本框
【发布时间】:2011-12-08 14:20:26
【问题描述】:

我正在创建一个包含以下输入字段的登录页面:

<td>
    <s:textfield  class="loginInput" name="username" label="Username" id="un1" size="20"/>
    <s:password class="loginInput" name="password" label="Password"  id="pw1" size="20"/>
</td>

但是,当我编译和运行页面时,两个文本框以不同的大小显示。用户名文本框略大于密码文本框。

我尝试添加 size 属性以使它们显示相同的长度。我什至尝试添加一个 CSS 元素让它们显示相同的大小,但仍然没有。有什么建议吗?

编辑:我应该补充一点,这只发生在 I.E.在 chrome 中完美运行

【问题讨论】:

    标签: html css textbox struts2


    【解决方案1】:

    您使用的是哪个主题?因为size 是struts2 文本字段的有效参数。我建议您执行以下步骤:

    使用简单的主题:

       <td>
            <s:textfield theme="simple" cssClass="loginInput" name="username" 
             label="Username" id="un1" size="20"/>
            <s:password theme="simple" cssClass="loginInput" name="password"
            label="Password"  id="pw1" size="20"/>
        </td>
    

    如果没有设置主题,Struts 2 默认使用"xhtml" 主题。这意味着它将使用 &lt;td&gt;&lt;tr&gt; 为开箱即用的输入元素创建额外的 HTML

    我希望这应该可行。

    仅供参考:我在本地机器上测试了您的代码,这是屏幕截图,一切正常

    你确定你正确使用你的 CSS 和其他东西吗??

    【讨论】:

    • 我试过了,但是当我使用简单的主题时,我的登录页面会从:用户名:[TEXTBOX] 密码:[TEXTBOX] 到:[TEXTBOX][TEXTBOX]
    • 你用的是什么浏览器?因为我只在 Internet Explorer 中收到此错误。是的,我的 CSS 工作正常,我在同一页面的其他地方使用它
    • @user1073616 我已经在 Mozilla、IE 和 chrome 中检查过,它在所有地方都工作得很好。你可以显示你正在生成的 html 代码可能是熟悉 HTML 的人可以指出的事情
    • 该死,一定是其他代码的干扰。还是非常感谢。我希望我能投票支持你,但我仍然不能投票......
    • @user1073616 “简单”主题不会发出标签。
    【解决方案2】:

    这似乎是 IE 的问题。至少在 IE 9 (Win 7) 上,使用带有标记的简单静态文档可以观察到问题

     <input><br><input type=password>
    

    这些框的宽度略有不同,因为文本字体不同。您可以通过将字体设置为相同来解决此问题,例如使用以下 CSS 代码:

     input { font-family: Arial, sans-serif; }
    

    Arial 是 IE 中文本输入框的默认字体,所以这只会调整密码字段以使用相同的字体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      相关资源
      最近更新 更多