HTML编写页面, 1.左侧一个侧边框div;右侧从上到下依次排列五个盒子; 2.右侧五个盒子的宽度刚好填充满页面,前四个盒子等高,第五个盒子是第4个盒子的两倍;每个盒子保有一定间距,且总体高度与左侧状态栏同高 3.右侧第四个(父)盒子有三个子盒子,子盒子与父盒子同高,宽度从左到右依次为较大,较小,中等;子盒子与父盒子保有一定间距 4.右侧第五个盒子有两个均等分的子盒子,子盒子与父盒子保有一定间距
时间: 2023-07-16 19:15:19 浏览: 138
可以使用 HTML 和 CSS 实现这个页面的布局。以下是一个简单的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>页面布局示例</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
display: flex;
height: 100vh;
flex-direction: row;
}
.sidebar {
width: 20%;
background-color: #eee;
border-right: 1px solid #ccc;
padding: 20px;
}
.container {
display: flex;
flex-direction: column;
width: 80%;
padding: 20px;
}
.box {
margin-bottom: 20px;
flex-grow: 1;
background-color: #ddd;
padding: 20px;
}
.box:last-child {
flex-grow: 2;
}
.box:nth-child(4) {
display: flex;
flex-direction: row;
align-items: stretch;
}
.box:nth-child(4) .sub-box {
flex-grow: 1;
margin-right: 20px;
background-color: #ccc;
padding: 10px;
}
.box:nth-child(4) .sub-box:last-child {
margin-right: 0;
}
.box:nth-child(5) {
display: flex;
flex-direction: row;
align-items: stretch;
}
.box:nth-child(5) .sub-box {
flex-grow: 1;
margin-right: 20px;
background-color: #bbb;
padding: 10px;
}
.box:nth-child(5) .sub-box:last-child {
margin-right: 0;
}
</style>
</head>
<body>
<div class="sidebar">
侧边栏
</div>
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box">
<div class="sub-box" style="flex-basis: 50%;">较大</div>
<div class="sub-box" style="flex-basis: 25%;">中等</div>
<div class="sub-box" style="flex-basis: 25%;">较小</div>
</div>
<div class="box">
<div class="sub-box"></div>
<div class="sub-box"></div>
</div>
</div>
</body>
</html>
```
解释一下代码:
1. `body` 元素设置为 `display: flex`,使其成为一个 flex 容器,子元素排列方式为 `flex-direction: row`,即横向排列。
2. 左侧的侧边栏使用一个 `div` 元素,并设置其宽度为 20%,背景颜色为灰色,右侧和下方分别带有一像素的灰色边框和 20px 的内边距。
3. 右侧的容器使用一个 `div` 元素,并设置其宽度为 80%。由于默认情况下 `div` 元素的高度为内容的高度,因此可以使用 `flex-direction: column` 让子元素纵向排列。
4. 右侧的五个盒子使用 `div` 元素,并设置其为灰色背景颜色,下方带有 20px 的内边距和 20px 的外边距。其中第五个盒子的高度为第四个盒子的两倍,可以通过设置第五个盒子的 `flex-grow` 属性为 2 来实现。
5. 第四个盒子的三个子盒子使用 `div` 元素,并设置其为灰色背景颜色、20px 的内边距和 10px 的外边距。父盒子使用 `display: flex`,让子元素横向排列,并使用 `align-items: stretch` 让子元素和父元素等高。子盒子的宽度使用 `flex-basis` 属性设置。
6. 第五个盒子的两个均等分的子盒子也使用 `div` 元素,并设置其为灰色背景颜色、20px 的内边距和 10px 的外边距。和第四个盒子一样,父盒子使用 `display: flex`,让子元素横向排列,并使用 `align-items: stretch` 让子元素和父元素等高。
阅读全文