飞龙asp.net调用dreamweaver的css样式表失效失控解决办法
开发人员用asp.net 调用dreamweaver做的css/样式表或js失效问题,估计很多人头疼。网页设计或网站ui人员负责做的静态页面(一般div+css设计)在dreamweaver显示很正常没有问题,但交给asp.net程序开发人员转换为.aspx格式时,发现css样式或javascipt失效或失控。怎么回事,asp.net的css和dreamweaver的html中的css不一样?html下面正常显示的css样式在asp.net里为什么没有显示?飞龙经过考察,整理出asp.net调用dreamweaver的css样式表失效或失控解决办法,本文原创修订地址:http://feilong.org/aspnet-dreamweaver-css ,供朋友参考。
一、首先请程序开发的同事检查一下visual studio net或说asp.net建立的文档属性,是否和网页设计同事用dreamweaver建立的"默认文档类型"和"默认编码"是否完全一致?不信?看看他们各自的含义吧!doctype是document type(文档类型)的简写,用来指定页面所使用的xhtml(或者html)的版本。要想制作符合标准的页面,一个必不可少的关键组成部分就是这个doctype声明。只有确定了一个正确的doctype,xhtml里的标识和css样式才能正常生效。看到了吧,和css样式表性命攸关。
所以朋友们首先要注意html的版本,是 html 4.01 transitional,还是xhtml 1.0 transitional?还是html 4.01 strict?其次要注意网页编码字符集,是charset=utf-8 还是charset=gb2312?。飞龙建议大家比照asp.net和dreamweaver的网页文件开头部分,仔细分析!同理,css样式表或javascipt文件都要用同样的类型和编码保存。
二、什么是目前最好最适合的html的版本和网页编码呢?
飞龙建议大家用稳妥的html 4.01 transitional和世界通用的utf-8编码,当然其他也可,关键是两者保持一致。具体在dreamweaver里是这样:
<!doctype html public "-//w3c//dtd html 4.01 transitional//en"
"http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>飞龙讨论net和dreanweaver的css样式不一致</title>
</head>
<body>
</body>
</html>
三、asp.net调用 css 样式表一般方法是:在<head>与</head>之间加入这段代码: <link href="文件名.css" mce_href="文件名.css" rel=stylesheet> 。注意两点,一是href后引号内连接css文件路径最好用绝对路径;二是建议把css做为一个单独文件放到网站根目录下调用。最后在具体引用或说套用css样式时:在控件的cssclass属性中加入css文件,格式为:<asp:label id="lbl" cssclass="mystyle.css" />,对于这个网上资料说法飞龙不做表态。
四 做好一个html页面css样式表现正常,但把这个页面改后缀为aspx再浏览就不正常了。如果把样式直接写到页面中,再浏览页面显示正常了。这是为什么?产生原因是因为visual studio 2005中开发设计网页,修改css样式表保存后编码发生改变使得css失效。有人说可以在web.config文件中添加如下代码: <globalization requestencoding="utf-8" responseencoding="utf-8" /> 。
五、有人发现asp.net2005页面文件调用css样式如果有bug,也导致样式不会被应用。
如果css样式注释中文有"间"字,那么从这段注释到下段注释之间的样式不会被应用。样式表里面有一个注释 /* 间 */ ,要把这个"间"字去掉,或换成其它字。如果把这个页面改成.asp 或.htm后缀格式,也不会出现这种情况。作者笑称这是asp.net 2005 的无间道!参考:asp.net 2.0中css失效解决方案原始出处:http://blog.csdn.net/net_lover/archive/2007/08/27/1760521.aspx;http://www.flywe.net/article.asp?id=552 哈哈!
六、在visual studio 2005里面,打开项目点右键->添加asp.net文件夹->主题。为主题重取名字,如:skincss;再到根目录下的配置文件(web.config),如没有该文件就新建一个。在配置文件代码中加上:<pages theme="first"></pages>,注意放在<system.web></system.web>里面。此法未尝试。