ASP.NET/CSS

維基教科書,自由的教學讀本

直接寫在需要樣式控制的控件里[編輯]

例如:

 <div style="border:#ff6100 1px solid"></div>

頁面內可賦給多個控件的class或者cssclass[編輯]

放置在<head></head>中。例如:

 <style type="text/css">
   中间写样式属性:比如页面有几个name为textinfo的控件可以写成 
   #textinfo{border:#ff61001pxsolid;} 
   也可以写成.textcss
   但是需要的空间每个都要在class="textcss"才有效
 </style>

對於使用母版頁的aspx文件,可以專門在母版頁的<head></head>中定義內容佔位控件。例如:

@Page Language="C#" 
         MasterPageFile="~/TimeTrakkerMaster.Master" 
         AutoEventWireup="false" 
         CodeBehind="OpenEntries.aspx.cs" Inherits="TimeTrakkerWeb.OpenEntries" 
         Title="Open Entries - Time Trakker" %>
<asp:Content ID="Head" ContentPlaceHolderID="head" runat="server">
<style type="text/css">
    #itemtemplate
    {
        border-bottom: dashed 1px teal;
        padding: 9px;
        padding-left: 30px;
    }
</style>
</asp:Content>
<asp:Content ID="Content" ContentPlaceHolderID="Content" runat="server">
...
</asp:Content>

作為主題theme的一部分自動添加css文件[編輯]

ASP.NET 2.0 中新增加了 Theme 的功能。Theme的實現包括CSS、Skin。

  1. 在 Web 項目中創建 App_Themes 目錄。它是預定義的目錄,ASP.NET 2.0 會自動識別其目錄下的 Theme 。
  2. 在 App_Themes 目錄創建子目錄。每個子目錄就是一個theme
  3. 為 App_Themes 下的每個子目錄添加 Skin 文件,如my1.Skin。ASP.NET 2.0 會自動分析每一個 Skin 文件,在這裏的命名只需要為了開發時方便分類。
  4. 為 App_Themes 下的每個子目錄添加 CSS 文件。ASP.NET 2.0會自動將每一個 CSS 文件添加到每一個使用此樣式的頁面中去。

在子頁面的page 頁面指令中可以指明使用哪個theme。例如: <%@ Page Theme="OrangeTheme">

如果想到在整個網站應用某個Theme 就需要在 Web.Config 定義。

<configuration>  
  <system.web>  
    <pages theme="OrangeTheme" />  
  </system.web>  
</configuration>

這樣的定義相當於默認一個 Theme 在所有網站文件中,使用時仍可以為每個頁面定義 Theme 。

如果想用編程方式定義 Theme 必需在 Page_PreInit事件中處理,如下:

void Page_PreInit(object sender, EventArgs e)  
{  
    Page.Theme = Request["ThemeName"];  

  //  如果需要以编程的方式为 Page 载入 MasterPage 文件,也需要在此定义。  
    this.MasterPageFile = Request["MasterPageFile"];  
}

靜態添加css文件[編輯]

首先在aspx頁面中的head標記中加入:

 <link rel="stylesheet" href="pagecss.css" type="text/css" />

更合理的是採用url動態解析方式:

 <link rel="stylesheet" href=<%# Page.ResolveUrl("~/mycss/pagecss.css") %> type="text/css" />

這需要把head tag包括runat="server"。並在母版頁的Master Page的Page_Load函數中增加一行:

 Page.Header.DataBind();

動態變換CSS文件[編輯]

仍然需要在head標記中添加標記聲明:

 <link id="MyStyleSheet" rel="stylesheet" type="text/css" runat="server" />

在要更換CSS的頁面中,使用如下js代碼

 void fuction
 {

   MyStyleSheet.Attributes.Add("href","/css/flostyle.css")

 }