【发布时间】:2011-06-10 07:35:03
【问题描述】:
我用 HTML 创建了一个简单的页面,效果很好。但是当我将它导入 ASP.NET 时,页面设计变得混乱。
这是我的Site.Master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Elite.WUI.Site" %>
<!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></title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<form id="form1" runat="server">
<asp:ContentPlaceHolder ID="headerCPH" runat="server">
<div id="header">
<h1>WUI</h1>
</div>
<hr />
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="navigationCPH" runat="server">
<div id="navigation">
<ul>
<li>Home</li>
<li>Users</li>
<li>Campaigns</li>
<li>Settings</li>
</ul>
</div>
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="contentCPH" runat="server">
</asp:ContentPlaceHolder>
</form>
</body>
</html>
我的样式表styles.css
#navigation
{
float: left;
border: 1pt solid;
}
#navigation ul
{
list-style-type: none;
padding: 5 5 5 5;
margin: 0;
}
#content
{
margin-left: 9%;
border: 1pt solid;
padding-left: 5;
}
以及从母版页派生的实际页面
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="ABC.aspx.cs" Inherits="Elite.WUI.ABC" %>
<asp:Content ID="Content3" ContentPlaceHolderID="contentCPH" runat="server">
<div id="content">
<p>Test content</p>
</div>
</asp:Content>
这是它在 Firefox (ver 3.6) 中的显示方式
正如您所见,border、list-style-type 属性可以正常工作,但 margin 不能正常工作。谁能告诉我我做错了什么?我已经在谷歌浏览器中测试过,但同样的问题。当没有 ASP.NET 即简单的 .html 文件时,HTML 和 CSS 可以正常工作。
【问题讨论】:
-
您是否查看过使用 Firefox 中的 FireBug 或 Chrome 中的元素检查器的页面?看看派生的 CSS 状态是什么,我相信这会为您指明正确的方向。
-
提示:通过在浏览器中执行“查看源代码”来查看最终代码。实际标记可能与您预期的不同。
-
我在 Firebug 和实际源代码(在浏览器中)都看过它,但我没有发现任何不正确的地方:(
-
有点不相关,我可能错了,但
<asp:Content>标记在母版页中不应该为空,因为它的内容可以在派生的页面中被覆盖吗? -
@Dan:如果你说的是
asp:ContentPlaceHolder,我只想在派生页面中覆盖最后一个 contentPlaceHolder,所以我把它留空了。
标签: asp.net css css-selectors