20080409 - 为 ASP.NET2.0 模板页的 Content 页面添加 CSS 样式

 
Asp.Net 2.0 中为支持页面内容重用而引入了 Master Page 和 Content Page,Master Page 类是模板中页面公共部分,Content Page 为页面差异部分。

从实现上来说,MasterPage 类是从 UserControl 类派生而来,因而具有容器功能。当页面被请求,在 Page 类的 Init 事件发生前,MasterPage 页控件被加载到 Content Page 中。

可以在 MasterPage 页中加载页面的 CSS 样式表,或者 Asp.Net 2.0 中会加载 App_Themes 中的 CSS 文件,基本能满足对样式的定义需求。

但 Content 页面却失去了加载CSS的能力。因为 CSS 需要在页面的 head 部分加载,难道需要把差异化很大页面的 CSS 都统一写到一个 CSS 文件中,在打开页面时统一加载吗?

不用。方法如下:

可以在 content 页使用 HtmlGenericControl 动态调整 DOM 结构,使得两种类型内嵌和外链的样式表文件都能支持。

内嵌CSS支持
  HtmlGenericControl node = new HtmlGenericControl("style");
  node.Attributes.Add("type", "text/css");
  node.InnerText = style;
  Page.Header.Controls.Add(node);

外部样式支持
  HtmlLink link = new HtmlLink();
  link.Attributes.Add("type", "text/css");
  link.Attributes.Add("rel", "stylesheet");
  link.Attributes.Add("href", cssUrl);
  Page.Header.Controls.Add(link);

 

转载于:https://www.cnblogs.com/likun/archive/2008/04/09/1144589.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值