css实现左右固定中间自适应三栏布局

news/2024/9/20 7:36:27/ 标签: css, 前端, javascript

1.利用浮动

将左右两栏分别设置为向左和向右浮动,然后中间栏通过设置overflow: hidden来清除浮动的影响,从而实现自适应宽度。

<body><div class="container"><div class="left">左栏</div><div class="right">右栏</div><div class="middle">中间栏</div></div><style>.container {width: 100%;overflow: hidden;}.left {float: left;width: 200px;background-color: lightblue;}.right {float: right;width: 200px;background-color: lightgreen;}.middle {margin-left: 200px;/* 左侧栏的宽度 */margin-right: 200px;background-color: lightyellow;}</style>
</body>

2.postion

用绝对定位将左右两栏固定在两侧,中间栏通过设置左右边距来让出左右两栏的空间,实现自适应

为什么不使用绝对定位

在三栏布局中,如果使用固定定位,左右两栏会一直固定在视口的两侧,不会随着中间内容的滚动而调整位置,这可能会导致在页面较长时,左右栏与中间内容的关联性变得很弱,视觉上也可能会显得不协调。

通过将包含三栏的容器元素设置为相对定位(position: relative),然后将左右两栏设置为绝对定位,就可以使左右两栏相对于容器进行定位。这样,当中间内容滚动时,左右两栏会保持与中间内容的相对位置不变,视觉上更加协调

固定定位在布局上相对较为局限,因为它始终固定在视口的特定位置,不会随着页面内容的布局变化而调整。

在三栏布局中,中间自适应的部分可以根据内容的多少自动调整宽度,而左右两栏通过绝对定位可以固定在容器的两侧,不会受到中间内容宽度变化的影响

<body><div class="container"><div class="left">左栏</div><div class="right">右栏</div><div class="middle">中间栏</div></div><style>.container {position: relative;width: 100%;}.left {position: absolute;left: 0;width: 200px;background-color: lightblue;}.right {position: absolute;right: 0;width: 200px;background-color: lightgreen;}.middle {margin: 0 200px 0 200px;background-color: lightyellow;}</style>
</body>

3.display: flex; 

将中间栏的flex属性设置为1,它会自动占据剩余的空间,实现自适应宽度。

<body><div class="container"><div class="left">左栏</div><div class="middle">中间栏</div><div class="right">右栏</div></div><style>.container {display: flex;}.left {width: 200px;background-color: lightblue;}.right {width: 150px;background-color: lightgreen;}.middle {flex: 1;background-color: lightyellow;}</style>
</body>

4.display: grid;

将中间栏的grid中间属性设置为1fr,它会自动占据剩余的空间,实现自适应宽度。

<body><div class="container"><div class="left">左侧栏</div><div class="center">中间栏</div><div class="right">右侧栏</div></div><style>.container {display: grid;grid-template-columns: 200px 1fr 200px;/* 左侧栏200px,中间栏自适应,右侧栏200px */height: 100px;/* 固定高度 */}.left,.right {background-color: #ebc4c4;/* 背景颜色 */}.center {background-color:#a5e1bf ;/* 背景颜色 */}</style>
</body>


http://www.ppmy.cn/news/1517281.html

相关文章

LeetCode 热题100-39 对称二叉树

对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中…

CMake构建学习笔记9-Eigen库的构建

Eigen是一个高性能的C线性代数库&#xff0c;广泛用于科学计算、机器学习、计算机视觉等领域。不过&#xff0c;Eigen有点特别&#xff0c;它是一个纯头文件实现的库&#xff1b;也就是说&#xff0c;任何一个程序要引入它&#xff0c;只要include它的头文件就可以了。这天然就…

C语言 ——— 将动态版本的通讯录实现为文件存储联系人模式

目录 前言 在退出通讯录之前 在运行通讯录之前 前言 在这篇博客中&#xff0c;实现了动态版本的通讯录&#xff0c;接下来会增加函数&#xff0c;能用文件存储通讯录中的联系人 C语言 ——— 在控制台实现通讯录&#xff08;增删查改、动态开辟内存空间&#xff09;-CSDN…

二进制、八进制、十进制、十六进制的相互转换

一:各个进制的原理 我们最熟悉也是目前使用的数字是10进制-->逢10进1. 即10进制由10个符号表示一个数字: 0,1,2,3,4,5,6,7,8,9 同理,可得2进制逢2进1,2进制由2符号表示一个数字:0,1 八进制逢8进1,8进制由8符号表示一个数字:0,1,2,3,4,5,6,7 十六进制逢16进1,16进制由16…

深入解析SSRF和Redis未授权访问

深入解析SSRF和Redis未授权访问&#xff1a;漏洞分析与防御 在网络安全领域&#xff0c;服务器端请求伪造&#xff08;SSRF&#xff09; 和 Redis未授权访问 是两类常见且危险的安全漏洞。 1.2 SSRF攻击的利用 1.2.1 测试并确认SSRF漏洞 一个典型的例子是&#xff0c;当应用…

list的使用及其相关知识点

目录 ◉list的底层逻辑 ◉关于list的新增功能 ▲splice功能 ▲remove函数 ▲unique函数 ▲merge函数 ▲sort函数 ▣迭代器类型 ▲reverse函数 作为数据容器之一的list和其他容器的使用上有很多相似的地方&#xff0c;比如都有大致相同的构造函数&#xff0c;大致相同的头插尾插…

华为eNSP:静态路由配置、浮动路由配置

静态路由&#xff1a; 一、拓扑图 二、路由器配置 2.1&#xff1a;配置接口 R1&#xff1a; [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [r1-GigabitEthernet0/0/0]qu [r1]int g0/0/1 [r1-GigabitEthernet0/0/1]ip add 10.1.1.1 24 [r1-GigabitEth…

推荐一款好用的mac解压缩软件

文章目录 介绍软件功能安装下载使用注意事项1.打开系统设置选择隐私与安全性2.点击添加扩展3.勾选访达扩展 小结 介绍 FastZip for Mac集压缩、解压、预览、加密压缩、分卷压缩、固实压缩、右键压缩解压、多线程压缩等功能于一体&#xff0c;绝佳的设计、便捷的操作&#xff0…

springCloud 网关(gateway)配置跨域访问

如果项目是分布式架构&#xff0c;通过网关进行路由转发的&#xff0c;那么项目中如果存在跨域的访问&#xff0c;在每一个项目中单独配置&#xff0c;显示是错误的&#xff0c;我们只需要在网关处进行处理&#xff0c;其它项目都是由网关进行转发的&#xff0c;他们是不会存在…

从屎山代码到RTOS,老工程师的架构进化史

很多老铁和我反馈&#xff0c;说很喜欢看我写的内容&#xff0c;不管是朋友圈还是文章&#xff0c;能在字里行间&#xff0c;受益匪浅。 想想也很久没时间没写长文了&#xff0c;既然大家喜欢看&#xff0c;我尽量抽时间多写。 长文预警&#xff0c;全文5800多字&#xff0c;…

戏曲多多 v1.0.4 — 专为老年人打造的戏曲娱乐软件(含经典评书与广场舞)

戏曲多多 TV 是一款专为老年人量身打造的视频娱乐软件&#xff0c;安装在智能电视、智能机顶盒、投影仪等安卓系统设备上后&#xff0c;老年人可以在电视上轻松观看各种戏曲视频。软件涵盖豫剧、京剧、秦腔、越剧、昆曲、淮剧、川剧、黄梅戏等多种戏曲类型。除了戏曲&#xff0…

2-75 基于matlab的多尺度小波核svm预测

基于matlab的多尺度小波核svm预测&#xff0c;数据归一化操作&#xff0c;尺度小波核函数作为核函数进行训练&#xff0c;训练后的模型进行预测。程序已调通&#xff0c;可直接运行。 2-75 多尺度小波核 SVM预测 - 小红书 (xiaohongshu.com)

【已上线】C++ mysql连接池

目录 1 为什么需要链接池2 实现原理3 代码4 编译5 参考 1 为什么需要链接池 可以复用已经建立好的链接&#xff0c;节约数据库建立链接的时间。原理上&#xff0c;和线程池类似。我们项目中的一个实际需求&#xff0c;同时可能有多个线程同时访问数据库。这样每个线程都需要和…

深入解析 etcd 在 Kubernetes 集群中的核心作用

摘要 etcd 是一个分布式键值存储系统&#xff0c;它在 Kubernetes 集群中扮演着至关重要的角色。本文将详细介绍 etcd 的基本概念、架构、以及它在 Kubernetes 集群管理中的关键作用。通过实际代码示例&#xff0c;我们将探索 etcd 如何确保 Kubernetes 集群状态的一致性和高可…

c++2道经典DFS题目题解

1.组合输出 题目描述 排列与组合是常用的数学方法&#xff0c;其中组合就是从 n 个元素中抽出 r 个元素(不分顺序且 r≤n)&#xff0c;我们可以简单地将 n 个元素理解为自然数 1&#xff0c;2,…&#xff0c;n&#xff0c;从中任取r 个数。 现要求你用输出所有组合。 输入 …

CUDA编程之CUDA Sample-5_Domain_Specific-volumeFiltering(光线追踪)

volumeFiltering演示了使用 3D 纹理和 3D 表面写入进行 3D 体积过滤。它从磁盘加载一个 3D 体积&#xff0c;并使用光线步进和 3D 纹理进行显示。 以下是该示例的主要内容和功能&#xff1a; 主要功能 3D 体积加载: 从磁盘加载 3D 体积数据&#xff0c;通常为医学成像数据或体…

数据结构与算法——动态规划

目录 引言 最优子结构 重叠子问题 打家劫舍&#xff08;LeetCode 198题&#xff09; 经典例题 1. 爬楼梯&#xff08;LeetCode 70题&#xff09; 2. 斐波那契数列&#xff08;LeetCode 126题&#xff09; 3. 最长公共子序列&#xff08;LeetCode 95题&#xff09; 引言…

提升工作效率:跨部门流程图绘制的艺术与科学

工作流程图是一种流程图&#xff0c;它通过使用特定的图形符号来表示工作流程的流向和顺序&#xff0c;清晰地展示了各个步骤在系统中的相互关系。抓好工作流程才能更加顺利地开展工作&#xff0c;并能够不断提升组织的核心竞争力。这种图形化的方法有助于我们理解工作活动&…

“智汇论坛“——基于 Spring 前后端分离版本的论坛系统

一.项目背景 1.项目简介 智汇论坛是一个集高科技与高效交流于一体的在线社区平台&#xff0c;旨在为用户提供一个便捷、智能的讨论空间。通过集成先进的服务器端技术和丰富的浏览器端技术&#xff0c;智汇论坛不仅支持用户之间的实时互动与信息共享&#xff0c;还确保了平台的…

【blender】一个汉堡包

第一次建模&#xff0c;哈哈汉堡包样式大差不差。至于这么做的&#xff0c;那么多快捷键完蛋&#xff0c;忘得差不多了&#xff01; 官网地址&#xff1a;https://www.blender.org/download/ 我下载的是4.2版本