.skin
と.css
asp.netの主な違いは何ですか?
.skin
IDE の新しい機能拡張です。私はと働いてい.css
ます。その中で利用できるのは.skin
、.css
ありがとう、サジ
スキン ファイルでは、asp.net コントロールのプロパティを設定できます。
例えば、
<asp:TextBox runat="server" Width="200"/>
アプリケーション内のすべての TextBox コントロールの幅は 200 になります。
名前を付けて、好きなコントロールだけにスキンを適用するように設定できます。たとえば、
<asp:TextBox SkinID="MultiLineTextBox" runat="server" TextMode="MultiLine" Height="240"/>
Web ページに TextBox コントロールを追加すると、SkinID を次のように「MultiLineTextBox」に設定できます。
<asp:TextBox runat="server" SkinID="MultiLineTextBox"/>
したがって、TextMode を MultiLine として継承し、Height を 240 として継承します。
スキンを使用するには、App_Themes フォルダーの下のアプリケーションにテーマを追加する必要があり、そこにスキン ファイルを追加します。ページでこのテーマを使用するには、ページの EnableTheming プロパティを true に設定し、StylesheetTheme または Theme を設定する必要があります。あなたのテーマの名前。このプロパティは、構成ファイルで設定することもできます。
ページaspxでテーマを設定し、
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" EnableTheming="true" StylesheetTheme="Your Theme Name" %>
web.configでテーマを設定し、
<configuration>
<system.web>
<pages styleSheetTheme="Your Theme Name"></pages>
</system.web>
</configuration>
これら 2 つのことが実際に行うことに関しては、かなりの違いがあることに注意してください。.skin ファイルに設定されたすべてのプロパティは、すべてのページ コントロールにコピーされます。カスケード スタイル シートを使用する利点は、情報が一度読み込まれてキャッシュされることです。(複数の Web ページに適用できます。) スキン ファイルは、ページがレンダリングされるたびに、スキン ファイルに設定されたすべてのプロパティを影響を受けるすべてのコントロールとマージする必要があるため、ページの肥大化を引き起こす可能性があります。
さらに、ASP.NET テーマ .skin ファイルの既定の動作は、影響を受けるコントロールのプロパティをオーバーライドすることです (これは予期しない動作になる可能性があります)。たとえば、Width
ファイル.skin
内のすべての ASP:Labels のプロパティを設定すると、スキン ファイルを使用するすべての ASP:Labels のプロパティは、コントロールの個々の設定に関係なくWidth
、ファイルのプロパティに設定されます。この動作を回避するには、ASP.NET StyleSheetTheme を使用して、コントロール レベルのプロパティがグローバル .skin プロパティをオーバーライドできるようにします。.skin
Width
CSS でも Width などのプロパティを設定できます。CSS では設定できないプロパティを設定できること以外に、.skin ファイルが必要なものがいくつかあります。
ページ上のすべての asp:Label コントロールを青色にする必要がある例を考えてみましょう。asp:Label は、実際には非表示の div 内にあるスパン内のテキストです。これが、BackColor のようないくつかのプロパティをこの asp:Label に設定できる理由であり、標準のラベル コントロールに 'BackColor' プロパティがない理由です。
したがって、CSS を使用してすべての ASP ラベルにフォントの色を設定しようとすると、
それから何か
Label {
color: Blue;
}
動作しないでしょう。一方、書き込み可能なスキンファイルを使用すると、
<asp:Label runat="server" ForeColor="Blue"></asp:Label>
これにより、すべてのラベルが青色に設定されます。