Multiline Textbox的默认字体与单行Textbox不同?

GLP*_*GLP 5 asp.net fonts textbox

我的页面中有几个Textbox控件.有些是多线的,有些是单线的.我注意到多行和单行文本框之间的默认字体是不同的.谁知道为什么?如何使它们成为相同的字体?谢谢.

这是样本:

   <asp:TextBox ID="TextBox1" runat="server">hello</asp:TextBox>
   <asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine">hello</asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

TextBox1的字体是MS Shell Dlg,TextBox2的字体是等宽字体.

Tim*_*ora 8

CSS的样式选择器

<style type="text/css" media="screen">

    /* match all single/multiline textboxes (IE 7+ for the attribute selector) */
    TEXTAREA, INPUT[type="text"]
    {
        /* font size, line height, face */
        font: 11px/1.5 "Trebuchet MS", Arial, Verdana, sans-serif;

        /* useful for supporting 100% width inclusive of padding and border */
        box-sizing: border-box; 
    }

</style>
Run Code Online (Sandbox Code Playgroud)

请注意,该media属性不是必需的,但输入字段的行为可能会因渲染目标(例如打印机与屏幕)而有很大差异.对于屏幕媒体,风格应该鼓励输入; 对于打印,样式可能不同,因为打印页面(显然)不可编辑.

至于"为什么"默认字体不同,TEXTAREAs历史上使用列和行来调整大小.固定宽度字体(如等宽字体)可以控制一行中的字符数,这可能是大多数浏览器TEXTAREA默认使用固定宽度字体的原因.

通过主题分配CSS类(仅限ASP.NET)

在主题文件中,按以下方式添加条目:

<asp:TextBox runat="server" CssClass="myClassName"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

这将把"myClassName"类应用于主题适用的所有文本框.