不知何故,CSS出错了。
在我的CSS课程中,maincontent
部分定义为
.page {
background: #B5AAAA; /* Hoof color */
margin: 20px auto 0px auto;
}
.main {
position: absolute;
/* I commented this out because it is new to me.
I was not sure if it was causing my issues or not.
min-height: 420px;
min-width: 960px;
*/
top:150px;
}
.maincontent {
background-color: #F2E6E6; /* Almost white, just a tad on the maroon side */
position:absolute;
border: 1px solid #4D0000;
overflow: auto;
left:110px;
top:0px;
height: 500px;
width:100%;
}
删除Site.Master的HTML中所有不相关的部分,我还剩下这个:
<body>
<form runat="server">
<asp:scriptmanager runat="server"></asp:scriptmanager>
<div class="page">
<div class="main">
<div class="maincontent">
<asp:ContentPlaceHolder ID="MainContent" runat="server"/>
</div>
</div>
</div>
</form>
</body>
以下是继承它的页面部分:
<asp:Content ID="mainContent" ContentPlaceHolderID="MainContent" runat="server">
<table border="1" >
... // lots of rows and columns
</table>
...
那么,是否有人理解为什么我在下面的表格宽度上看到 102px ?
我希望能够将剩下的空间填充到右边。
答案 0 :(得分:3)
问题是主要内容div
不知道应该是100%的内容,它将是其最近position:relative
(或{{1}大小的100%父母。
所以设置
absolute
答案 1 :(得分:1)
当您绝对定位某些内容时,浏览器需要知道将其绝对定位的内容。如果没有创建positining context,它将简单地将它定位在body上。您需要为父容器创建一个新的定位上下文,在本例中为“page”
.page {
position: relative;
width: 100%;
}
编辑:
避免使用绝对定位并依赖布局的边距会更安全:
.page {
background: #B5AAAA; /* Hoof color */
margin: 20px auto 0px auto;
position: relative;
width:100%;
}
.main {
margin-top: 150px;
}
.maincontent {
background-color: #F2E6E6; /* Almost white, just a tad on the maroon side */
border: 1px solid #4D0000;
margin-left: 110px;
}