CSS--两列网页布局,三列布局和多行多列布局
两列网页布局
两列网页布局实验
先将一个未运用浮动效果的网页结构写出来
<style>
header{
/* 给页眉设置宽高和样式 */
width:1000px;
height: 40px;
background-color: gray;
border: 3px brown solid;
margin-bottom: 5px;
}
article{
width:1000px;
height: 600px;
background-color: grey;
border: 3px yellow solid;
}
footer{
/* 给页脚设置宽高和样式 */
width:1000px;
height: 40px;
background-color: gray;
border: 3px brown solid;
margin-top: 5px;
}
#one{
width:600px;
height: 500px;
background-color: greenyellow;
border: 3px black solid;
}
#two{
width:250px;
height: 350px;
background-color: greenyellow;
border: 3px black solid;
}
</style>
<body>
<header></header>
<article>
<section id="one"></section>
<section id="two"></section>
</article>
<footer></footer>
</body>
这是一个还没有运用浮动效果的一个简单网页结构 ,具备了一个网页的基本结构,页眉,页脚,内容盒子,和侧边栏盒子。
用浮动效果将内容盒子和侧边栏盒子移动成两列网页样式
#one{
width:600px;
height: 500px;
background-color: greenyellow;
border: 3px black solid;
/* 左浮动 */
float: left;
/* 上,左外边距调整 */
margin-top: 40px;
margin-left: 40px;
}
#two{
width:250px;
height: 350px;
background-color: greenyellow;
border: 3px black solid;
/* 右浮动 */
float: right;
/* 下,右外边距调整 */
margin-right: 50px;
margin-top: 40px;
}
就这样一个简单的两列式网页就诞生了
两列网页布局习题
简单的一个两列网页布局我们已经学会了,那么如果想要做出如下图一样效果,要怎么做呢?
<style>
nav ul{
height:30px; /*给父盒设置高度,避免高度塌陷影响其他兄弟盒*/
background-color: aquamarine;
}
nav ul li{
/* 右外边距设置 */
margin-right: 20px;
/* 导航栏内容左浮动 */
float:left;
}
#contact{
width: 220px;
height: 160px;
background-color: pink;
border: 2px black solid;
/* 用固定定位制作一个浮动的小盒子 */
position: fixed;
/* 向左偏移至距离浏览器窗口顶端1100px */
left:1100px;
/* 垂直向上偏移至距离浏览器窗口顶端500px */
top:500px;
}
section{
/* width: 100%; */
background-color: rgb(228, 222, 229);
border: 20px black solid;
}
article{
/* 宽和高的单位可以用px 也可以用%。由于在这里用px为单位比较繁琐,所以用了%为单位 */
width: 70%;
height: 500px;
background-color: rgb(240, 199, 199);
border: 2px black solid;
float: left;
}
aside{
width: 25%;
height: 500px;
background-color: rgb(213, 244, 213);
border: 2px black solid;
/* 左浮动 */
float: right;
margin-right: 2%;
}
footer{
width: 100%;
height: 10%;
background-color: rgb(243, 192, 255);
border: 2px black solid;
}
</style>
</head>
<body>
<header>
<h1 align="center">第五人格</h1>
<p align="center">欢迎来到: <ins>第五人格</ins></p>
<hr>
<nav>
<ul type="none">
<li><a href="#">战绩</a></li>
<li><a href="#">排位</a></li>
<li><a href="#">匹配</a></li>
<li><a href="#">归宿</a></li>
</ul>
</nav>
</header>
<hr>
<main>
<section>
<article>
<h3>文章标题</h3>
<p>这里是文章的内容简介。<br>可以使用<br>标签进行换行。</p>
<br><br><br>
<img src="../CSS常用属性/第五图片.png" alt="文章配图" width="200" height="200">
<p>想了解第五人格:<a href="https://gdyfvccm.edu.cn/">点击这里</a></p>
</article>
<aside>
<h3>侧边栏</h3>
<p>侧边栏内容,如快速链接、广告等。</p>
<table border="1">
<tr>
<th>角色</th>
<th>链接</th>
</tr>
<tr>
<td>求生者</td>
<td><a href="角色A详情页.html">专业A详情</a></td>
</tr>
<tr>
<td>监管者</td>
<td><a href="角色B详情页.html">专业B详情</a></td>
</tr>
</table>
</aside>
<div style="clear: both;"></div>
</section>
<section id="contact">
<h4>联系我们</h4>
<form>
姓名:
<input type="text" id="name" name="name"><br>
邮箱:
<input type="email" id="email" name="email"><br>
<input type="submit" value="提交">
</form>
</section>
</main>
<hr>
<footer>
<p>版权所有 © 2024 第五人格官方</p>
</footer>
</body>
</html>
就这样通过浮动效果和固定定位我们就做出了一个两列式的网页啦!
三列网页布局
三列布局和两列布局非常相似(如下图):
我们来尝试用浮动的方法来实现上图的三列布局吧
三列布局实验
首先我们先把三列布局的基本结构写好
<body>
<header>网页页眉</header>
<section class="clear_ele">
<div id="div1">左侧边栏</div>
<div id="div2">右侧边栏</div>
<div id="div3">中间主区域</div>
</section>
<footer>网页页脚</footer>
</body>
对三列布局的骨架标签进行一个样式的设置,此时的盒子呈正常文档流排列
<style>
/* 给页眉设置宽高,背景颜色和样式 */
header{
width: 100%;
height: 30px;
background-color: orange;
border: 2px black solid;
text-align: center;
}
#div1{
width: 10%;
height: 800px;
background-color: red;
border: 3px black solid;
}
#div2{
width: 10%;
height: 800px;
background-color: blue;
border: 3px black solid;
}
#div3{
width: 75%;
height: 800px;
background-color: green;
border: 3px black solid;
}
footer{
width: 100%;
height: 30px;
background-color: orange;
border: 2px black solid;
text-align: center;
}
</style>
其次通过浮动来移动盒子
盒子1向左移动,盒子2向右移动。
#div1{
width: 10%;
height: 800px;
background-color: red;
border: 3px black solid;
float:left;
/* 盒子1向左浮动 */
}
#div2{
width: 10%;
height: 800px;
background-color: blue;
border: 3px black solid;
float:right;
/* 盒子2向右浮动 */
}
两个盒子一左一右,而盒子3向上填补浮层,但是盒子3的一部分被盒子1给覆盖住了,这时如果我们想要将盒子3完全展现出来并让盒子与盒子之间留有空隙,有两个方法:
1. 通过浮动,将盒子3进行左浮动,此时盒子3的左边缘和盒子1的右边缘紧贴着,如果想让盒子与盒子之间留有空隙,我们还需对盒子进行一个外边距的设置。
2. 可以直接对盒子进行一个外边距的设置,外边距值的设置要大于左右两个盒子本身的宽度。
注:两种方法达成的效果是一样的
#div3{
/* 第一种方法 */
width: 75%;
height: 800px;
background-color: green;
/* 注意:中间盒子的左右外边距,最好大于左右侧边栏的宽度 */
float: left;
margin-left: 2%;
margin-right: 2%;
border: 3px black solid;
}
#div3{
/* 第二种方法 */
width: 75%;
height: 800px;
background-color: green;
/* 注意:中间盒子的左右外边距,最好大于左右侧边栏的宽度 */
margin-left: 12%;
margin-right: 12%;
border: 3px black solid;
}
最后,为了防止父盒的塌陷问题,在代码的最后加上一个伪元素,然后用clear所有清除浮层的影响。(为了让大家看清楚这个伪元素的存在,这里对其设置了边框样式,可以从下图里看到一个紫色边框的元素)
.clear_ele::after{
content: ""; /* 这个伪元素的内容属性必须有 */
display: block;
border: 6px purple dashed;
clear: both;
}
CSS--三列布局就完成了
多行多列网页布局
多行多列布局是一种常见的网页布局方式,通常用于展示大量信息或分割页面内容。它将页面划分为多行和多列的网格,每个网格可以容纳不同的内容。
多行多列布局实验
多行多列布局基本结构
做一个内含有八个盒子的多行多列布局,先用有序标签进行一个大概的框架
<body>
<section class="container">
<ul class="clear_ele">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
</body>
给父盒设置宽高和样式
<style>
/* 防止父盒塌陷 */
.clear_ele::after{
content: ""; /* 这个伪元素的内容属性必须有 */
display: block;
clear: both;
}
/* 父盒样式设置 */
.container{
width: 50%;
background-color: gray;
border: 6px black solid;
}
</style>
给有序标签中的ul元素的外边距和内边距的值设为0 ,确保一致的页面布局。
然后对有序标签中的 li 元素设置样式和外边距的距离,再通过浮动来得到想要的排列。
article ul{
margin: 0;
padding: 0;
}
.container ul li{
/* 用于设置列表项(li元素)的样式。
none:不显示标记符号*/
list-style: none;
width: 20%;
height: 150px;
background-color: pink;
border: 2px red solid;
margin-right: 2%;
margin-bottom: 2%;
float: left;
}
CSS-- 多行多列布局结束