前端每日一练:三栏布局,包括 Flex 布局、浮动布局、Grid 布局以及绝对定位布局。

介绍

在网页开发中,三栏布局是一种常见的结构,通常包括一个固定宽度的左侧栏、一个固定宽度的右侧栏以及一个自适应宽度的主要内容区域。本文将介绍使用不同的布局方式实现三栏布局,包括 Flex 布局、浮动布局、Grid 布局以及绝对定位布局。

Flex 布局

使用 Flex 布局是一种简单而强大的方式,它通过 display: flex 属性来定义容器为 Flex 容器。以下是一个基本的示例:

<html><head><style type="text/css">.container {display: flex;}.left,.right {width: 200px;}.main {flex: 1;/* 自动扩展填充剩余空间 */}</style>
</head><body><div class="container"><div class="left" style="border: 1px solid black;">Left Sidebar</div><div class="main" style="border: 1px solid black;">Main Content</div><div class="right" style="border: 1px solid black;">Right Sidebar</div></div>
</body></html>

Flex 布局的优势

  • 灵活性: 可以轻松调整各列的宽度,适应不同屏幕尺寸。
  • 自适应: 主要内容区域会自动填充剩余空间,适应内容变化。

浮动布局

浮动布局是一种传统的布局方式,通过使用 float 属性来定义元素的位置。以下是一个浮动布局的示例:

<html><head><style type="text/css">.container {width: 100%;}.left {width: 200px;float: left;}.main {margin-left: 200px;/* 宽度等于左侧栏宽度 */margin-right: 200px;/* 宽度等于右侧栏宽度 */}.right {width: 200px;float: right;}</style>
</head><body><div class="container"><div class="left" style="border: 1px solid black;">Left Sidebar</div><div class="right" style="border: 1px solid black;">Right Sidebar</div><div class="main" style="border: 1px solid black;">Main Content</div></div>
</body></html>

浮动布局的注意事项

  • 清除浮动: 在使用浮动布局时,可能需要清除浮动,以防止父容器无法正常包裹子元素

Grid 布局

使用 Grid 布局是一种现代化的方式,通过 display: grid 属性来定义网格容器。以下是一个使用 Grid 布局的示例:

<html><head><style type="text/css">.container {display: grid;grid-template-columns: 200px 1fr 200px;/* 列的宽度 */}</style>
</head><body><div class="container"><div class="left" style="border: 1px solid black;">Left Sidebar</div><div class="main" style="border: 1px solid black;">Main Content</div><div class="right" style="border: 1px solid black;">Right Sidebar</div></div>
</body></html>

Grid 布局的优势

  • 网格控制: 提供了直观的网格控制,适用于复杂布局。
  • 自动调整: 可以根据内容的大小自动调整网格布局。

绝对定位布局

绝对定位布局是一种使用 position: absolute 属性的方式,通过定位左右侧栏,然后设置主内容区域的边距。以下是一个绝对定位布局的示例:

<html><head><style type="text/css">.container {position: relative;}.left,.right {width: 200px;position: absolute;top: 0;}.left {left: 0;}.right {right: 0;}.main {margin: 0 200px;/* 宽度等于左右侧栏宽度 */}</style>
</head><body><div class="container"><div class="left" style="border: 1px solid black;">Left Sidebar</div><div class="main" style="border: 1px solid black;">Main Content</div><div class="right" style="border: 1px solid black;">Right Sidebar</div></div>
</body></html>

绝对定位布局的注意事项

  • 相对定位容器: 父容器需要设置为相对定位(position: relative),以确保绝对定位元素相对于其进行定位。

结语

通过本文的介绍,你可以了解到多种实现三栏布局的方法,每种方法都有其优势和适用场景。选择合适的布局方式,根据项目需求和设计理念进行灵活搭配,以达到最佳的用户体验。在实际项目中,根据具体情况选择最适合的布局方式是十分重要的。

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

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

相关文章

计算机组成原理面试题

计算机组成原理是计算机科学的基础课程之一&#xff0c;涉及计算机系统的基本结构和工作原理。以下是一些可能出现在面试中的计算机组成原理相关题目&#xff1a; 1. **什么是冯诺依曼体系结构&#xff1f;** - 冯诺依曼体系结构是一种计算机组织架构&#xff0c;它将程序指…

【Flink网络数据传输(3)】RecordWriter的能力:实现数据分发策略或广播到下游InputChannel

文章目录 一.创建RecordWriter实例都做了啥1. 根据recordWrites数量创建不同的代理类2. 创建RecordWriters3. 单个RecordWriter的创建细节 二. RecordWriter包含的主要组件1. RecordWriter两种实现类分别实现分发策略和广播2. ChannelSelectorRecordWriter的发送策略2.1. Chann…

ArmSoM规划开发基于RK3576的开发套件

ArmSoM正计划推出一款新的产品&#xff0c;这款产品将采用强大的RK3576芯片。 本文将为您介绍我们的新产品搭载的RK3576性能参数&#xff0c;以及它如何为您提供卓越的性能和功能。 RK3576处理器 RK3576处理器是一款强大的处理器&#xff0c;具备出色的性能和多样化的功能&a…

8、Linux-软件安装:rpm和yum;配置yum阿里云镜像源

一、介绍 Linux安装软件有两种方式&#xff0c; ①rpm&#xff1a;安装已有的安装包&#xff0c;类似于Windows中双击exe的安装包程序 ②yum&#xff1a;拉取远程仓库的文件&#xff0c;类似于python的pip install 区别&#xff1a;假设软件A依赖软件B&#xff0c;软件B依赖…

速盾网络:cdn加速技术和云计算的区别

CDN加速技术和云计算是两种不同的技术&#xff0c;虽然都与网络性能和可扩展性有关&#xff0c;但它们在功能和应用方面存在一些不同之处。 首先&#xff0c;CDN加速技术&#xff08;Content Delivery Network&#xff09;是一种通过将网站内容分布到全球各地的服务器上&#…

【C++庖丁解牛】C++内存管理 | new和delete的使用以及使用原理

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1. C/C内存分布2. C语…

【C语言】走迷宫之推箱子

前言&#xff1a; 在上一篇文章当中我介绍了一个走迷宫的写法&#xff0c;但是那个迷宫没什么可玩性和趣味性&#xff0c;所以我打算在迷宫的基础上加上一个推箱子&#xff0c;使之有更好的操作空间&#xff0c;从而增强了游戏的可玩性和趣味性。 1. 打印菜单 void menu() {…

Day12:信息打点-Web应用源码泄漏开源闭源指纹识别GITSVNDS备份

目录 开源-CMS指纹识别源码获取方式 闭源-习惯&配置&特性等获取方式 闭源-托管资产平台资源搜索监控 思维导图 章节点 Web&#xff1a;语言/CMS/中间件/数据库/系统/WAF等 系统&#xff1a;操作系统/端口服务/网络环境/防火墙等 应用&#xff1a;APP对象/API接口/微…

ArmSoM Rockchip系列产品 通用教程 之 Ethernet 使用

1. Ethernet 简介​ ArmSoM系列产品主要使用到了两款以太网芯片 RTL8211F&#xff0d;CGRTL8125B 2. RTL8211F&#xff0d;CG芯片​ 在ArmSoM系列产品中&#xff0c;ArmSoM-Aim7使用的是RTL8211F&#xff0d;CG千兆以太网芯片 2.1 驱动​ drivers/net/ethernet/stmicro/s…

Spring MVC RequestParamMethodArgumentResolver原理解析

在Spring MVC框架中&#xff0c;RequestParamMethodArgumentResolver是一个核心的类&#xff0c;它负责解析HTTP请求中的参数&#xff0c;并将其绑定到处理器方法的参数上。这对于从请求中获取数据并将其传递给后端业务逻辑是至关重要的。本文将详细解析RequestParamMethodArgu…

Flink JobGraph构建过程

文章目录 前言JobGraph创建的过程总结 前言 在StreamGraph构建过程中分析了StreamGraph的构建过程&#xff0c;在StreamGraph构建完毕之后会对StreamGraph进行优化构建JobGraph&#xff0c;然后再提交JobGraph。优化过程中&#xff0c;Flink会尝试将尽可能多的StreamNode聚合在…

Vue 导出前端数据报表为xlsx文件

文章目录 前言一、添加依赖包二、新建导出功能按钮组件三、使用示例前言 导出数据报表基本上有两种形式,第一种是前端请求数据之后,后端将数据导出为文件,前端再将文件下载下来;第二种是前端请求数据之后,前端将数据保存到文件。 本文将讲解第二种方法,前端请求数据之后…

Sharding-JDBC源码解析与vivo的定制开发

作者&#xff1a;vivo IT 平台团队 - Xiong Huanxin Sharding-JDBC是在JDBC层提供服务的数据库中间件&#xff0c;在分库分表场景具有广泛应用。本文对Sharding-JDBC的解析、路由、改写、执行、归并五大核心引擎进行了源码解析&#xff0c;并结合业务实践经验&#xff0c;总结…

vue3之Prop特性注意点

1、Ts中接收父组件传递参数prop的定义写法&#xff1a; <script setup lang"ts">defineProps<{title?: stringlikes?: number}>() </script>2、所有的 props 都遵循着单向绑定原则&#xff0c;props 因父组件的更新而变化&#xff0c;子组件中不…

基于 Vue3 学习状态管理器:pinia

pinia 基本概念 Pinia 是 Vue 的存储库&#xff0c;Pinia和Vuex一样都是是vue的全局状态管理器&#xff0c;它允许跨组件/页面共享状态。实际上&#xff0c;其实Pinia就是Vuex5&#xff0c;官网也说过&#xff0c;为了尊重原作者&#xff0c;所以取名 pinia&#xff0c;而没有…

raylib库在CodeBlocks上的配置

raylib下载 raylib | A simple and easy-to-use library to enjoy videogames programming CodeBlocks

监控易对多云平台的运维管理方案

随着企业信息化建设的不断深入&#xff0c;越来越多的企业开始采用多云策略&#xff0c;以充分利用不同云服务提供商的优势&#xff0c;实现业务的高可用性、灵活性和成本效益。然而&#xff0c;多云环境也带来了运维管理的复杂性&#xff0c;如何有效监控和管理多个云平台的资…

本地部署websocket服务端并结合内网穿透实现固定公网地址连接

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…

CGAL 5.6.1 - Algebraic Foundations

1. 引言 CGAL 的目标是精确计算非线性对象&#xff0c;特别是定义在代数曲线和曲面上的对象。因此&#xff0c;表示多项式、代数扩展和有限域的类型在相关的实现中扮演着更加重要的角色。为了跟上这些变化&#xff0c;我们引入了这个软件包。由于引入的框架必须特别支持多项式…