学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> ASPNET >> ASP.NET 2.0配合MasterPage的优化CSS


ASP.NET 2.0配合MasterPage的优化CSS


  ASP.NET 2.0 中增加了内建的 MasterPage 的支持,这对我们来说是一个很大的便利。然而经过一段时间的使用,我发现 MasterPage 并不是那么完美:嵌套的 MasterPage 不能支持设计时界面,以及下面要提到的Content Page 中增加 CSS 的问题。 

  通常,在没有 2.0 之前,我们在页面里要增加一个 CSS 引用的语法如下:

<link rel="stylesheet" href="css/test.css" />

  原本是很平常的做法。但是在一个 MasterPage 的子页面中,出现了一个很尴尬的局面,就是:我们该把上述代码放到什么位置?

  因为 MasterPage 的具体内容页面中,只能定义一个个的 <asp:Content /> 标签的内容。我们按照通常的做法在 aspx 里面无法对页面的 <header/> 内容进行控制。而这个 <link/> 标签又必须放在 <header/> 内。我试验过在 <asp:Content /> 内部加入这行代码,但是会提示出错的。

  同时,我们也无法在 MasterPage 的 <header/> 内部放好一个 ContentPlaceHolder 用于将来放入 CSS 的引用代码。

  因此我的做法是定义了一个 helper 类如下:

static public class ControlHelper
{
 static public void AddStyleSheet(Page page, string cssPath)
 {
  HtmlLink link = new HtmlLink();
  link.Href = cssPath;
  link.Attributes["rel"] = "stylesheet";
  link.Attributes["type"] = "text/css";
  page.Header.Controls.Add(link);
 }
}

  这样,在具体页面,我们就可以通过如下代码添加 CSS 引用:

protected void Page_Load(object sender, EventArgs e)
{
 ControlHelper.AddStyleSheet(this.Page, "css/projectPage.css");
}

  并且,这个代码支持在具体内容页面,或者一个嵌套的 Master Page 中使用。

  说到这里也许有人会问,为什么要把 CSS 分开成这样来加载呢?有必要吗?我把所有页面的 CSS 定义到几个公共 CSS 文件里岂不是很好?

  其实,熟悉 web 标准的 HTML 制作的朋友一定知道,在比较完美的状态下,页面的 html 和用于表现的 CSS 应该彻底分离。而我们基于 web 标准的设计,通常是先做出一个 Master Page 中各个框架 div 的定位代码,以及 header,footer 部分的修饰代码。这些是每个内容页面都要用到的,会放在一个统一的 CSS 里面。其他的具体内容页面,每个页面又会有各自不同的内容的布局,修饰样式,因此我把每个具体页面特定的部分放在它自己的 CSS里。这样就形成了一个按照 Master Page 的实现层次(可嵌套),逐层合并的 CSS 模型。其好处是实现了每个 CSS 文件的职责分离,更容易理解和维护。
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"ASP.NET 2.0配合MasterPage的优化CSS"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 ASP.NET 2.0配合MasterPage的优化CSS 相关内容
Google搜索中 ASP.NET 2.0配合MasterPage的优化CSS 相关内容
雅虎中 ASP.NET 2.0配合MasterPage的优化CSS 相关内容
Sogou搜索中 ASP.NET 2.0配合MasterPage的优化CSS 相关内容

相关软件 最新回复帖子:

·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效
·用Photoshop通道将模糊肖像照片清晰化


  相关软件 ASP.NET 2.0配合MasterPage的优化CSS相关文章
ASP.NET 2.0移动开发入门之基础 ASP.NET2.0服务器控件之Render方法
ASP.NET2.0服务器控件之创建自定义控件 ASP.NET 2.0服务器控件开发之基本概念篇
ASP.NET Web应用程序的简单AJAX实现 ASP.NET 2.0的新增服务、控件与功能
ASP.NET Atlas简单控件介绍之界面控件 让ASP.NET简便使用SCRIPT
ASP.NET 2.0 中的异步页功能应用 ASP.NET Atlas简单控件介绍之四大控件
ASP.NET Atlas简单控件介绍之两个基类 ASP.NET Atlas对JavaScript的扩展
ASP.NET服务器控件编程之热身运动 体验ASP.NET 2.0 中的异步页功能
ASP.NET入门随想之代言人 ASP.NET 2.0站点登录、导航与权限管理
开发基于ASP.NET的自定义日志系统 ASP.NET服务器控件编程之卷首语
在ASP.NET 2.0中实现异常管理 在ASP.NET中自动给URL加上超链接