今天一个网友询问:在 ASP.NET 2.0中Response.Write出来的内容为什么与控件直接赋值的结果不同?究其原因就是在ASP.NET 2.0里默认使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">文档定义模型,这个dtd的规则与以前的不同,因此,许多以前写的代码在新标准下无法正常运行。首先:这个规范要求<html>必须是最顶级标记(Firefox里可以在它之前写文字内容,养成好的习惯,最好不要这样),样式里面需要加单位,例如200px。尤其在使用脚本对对象设置样式时也要如此。下面的这段代码在该规范下显示的结果是不同。第一个div不能显示成100*100的方形块。
<%
@ Page Language
=
"
C#
"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > CSS样式 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div style ="background: #D0D0D1; width: 100; height: 100" >
< a href ="http://dotnet.aspx.cc/" > 【孟子E章】 </ a ></ div >
< div style ="background-color:Violet; width: 100px; height: 100px" >
< a href ="http://dotnet.aspx.cc/" > 【孟子E章】 </ a ></ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > CSS样式 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div style ="background: #D0D0D1; width: 100; height: 100" >
< a href ="http://dotnet.aspx.cc/" > 【孟子E章】 </ a ></ div >
< div style ="background-color:Violet; width: 100px; height: 100px" >
< a href ="http://dotnet.aspx.cc/" > 【孟子E章】 </ a ></ div >
</ form >
</ body >
</ html >