【发布时间】:2020-08-24 13:37:21
【问题描述】:
编辑:似乎简单的解决方案是将#menu div 从容器中取出,但从我刚刚教授 css-tables 的方式来看,我认为将它放在容器中并给它会更有意义它是自己的行。我仍然不明白为什么这不起作用。
我正在学习如何使用 CSS 和 HTML 在表格中排列我的页面,但遇到了一个我不明白的奇怪问题。
我希望#menu div 独立成一行并延伸到标题的长度。它做得非常完美,但是当我在它下面添加一个新行时,我的 #content 和 #sidebar div 我也想拉伸到标题的长度,#menu 宽度被切断,#content 和 #sidebar div也不要像我希望的那样一直水平伸展。
如果听起来令人困惑,只需预览代码,我想要做什么应该很明显。
我觉得我缺少一些简单的东西。我试图在不使用绝对定位但严格使用表格布局的情况下做到这一点。
谁能看到我在这里做错了什么?
提前致谢。
html, body {
margin: 0;
}
header {
height: 200px;
margin: 10px 10px 0px 10px;
background-color: green;
}
#tablecontainer {
display: table;
border-spacing: 10px;
width: 100%;
}
.row {
display: table-row;
}
#menu {
display: table-cell;
background-color: green;
padding: 60px;
vertical-align: top;
}
#sidebar {
display: table-cell;
background-color: green;
vertical-align: top;
width: 50%;
}
#content {
table-cell;
background-color: green;
vertical-align: top;
width: 50%;
}
footer {
background-color: green;
height: 200px;
margin: 0px 10px 10px 10px;
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
<header>
sdf Lorem ipsum
</header>
<div id="tablecontainer">
<div class="row">
<div id="menu">sdf Lorem ipsum dolor sit amet,</div>
</div>
<div class="row">
<div id="sidebar">sdf Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. sdf Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Except
</div>
<div id="content">sdf Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
</div>
</div>
</div>
<footer>asdas</footer>
</body>
</html>
【问题讨论】:
-
在 CSS 中的
#comment {...},你的意思是写display: table-cell而不是table-cell? -
谢谢@GalaxyCat105,我做到了。这解决了第二行宽度的一个问题,但菜单仍未正确展开。嗯……
-
Width: auto;将 div 拉伸到其完整的父空间上。使用Width: 100%;,您会在使用父宽度时遇到问题,然后将填充和边距放在顶部。意味着您将获得滚动条。
标签: html css css-tables