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>版权所有 &copy; 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-- 多行多列布局结束


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源与商业的碰撞TPFLOW与Gadmin低代码的商业合作

随着数字化转型的浪潮席卷全球&#xff0c;企业对于高效、灵活的软件开发需求愈发迫切。低代码开发平台应运而生&#xff0c;为企业提供了简化开发流程、缩短开发周期的解决方案。在众多低代码开发平台中&#xff0c;Gadmin企业级低代码平台、TPFLOW工作流和SFDP超级表单脱颖而…

Edge浏览器提示“无法安全下载”

Edge浏览器在下载某些文件时&#xff0c;会提示“无法安全下载”。 注意事项&#xff1a;如果确实需要下载该文件&#xff0c;首先核对网址&#xff0c;确保下载文件的安全性&#xff0c;并在下载完成后进行必要的病毒查杀。 解决方法&#xff1a; 点击右侧的3个点&#xff0…

微服务系列三:微服务核心——网关路由

目录 前言 一、登录存在的问题归纳 二、*微服务网关整体方案 三、认识微服务网关 四、网关鉴权实现 五、OpenFeign微服务间用户标识信息传递实现 六、微服务网关知识追问巩固 前言 本篇文章具体讲解微服务中网关的实现逻辑、用于解决什么样的问题。其中标题中标注* 涉…

Docker入门系列——网络

Docker 通过容器化应用程序&#xff0c;彻底改变了我们构建、分发和运行应用程序的方式。然而&#xff0c;有效使用 Docker 的一个关键方面是理解容器如何相互通信以及与外界通信。 1. 什么是 Docker 网络&#xff1f; Docker 网络允许容器相互通信以及与外部资源通信。默认情况…

2024年大厂AI大模型面试题精选与答案解析

前言 随着AI市场&#xff0c;人工智能的爆火&#xff0c;在接下来的金九银十招聘高峰期&#xff0c;各大科技巨头和国有企业将会对AGI人才的争夺展开一场大战&#xff0c;为求职市场注入了新的活力。 为了助力求职者在面试中展现最佳状态&#xff0c;深入理解行业巨头的选拔标…

Nico,从零开始干掉Appium,移动端自动化测试框架实现

开头先让我碎碎念一波~去年差不多时间发布了一篇《 UiAutomator Nico&#xff0c;一个基于纯 adb 命令实现的安卓自动化测试框》&#xff08;https://testerhome.com/topics/37042&#xff09;&#xff0c; 由于种种原因 (详见此篇帖子) 当时选择了用纯 adb 命令来实现安卓自动…

RTP和RTCP的详细介绍及其C代码示例

RTP和RTCP的详细介绍及其C代码示例 RTP和RTCP简介RTP协议详解RTCP协议详解RTP和RTCP之间的关系C代码示例RTP和RTCP简介 RTP(Real-time Transport Protocol,实时传输协议)和RTCP(Real-time Transport Control Protocol,实时传输控制协议)是流媒体传输中常用的两个协议。R…

国内能用的Docker镜像源【2024最新持续更新】

国内能用的Docker镜像源【2024最新持续更新】 Docker 镜像加速列表&#xff08;2024年11月已更新&#xff09;配置方式1&#xff1a;临时使用配置方式2&#xff1a;长久有效 在国内使用 Docker 的朋友们&#xff0c;可能都遇到过配置镜像源来加速镜像拉取的操作。然而&#xff…

队列(Queue)的介绍与实现

文章目录 队列队列的概念及结构 队列的实现初始化队列销毁队列队尾入队列队头出队列获取队列头部元素检测队列是否为空获取队列中有效元素个数 队列 队列的概念及结构 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表。队列遵…

3.1 快速启动Flink集群

文章目录 1. 环境配置2. 本地启动3. 集群启动4. 向集群提交作业4.1 提交作业概述4.2 添加打包插件4.3 将项目打包4.4 在Web UI上提交作业4.5 命令行提交作业 在本实战中&#xff0c;我们将快速启动Apache Flink 1.13.0集群&#xff0c;并在Hadoop集群环境中提交作业。首先&…

[sa-token]StpUtil.getLoginId

闲聊 一般情况下&#xff0c;我们想用uid&#xff0c;可能需要前端将uid传过来&#xff0c;或者将token传来&#xff0c;然后我们进行识别。 用了sa-token之后&#xff0c;可以使用StpUtil.getLoginId()方法获取当前会话的用户id 代码展示 例如以下代码&#xff1a; public Res…

算法实现 - 快速排序(Quick Sort) - 理解版

文章目录 算法介绍算法分析核心思想三个版本运行过程挖坑法Hoare 原版前后指针法 算法稳定性和复杂度稳定性时间复杂度平均情况O(nlogn)最差情况O( n 2 n^2 n2) 空间复杂度 算法介绍 快速排序是一种高效的排序算法&#xff0c;由英国计算机科学家C. A. R. Hoare在1960年提出&a…

算法【Java】—— 动态规划之斐波那契数列模型

动态规划 动态规划的思路一共有五个步骤&#xff1a; 状态表示&#xff1a;由经验和题目要求得出&#xff0c;这个确实有点抽象&#xff0c;下面的题目会带大家慢慢感受状态标识状态转移方程初始化&#xff1a;避免越界访问 dp 表&#xff0c;所以在进行填表之前我们要预先填…

SpringBoot学生请假系统:从零到一的构建过程

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

json-server的使用(根据json数据一键生成接口)

一.使用目的 在前端开发初期&#xff0c;后端 API 可能还未完成&#xff0c;json-server 可以快速创建模拟的 RESTful API&#xff0c;帮助前端开发者进行开发和测试。 二.安装 npm install json-server //局部安装npm i json-server -g //全局安装 三.使用教程 1.准备一…

【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型

一、介绍 车辆车型识别&#xff0c;使用Python作为主要编程语言&#xff0c;通过收集多种车辆车型图像数据集&#xff0c;然后基于TensorFlow搭建卷积网络算法模型&#xff0c;并对数据集进行训练&#xff0c;最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操…

【Redis】浅析Redis大Key

目录 1、什么是Redis大Key 2、大 Key 是怎么产生的 3、大 Key 导致的问题 4、如何快速找到 Redis 大 Key 5、大 Key 优化策略 6、总结 我们在使用 Redis 的过程中&#xff0c;如果未能及时发现并处理 Big keys&#xff08;下文称为“大Key”&#xff09;&#xff0c;可能…

Rocky DEM tutorial3_Vibrating Screen_振荡筛

tutorial3_Vibrating Screen_振荡筛 文章目录 tutorial3_Vibrating Screen_振荡筛0. 目的1. 模型介绍2. 模型设置2.1 Physics设置2.2 导入几何2.3 创建一个进口的几何面2.4 定义运动 Motion frame2.5 材料设置&#xff0c;保持默认即可2.6 设置材料间的相互作用 materials inte…

小林渗透入门:burpsuite+proxifier抓取小程序流量

目录 前提&#xff1a; 代理&#xff1a; proxifier&#xff1a; 步骤&#xff1a; bp证书安装 bp设置代理端口&#xff1a; proxifier设置规则&#xff1a; proxifier应用规则&#xff1a; 结果&#xff1a; 前提&#xff1a; 在介绍这两个工具具体实现方法之前&#xff0…

阿里云-防火墙设置不当导致ssh无法连接

今天学网络编程的时候&#xff0c;看见有陌生ip连接&#xff0c;所以打开了防火墙禁止除本机之外的其他ip连接&#xff1a; 但是当我再次用ssh的时候&#xff0c;连不上了才发现大事不妙。 折腾了半天&#xff0c;发现阿里云上可以在线向服务器发送命令&#xff0c;所以赶紧把2…