TextMode = Password时,ASP.NET文本框大小不同
我有一个登录页面,页面上有几个文本框,其中一个模式设置为“密码”。 此页面之前有效,但我们最近注意到(自IE7更新以来)指定为密码文本框的文本框不像页面上的其他文本框那样宽。 如果我删除TextMode =“密码”,文本框会resize以匹配其他文本框。
当使用IE开发人员工具栏显示页面时,我检查了页面上的奇怪现象,但一切看起来都不错。
文本框代码非常基本:
Username Password
我发现另外一个人在网上询问这个问题并通过将css应用到页面上的所有输入控件来修复它,但我还没有设法让它工作。
确保所有控件大小相同的最佳方法是通过样式(内联或css)。
我发现如果你使用以下CSS:
input, select { font-family: sans-serif; }
这将使文本和密码框的宽度相同。 font-family不必是sans-serif,但必须定义它。
这可能是一个更好的解决方案,因为它似乎通过在CSS中使用显式宽度来解决问题而不是对其进行创可。 您现在可以使用通用字体系列来使用浏览器的默认字体设置,或者如果您使用了用于页面的特定字体,则可以使用explcit。
如果您为文本框提供Width =“”属性,它可能会有所帮助。 这应该迫使他们在宽度方面匹配,即使他们有不同的文本模式。
如果为TextBox.Columns属性(映射到属性)指定值(如20),它们将匹配。 如果要使用CSS,则应尽量避免使用内联样式(TextBox.Width属性创建)。
您可以尝试将所有文本框的Width属性设置为相同。 150将是一个很好的价值。
我认为当您将大小指定为“列”时,为密码类型和非密码类型的文本框设置不同的宽度是正常的,因为文本框的宽度是通过乘以字体中最大字符的宽度来计算的(按要求的列数说“m”)。
当密码时,最大的字符总是子弹(所有字符都是子弹),因此宽度不同(显然使用比例字体时)。 要解决此问题,请以像素而不是列指定宽度,即:style =“width:250px;” (或使用非比例字体)。
我最近遇到了这个问题与Internet Explorer 11。我在这里尝试了一切,没有任何效果,但后来偶然发现了这篇文章。 为我解决的是这样做:
User Name: Password:
我必须放入style="width: 200px;"
直接进入asp:TextBox
标签或IE11中的大小不匹配。
希望能帮助别人
- 找不到类型或命名空间名称“ObservableCollection”
- .net core 1.0 visual studio引用外部dll
- 在C#中使用JSON WCF服务
- 使用C#将字符串转换为datetime
- 如何在动态创建的ASP.net控件中动态创建ASP.net控件
- .net核心中的GZIP无法正常工作
- 如何更正“qual.employee_id = recruitment.employee_id”中的错误“无法将类型’int’隐式转换为’string’”; “?
- asp.net core 2.0中System.Web.Hosting.HostingEnvironment.RegisterObject的替代方案
- 从ASP.NET 5控制器VS 2015获取wwwroot文件夹路径