2011-12-08 25 views
5

我在我的頁面中有幾個Textbox控件。有些是多線,其他是單線。我注意到多行和單行文本框之間的默認字體是不同的。任何人都知道爲什麼?我如何讓他們成爲相同的字體?謝謝。多行文本框的默認字體與單行文本框不同?

下面是示例:

<asp:TextBox ID="TextBox1" runat="server">hello</asp:TextBox> 
    <asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine">hello</asp:TextBox> 

的字體爲TextBox1的是MS外殼DLG,對於TextBox2中的字體是等寬。

回答

7

爲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> 

注意,不需要media屬性,但輸入字段的行爲風格選擇可以變化很大,取決於渲染目標(例如打印機相對於屏幕)。對於屏幕媒體,風格應該鼓勵投入;對於打印,由於打印頁面(顯然)不可編輯,樣式可能不同。

至於「爲什麼」的默認字體是不同的,TEXTAREAs在歷史上使用的列和行大小。固定寬度的字體(如等寬字體)可以控制一行中的字符數,這可能是爲什麼大多數瀏覽器在默認情況下使用固定寬度的字體作爲​​3210。

通過主題指定一個CSS類(ASP.NET只)

在你的主題文件,添加以下方式的條目:

<asp:TextBox runat="server" CssClass="myClassName"></asp:TextBox> 

這將適用於類「myClassName 「應用於主題適用的所有文本框。

+0

是否有可能將整個解決方案的主題應用而不是將其添加到每個頁面? – GLP

+0

@GaolaiPeng - 是的,它可以通過web.config。請參閱此鏈接以獲取特定的語法:http://msdn.microsoft。com/en-us/library/0yy5hxdk.aspx –

+0

非常感謝。它工作得很好。 – GLP

0

如果您使用的是樣式表,你需要確保你沒有一個特定的字體設置爲文本區域,該區域的單行文本框不同。它看起來類似於以下,

text area 
{ 
    font-size:10px; 
} 
1

設置字體的樣式,: CSS:

<style type="text/css"> 
    .text 
    { 
     font-family:Verdana; 
     font-weight:bold; 
    } 
</style> 

HTML:

<asp:TextBox CssClass="text" ID="TextBox1" runat="server" Height="196px" TextMode="MultiLine" 
    Width="271px"></asp:TextBox> 

祝你好運!

+2

這會工作,但放置的CssClass每個文本框的聲明是不是需要平時多碼。通常,這可以僅使用CSS標籤選擇器和/或ASP.NET主題進行集中定義。另外,如果在整個應用程序中聲明瞭很多文本框,標籤本身的內聯高度和寬度將很難保持。 –

+0

+1絕對正確。 –

+0

你介意告訴我如何使用CSS標籤選擇器和/或ASP.NET主題嗎?我沒有任何線索。我們在許多不同的頁面上都有很多文本框(單行或多行)。 – GLP