当前位置: 首页 > news >正文

【CSS 布局】-多列布局

一、两列布局

两列布局:一列定宽(也有可能由子元素决定宽度),一列自适应的布局。

创建一个父盒子,和子盒子


<div class="container clearfix"><div class="left ">定宽</div><div class="right ">自适应</div>
</div>

基本CSS样式如下

body {margin: 0;
}.container {height: 50px;background-color: #fff;
}.left {height: 50px;width: 200px;background-color: antiquewhite;font-size: 12px;line-height: 50px;text-align: center;
}.right {height: 50px;background-color: azure;font-size: 12px;line-height: 50px;
}.mt5 {margin-top: 5px;
}/* 清除浮动 */
.clearfix:after {content: '';display: block;height: 0;clear: both;visibility: hidden;
}

1.定宽浮动: float +calc()函数

(1)左边列开启浮动

(2)右边列开启浮动

(3)右边列宽度为父级 100%减去左列的宽度


<div class="container clearfix"><div class="left left-float-left">定宽 float-left</div><div class="right right-float-left">自适应 float-left + calc(100% - 200px)</div>
</div>

基本CSS样式如下

.left-float-left {float: left;
}.right-float-left {/* 右边列开启浮动 */float: left;/* 宽度减去左列的宽度 */width: calc(100% - 200px);
}

2.定宽浮动:float + margin-left

(1)左边列开启浮动

(2)通过外边距的方式使该容器的左边有左边列容器的宽度的外边距

<!-- 2.定宽块级元素水平居中: 设置宽度,设置margin:0 auto; -->
<div class="container clearfix mt5"><div class="left left-float-left">定宽 float-left</div><div class="right  right-margin-left">自适应 margin-left</div>
</div>

基本样式如下

.left-float-left {float: left;
}/* 通过外边距的方式使该容器的左边有200px */
.right-margin-left {margin-left: 200px;
}

3.定宽定位 : absolute + margin-left

(1)开启定位脱离文档流

(2)通过外边距的方式使该容器的左边有左边列容器的宽度的外边距


<div class="container clearfix mt5"><div class="left left-position-absolute">定宽:position:absolute</div><div class="right right-margin-left">自适应 margin-left</div>
</div>

css基本样式如下

.left-position-absolute {position: absolute;
}.right-margin-left {margin-left: 200px;
}

4.浮动 :float + overflow

(1)左侧元素开始浮动

(2)右侧自适应元素设置overflow会创建一个BFC完成自适应


<div class="container clearfix mt5"><div class="left left-float-left">float-left</div><div class="right right-overflow-hidden">overflow-hidden</div>
</div>

基本样式如下

.left-float-left {float: left;
}.right-overflow-hidden {overflow: hidden;
}

5.flex布局 : flex-1

Flex布局通过 flex 属性实现:
flex: 1; (表示 flex-grow: 1; 即该项占所有剩余空间)


<div class="container clearfix mt5 container-flex"><div class="left ">left</div><div class="right flex-1">flex-1</div>
</div>

基本样式如下

.container-flex {display: flex;
}.flex-1 {flex: 1;
}

6.Grid布局 : grid-template-columns属性

Grid 布局通过template属性实现:
grid-template-columns: auto 1fr;(将其划分为两行,其中一列有本身宽度决定, 一列占剩余宽度)


<div class="container clearfix mt5  container-grid-1fr"><div class="left ">定宽</div><div class="right ">grid</div>
</div>

基本样式如下

.container-grid-1fr {display: grid;grid-template-columns: auto 1fr;}

二、三列布局

三列布局主要分为两种:

1.第一种:
前两列定宽,最后一列自适应,这一种本质上与两列布局没有什么区别,可以参照两列布局实现。

2.第二种 前后两列定宽,中间自适应。

创建一个父盒子,和子盒子

<!-- 解决高度塌陷 -->
<div class="container clearfix mt5"><div class="left ">左边</div><div class="content">内容</div><div class="right">右边</div>
</div>

公共的 CSS 代码如下

body {margin: 0;
}.container {height: 50px;background-color: antiquewhite;
}.left {height: 50px;width: 100px;background-color: azure;
}.content {height: 50px;background-color: floralwhite;
}.right {height: 50px;width: 100px;background-color: #ccc;
}.left,
.content,
.right {font-size: 12px;line-height: 50px;text-align: center;
}/* 清除浮动 */
.clearfix:after {content: '';display: block;height: 0;clear: both;visibility: hidden;
}.mt5 {margin-top: 5px;
}

1.左右浮动:float + overflow: hidden

(1)左列容器开启左浮动

(2)右列容器开启右浮动

(3)自适应元素设置overflow会创建一个BFC完成自适应

<!-- 解决高度塌陷 -->
<div class="container clearfix mt5"><div class="left left-float-left">左边</div><div class="right right-float-right">右边</div><div class="content content-overflow-hidden">内容</div>
</div>

基本样式如下

.left-float-left {float: left;
}/* 自适应元素设置 overflow 会创建一个BFC 完成自适应 */
.content-overflow-hidden {overflow: hidden;
}.right-float-right {float: right;
}

2.左右浮动:float + calc()函数

(1)左列容器开启左浮动

(2)右列容器开启右浮动

(3)使中间自适应的宽度为父级容器减去两个定宽的列

<!-- 解决高度塌陷 -->
<div class="container clearfix mt5"><div class="left left-float-left">左边</div><div class="right right-float-right">右边</div><div class="content content-width-calc">内容</div>
</div>

css样式如下

.left-float-left {float: left;
}.right-float-right {float: right;
}/*  使中间自适应的宽度为父级容器减去两个定宽的列 */
.content-width-calc {width: calc(100% - 100px);
}

3.定位: 子绝父相 + calc()函数 + margin

(1)左右两列脱离文档流,并通过偏移的方式到达自己的区域

(2)使中间自适应的宽度为父级容器减去两个定宽的列

(3)通过外边距将容器往内缩小

<!-- 解决高度塌陷 -->
<div class="container clearfix mt5 container-position-relative"><div class="left left-position-absolute">左边</div><div class="content content-width-calc-margin">内容</div><div class="right right-position-absolute">右边</div>
</div><!-- 解决高度塌陷 -->
<div class="container clearfix mt5 container-position-relative"><div class="left left-position-absolute">左边</div><div class="right right-position-absolute">右边</div><div class="content content-width-calc-margin">内容</div>
</div>

css样式如下

.container-position-relative {position: relative;
}.left-position-absolute {position: absolute;left: 0;top: 0;
}.right-position-absolute {position: absolute;right: 0;top: 0;
}.content-width-calc-margin {width: calc(100% - 200px);margin-right: 100px;margin-left: 100px;
}

4.flex布局 : flex-1

(1)开启 Flex 布局。
(2)设置 flex 属性,flex : 1。

<!-- 解决高度塌陷 -->
<div class="container clearfix mt5 container-flex"><div class="left">左边</div><div class="content flex-1">内容 flex-1</div><div class="right ">右边</div>
</div>

css样式如下

.container-flex {display: flex;
}.flex-1 {flex: 1;
}

5.grid布局 + grid-template-columns

(1)开启 grid布局。
(2)设置 grid 属性, grid-template-columns: auto 1fr auto;

<!-- 解决高度塌陷 -->
<div class="container clearfix mt5 container-grid-1fr"><div class="left">左边</div><div class="content ">内容</div><div class="right ">右边</div>
</div>

css样式如下


.container-grid-1fr {display: grid;grid-template-columns: auto 1fr auto;
}

三、等分布局

等分布局就是将一个容器平均分成几等份,这里以 4 等分为例。

创建一个父盒子,和子盒子

<div class="container clearfix"><div class="item item1 "></div><div class="item item2 "></div><div class="item item3 "></div><div class="item item4 "></div>
</div>

基本CSS样式如下

body {margin: 0;
}
.container {height: 50px;background-color: #eee;
}
.item {height: 100%;
}
.item1 {background-color: skyblue;
}
.item2 {background-color: deepskyblue;
}
.item3 {background-color: lightskyblue;
}
.item4 {background-color: royalblue;
}
/* 清除浮动 */
.clearfix::after {content: '';display: block;height: 0;clear: both;visibility: hidden;
}

1.浮动+百分比

开启浮动,使每个元素占25%的宽度。

<!-- 1.浮动+百分比 -->
<div class="container clearfix"><div class="item item1 width-25 float-left"></div><div class="item item2 width-25 float-left"></div><div class="item item3 width-25 float-left"></div><div class="item item4 width-25 float-left"></div>
</div>

基本CSS样式如下

.width-25 {width: 25%;
}.float-left {float: left;
}

2.行内块级 + 百分比

<!-- 行内块级元素 + 百分比 -->
<div class="container clearfix"><div class="item item4 width-24-5 display-inline-block"></div><div class="item item3 width-24-5 display-inline-block"></div><div class="item item2 width-24-5 display-inline-block"></div><div class="item item1 width-24-5 display-inline-block"></div>
</div>

基本CSS样式如下

.width-24-5 {width: 24.5%;
}.display-inline-block {display: inline-block;
}

3.flex布局

1.设置父元素相对定位 position:relative; 子元素绝对定位 position:absolute; 2.设置偏移量: left: 50%; top: 50%; 3.外边距-宽度/高度的一半将元素移动:
margin-left:- 宽度的一半 ; margin-top: 高度的一半 ;

<!-- flex -->
<div class="container clearfix display-flex"><div class="item item4 flex-1"></div><div class="item item3 flex-1"></div><div class="item item2 flex-1"></div><div class="item item1 flex-1"></div>
</div>

基本CSS样式如下

.display-flex {display: flex;
}.flex-1 {flex: 1;
}

4.grid布局

开启 grid 布局,使用 repeat 函数生成。

<!-- grid -->
<div class="container clearfix display-grid grid-template-columns-repeat"><div class="item item2 "></div><div class="item item1 "></div><div class="item item4 "></div><div class="item item3 "></div>
</div>

基本CSS样式如下

.display-grid {display: grid;
}.grid-template-columns-repeat {grid-template-columns: repeat(4, 1fr);
}

相关文章:

【CSS 布局】-多列布局

一、两列布局 两列布局&#xff1a;一列定宽(也有可能由子元素决定宽度)&#xff0c;一列自适应的布局。 创建一个父盒子&#xff0c;和子盒子 <div class"container clearfix"><div class"left ">定宽</div><div class"right…...

从C语言向C++过渡

文章目录前言1.命名空间1.域的概念2.命名空间的使用2.C输入&输出3.缺省参数1.概念2.分类3.注意事项4.函数重载5.引用1.概念2.使用注意事项3.引用使用场景4.指针和引用的区别6.内联函数7.auto关键字8.nullptr前言 C被成为带类的C,本文由C语言向C过度&#xff0c;将会初步介…...

Matter 研讨会回顾(第三期)|乐鑫 Matter 免开发方案与证书服务介绍

1 月 17 日&#xff0c;乐鑫举办了以“乐鑫 Matter 免开发方案与证书服务介绍”为主题的第三期 Matter 线上研讨会&#xff0c;介绍乐鑫开箱即用的 ESP-ZeroCode 模组及其免开发 Matter 方案&#xff0c;以及证书生成和预配置相关服务。欢迎观看研讨会的视频回放了解详情。&…...

函数栈帧的创建和销毁——“C”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰来为大家介绍一个知识点——函数栈帧的创建和销毁。其实这个知识点&#xff0c;我们很早之前就要讲&#xff0c;但是因为我的一系列原因&#xff0c;才一直拖到了现在&#xff0c;那么&#xff0c;话不多说&#xff0c;让我们一起…...

腾讯云对象存储+企业网盘 打通数据链“最后一公里

对云厂商和企业用户来说&#xff0c;随着数据规模的快速增长&#xff0c;企业除了对存储功能和性能的要求不断增加&#xff0c;也越来越注重数据分发的效率。在传统数据分发的过程中&#xff0c;数据管理员往往需要先在存储桶下载对应的客户方案/交付资料&#xff0c;再使用微信…...

在浏览器输入url到发起http请求,这过程发生了什么

当用户输入url&#xff0c;操作系统会将输入事件传递到浏览器中&#xff0c;在这过程中&#xff0c;浏览器可能会做一些预处理&#xff0c;比如 Chrome 会根据历史统计来预估所输入字符对应的网站&#xff0c;例如输入goog&#xff0c;根据之前的历史发现 90% 的概率会访问「ww…...

PyTorch学习笔记:nn.ReLU——ReLU激活函数

PyTorch学习笔记&#xff1a;nn.ReLU——ReLU激活函数 torch.nn.ReLU(inplaceFalse)功能&#xff1a;逐元素应用ReLU函数对数据进行激活 函数方程&#xff1a; ReLU(x)(x)max⁡(0,x)ReLU(x)(x)^\max(0,x) ReLU(x)(x)max(0,x) 输入&#xff1a; inplace&#xff1a;是否改变输…...

同步线程

↵ 由于这节内容资料比较少&#xff0c;所以以下内容总结自Qt官方文献&#xff0c;在文章最后会给出相应链接。 线程的目的是允许并行运行&#xff0c;但有时线程必须停止等待其他线程。例如&#xff0c;如果两个线程尝试访问同一个变量&#xff0c;这样的话结果是未定义的。强…...

服务端返回内容跨域CORS之后,也在chrome/edge浏览器里显示出响应信息

由于浏览器的同源策略&#xff0c;服务端返回的内容跨域&#xff0c;且没有允许跨域CORS的请求头之后&#xff0c;浏览器无法显示出服务端返回的信息&#xff0c;不方便问题排查。比如&#xff1a;Access to XMLHttpRequest at http://localhost:6001/service-app/query/common…...

DHCP中继及配置

为什么需要DHCP Relay&#xff1f;产生背景解决方案DHCP Relay工作原理DHCP Relay配置实现产生背景 随着网络规模的扩大&#xff0c;网络中就会出现用户处于不同网段的情况。 这个时候客户A和客户B要请求IP地址时&#xff0c;首先会发送DHCP Discover广播包&#xff0c;这个广…...

中国社科院与美国杜兰大学金融管理硕士,让我们相遇在春暖花开时

在芸芸众生中&#xff0c;能拥有志同道合的朋友是一件多么幸运的事。人们常说&#xff1a;你是谁&#xff0c;就会遇见谁。走过半生才知道&#xff0c;看似命中注定的遇见谁、发生的事&#xff0c;其实都取决于自己。只有自己足够优秀&#xff0c;才能遇到更优秀的别人。在这个…...

MySQL---单表查询、多表查询

一、单表查询 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 v…...

3年自动化测试这水平?我还不如去招应届生

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在10-20k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。看简历很多都是3年工作经验&#xff0c;但面试…...

5 个自定义 React Hooks 将改变你的代码

昨天完成我的每日文章&#xff08;是的&#xff0c;我每天都会发布一篇关于前端开发的新文章&#xff0c;所以如果你想要每天的代码丸&#xff0c;请务必关注 &#x1f609;&#xff09;&#xff0c;我去编码了一点......我开始为我正在构建的副项目编写一些自定义挂钩&#xf…...

Java学习笔记-03(API阶段)

前言 目前我们看到的是Java基础部分的一个新的部分API,这是个啥,又能做啥呢? 其实可以概括成一句话:帮助我们站在巨人的肩膀上,实现更加高效的开发,那么我们来一探究竟吧~ API API&#xff08;Application Programming Interface&#xff0c;应用程序接口&#xff09;是一些预…...

Django自定义模板标签的使用详解

目录 1.创建子应用&#xff1a;python manage.py startapp test01 2.进行相关的配置 3.在新建的test01文件下创建urls.py(此处名称可变但注意上图) 4.在test01文件下创建名称为templatetags的文件夹 5.templatetags文件下继续创建几个py文件如下图​编辑 6.views视图函数…...

洗地机怎么选?洗地机品牌排行榜

洗地机的出现不仅能高效的清洁地面还能节省我们做家务的时间&#xff0c;对于上班族、有宠物的家庭以及宝妈来说简直不要太方便;目前市面上的洗地机有分有线款和无线款&#xff0c;无线款会比有线款操作更加方便;洗地机怎么选&#xff0c;其实洗地机的清洁能力主要是看吸力大小…...

CSS的元素显示模式

&#x1f60a;博主页面&#xff1a;鱿年年 &#x1f449;博主推荐专栏&#xff1a;《WEB前端》&#x1f448; ​&#x1f493;博主格言&#xff1a;追风赶月莫停留&#xff0c;平芜尽处是春山❤️ 目录 前言 一、什么是元素显示模式 1.1块元素 1.2行内元素 1.3行内块元素…...

【MySQL Shell】8.9.1 在 InnoDB ClusterSet 中隔离集群

在发生紧急故障切换后&#xff0c;如果 ClusterSet 的各个部分之间存在事务集不同的风险&#xff0c;则必须保护集群不受写入流量或所有流量的影响。 如果发生网络分区&#xff0c;则有可能出现脑裂的情况&#xff0c;即实例失去同步&#xff0c;无法正确通信以定义同步状态。…...

Ubuntu20.04+cuda11.2+cudnn8.1+Anaconda3安装tensorflow-GPU环境,亲测可用

(1)安装nvidia显卡驱动注意Ubuntu20.04和Ubuntu16.04版本的安装方法不同,安装驱动前一定要更新软件列表和安装必要软件、依赖&#xff08;必须&#xff09;sudo apt-get update #更新软件列表sudo apt-get install gsudo apt-get install gccsudo apt-get install make查看GP…...

剑指Offer 第27天 JZ75 字符流中第一个不重复的字符

字符流中第一个不重复的字符_牛客题霸_牛客网 描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如&#xff0c;当从字符流中只读出前两个字符 "go" 时&#xff0c;第一个只出现一次的字符是 "g" 。当从该字符流中读出前六个字符 “google&…...

科研试剂供应1476737-97-9,Bis-PEG2-endo-BCN可发生点击反应

●外观以及性质&#xff1a;Bis-PEG2-endo-BCN一般为白色固体&#xff0c;BCN其为点击试剂&#xff0c;点击化学&#xff08;Click chemistry&#xff09;&#xff0c;又译为“链接化学”、“动态组合化学” &#xff08;Dynamic Combinatorial Chemistry&#xff09;、“速配接…...

Zabbix 构建监控告警平台(一)--部署安装

监控对象监控收集信息方式Zabbix 部署 1.监控对象 源代码: *.html *.jsp *.php *.py 数据库&#xff1a; MySQL,MariaDB,Oracle,SQL Server,DB2 应用软件&#xff1a;Nginx,Apache,PHP,Tomcat agent 集群&#xff1a; LVS,Keepalived,HAproxy…...

【nodejs】nodejs入门核心知识(命令行使用、内置模块、node 模块化开发)

&#x1f4bb; nodejs入门核心知识(命令行使用、内置模块、node 模块化开发) &#x1f3e0;专栏&#xff1a;JavaScript &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享…...

5. Spring 事务

文章目录1. Spring 事务简介2. Spring 事务角色3. Spring 事务属性3.1 事务配置3.2 案例&#xff1a;转账业务追加日志3.3 事务传播行为1. Spring 事务简介 Spring 事务作用&#xff1a;在数据层或业务层保障一系列的数据库操作同成功、同失败。 数据层有事务我们可以理解&am…...

【堆】数据结构堆的实现(万字详解)

前言&#xff1a; 在上一期中我们讲到了树以及二叉树的基本的概念&#xff0c;有了之前的认识&#xff0c;今天我们将来具体实现一种二叉树的存储结构“堆”&#xff01;&#xff01;&#xff01; 目录1.二叉树顺序结构介绍2.堆的概念及结构3.调整算法3.1向上调整算法3.1.1算法…...

Docker进阶 - 9. docker network 之自定义网络

1. 运行两个tomcat实例&#xff0c;并进入容器内部 docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8 docker exec -it tomcat81 bashdocker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-idk8 docker exec -it tomcat82 bash2. ping一下各自的ip…...

springcloud-工程创建(IDEA)

文章目录介绍springcloud 常用组件1.创建父工程2.删除父工程的src目录3.修改父工程的pom文件4 springcloud 版本依赖5.创建子模块6 子项目下创建启动类介绍 Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具&#xff0c;它为开发中的配置管理、服务发现、断路器、智…...

Blender——物体的随机分布

问题描述将正方体随机分布在平面上。问题解决点击编辑-->偏好设置。在【插件】中的【物体】类型中勾选【Object: Scatter Objects】。右下的活动工具与工作区设置中就会出现【物体散列】的模块&#xff0c;可以调节各参数。选中正方体&#xff0c;按着Shift&#xff0c;选中…...

一文教你玩转 Apache Doris 分区分桶新功能

数据分片&#xff08;Sharding&#xff09;是分布式数据库分而治之 (Divide And Conquer) 这一设计思想的体现。过去的单机数据库在大数据量下往往面临存储和 IO 的限制&#xff0c;而分布式数据库则通过数据划分的规则&#xff0c;将数据打散分布至不同的机器或节点上&#xf…...

b2b电子商务网站盈利模式/国家高新技术企业

计算机应用专业英文求职信导语&#xff1a;“人生在勤&#xff0c;不索何获”&#xff0c;我会努力工作&#xff0c;把工作做得更好&#xff0c;更出色来回报你的信任&#xff0c;愿与贵单位荣辱与共&#xff0c;与同事携手并进&#xff0c;在平凡的工作中来实现我人生的价值&a…...

温岭网站开发/朋友圈信息流广告投放价格

Exchange Server 2016 RTM 可以在 Windows Server 2012、Windows Server 2012 R2 和 Windows Server 2016 的标准版和企业版中进行部署安装&#xff0c;但 Exchange Server 2016 只支持完整 GUI 的 Windows Server 而不支持核心安装的系统&#xff0c;本文我们将对快速部署方式…...

为什么用MyEclipse做网站/清远疫情防控措施

记事本原本是电脑上的一个记事小工具&#xff0c;后来成了记事工具的代表。其实&#xff0c;手机上的记事工具是种类非常多&#xff0c;除了记事本外&#xff0c;便签、备忘录也是非常常用的记事工具。这些记事工具虽然名字不同&#xff0c;但是功能大同小异。 虽然应用商城里…...

电商网站怎么做推广/发布外链的平台有哪些

装饰者模式 定义 : 装饰者(decorator)模式能够在不改变对象自身的基础上&#xff0c;在程序运行期间给对像动态的添加职责。与继承相比&#xff0c;装饰者是一种更轻便灵活的做法。 在不改变对象自身的基础上&#xff0c;在程序运行期间给对象动态地添加一些额外职责 特点 &…...

系统开发工具有哪些/北京seo招聘

有符号数的表示法&#xff0c;机器数(出现在电脑的二进位数值)有3个特点&#xff0c; 无符号或符号转换成数值来表示&#xff0c;没有 10101这样的资料&#xff0c;而是以010101来表示。 (推荐学习&#xff1a;phpstorm)只表示单纯的整数或小数&#xff0c;小数点的位置预设在一…...

商丘网站建设哪家专业/商品热搜词排行榜

有时和一些所谓的朋友聊天&#xff0c;他们都在说他[她]认识什么什么有头有脸的人&#xff01;多厉害等等...就是有点虚了&#xff0c;你认识的人的成就并非是你的努力获得&#xff0c;所以讲太多&#xff0c;反而会让人觉得你很讨厌&#xff01;稍微有点思想的人就很容易看出&…...