今天一个网友询问:在 ASP.NET 2.0中Response.Write出来的内容为什么与控件直接赋值的结果不同?究其原因就是在ASP.NET 2.0里默认使用http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">文档定义模型,这个dtd的规则与以前的不同,因此,许多以前写的代码在新标准下无法正常运行。首先:这个规范要求必须是最顶级标记(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>
本文探讨了ASP.NET2.0中使用XHTML过渡性DTD导致的CSS样式解析问题,特别是未指定单位的宽度和高度属性无法正确显示的情况。
2927

被折叠的 条评论
为什么被折叠?



