CSS实现三列布局的3种方法及解析

深入探索CSS3多列布局:重构文本流与网页排版的艺术 CSS3多列布局模块允许我们将长篇幅的内容自动分割为多列显示,使得文本可以跨越多列,形成连续且自然的阅读体验。这项技术特别适合新闻、博客和其他需要长时间滚动阅读的网页内容。CSS3的多列布局功能无疑为网页设计增添了丰富的表现力和实用性,它不仅能让长文本内容变得更加易于阅读,同时也提供了更为多样化的排版方案。通过深入理解并熟练运用这些属性,您可以打造出如同纸质出版物般舒适美观的多栏布局,在网页设计的美学与功能性之间找到完美的平衡点。 阅读详情

答案:

  • 1. CSS浮动

第一个 float:left,第二个 float:right,第三个设置margin-left和margin-right

  • 2. 绝对定位法

第一个定位到left,第二个定位到right,第三个设置margin-left和margin-right

  • 3. flex布局

将父元素box设为 display:flex;可将box设置为弹性盒模型进行布局

 

两栏布局:https://www.jianshu.com/p/267239f8e4b2

详细解析:

三栏布局,顾名思义就是两边固定,中间自适应。三栏布局在实际的开发十分常见。

比如淘宝网的首页,就是个典型的三栏布局:即左边商品导航和右边导航固定宽度,中间的主要内容随浏览器宽度自适应。

 

1. 浮动布局:第一个float:left,第二个float:right,第三个设置margin-left和margin-right

左栏左浮动,右栏右浮动,中间主体放在左栏右栏后面(中间栏会占据整行)。

注意点:必须是先写浮动部分,然后再中间块,否则右浮动块会掉到下一行。

中间的宽度不固定,所以要加上margin左右的宽度让左右元素浮动

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .left {
            width: 400px;
            height: 500px;
            background: red;
            float: left;
        }

        .center {
            height: 500px;
            background: yellow;
            margin-left: 470px;
            margin-right: 470px;
        }

        .right {
            width: 400px;
            height: 500px;
            background: red;
            float: right;
        }
    </style>
</head>

<body>
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
</body>

</html>

 

2. 绝对布局:第一个定位到left,第二个定位到right,第三个设置margin-left和margin-right

两边用绝对定位,中间用margin,左右宽度固定,中间宽度不固定,中间主体放在左栏右栏后面(中间栏会占据整行)

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .left {
            width: 400px;
            height: 500px;
            background: red;
            position: absolute;
            left: 0;
        }

        .center {
            height: 500px;
            background: yellow;
            margin-left: 470px;
            margin-right: 470px;
        }

        .right {
            width: 400px;
            height: 500px;
            background: red;
            position: absolute;
            right: 0;
        }
    </style>
</head>

<body>
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
</body>

</html>

 

3. flex布局:将父元素box设为display:flex;可将box设置为弹性盒模型进行布局.

  • flex-grow属性定义项目的放大比例,默认为0(不放大),即如果存在剩余空间,也不放大。
  • flex-shrink属性定义了项目的缩小比例,默认为1(缩),即如果空间不足,该项目将缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。
  • flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。它的默认值为auto,即项目的本来大小。
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .box {
            width: 100%;
            height: 500px;
            display: flex;
            margin: 10px;
        }
        
        .left,
        .right {
            width: 400px;
            height: 500px;
            margin: 10px;
            background-color: red;
        }

        .center {
            /* flex属性是flex-grow,flex-shrink,flex-basis的简写,默认值为0 1 auto。后两个属性可选。 */
            flex: 1;  /* 放大 */
            height: 500px;
            margin: 10px;
            /*左右margin不会叠加*/
            background-color: yellow;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="left">left</div>
        <div class="center">center</div>
        <div class="right">right</div>
    </div>
</body>

</html>

 

2026高频前端面试题(含答案) 一、简单页面 1、CSS选择器样式优先级 2、CSS实现三列布局(左右固定宽度,中间自适应) (1)CSS浮动 第一个float:left,第二个float:right,第三个设置margin-left和margin-right (2)绝对定位法 第一个定位到left,第二个定位到right,第三个设置margin-left和margin-right (3)flex布局 .left{ width:200px; 或者 flex:0 0 200px; } .right{ width:200px; 阅读详情

相关推荐

你不知道的三列布局之圣杯布局和双飞翼布局(超详细)

前言 三列布局相信大家都见过,像上面淘宝、豆瓣等很多平台界面都有使用。他们用到的是圣杯布局和双飞翼布局。圣杯布局和双飞翼布局是一些大厂可能问的问题,圣杯布局与双飞翼布局针对的都是三列左右栏固定中间栏边框自适应的网页布局(想象一下圣杯是主体是加上两个耳朵;鸟儿是身体加上一对翅膀),圣杯布局是Kevin Cornell在2006年提出的一个布局模型概念,在国内最早是由淘宝UED的工程师(传说是玉伯)改进并传播开来,在中国也有叫法是双飞翼布局。在讲这两种布局之前,我们还可以思考一下还有什么方法能做到三列布局吗

yjf1060521866的博客 2102

CSS之布局系列--三列布局(两边固定,中间自适应)--方法/实例

本文用示例介绍CSS三列布局的方案。 三列布局,即:左,中,右。有两种方案:1.两边固定,中间自适应;2.中间固定,两边自适应。本文介绍第一种方案,后边会写一篇博客写第二种方案。 两边固定,中间自适应,一共有如下几种方案: flex布局(推荐) 网格布局 浮动布局 圣杯布局 双飞翼布局 表格布局(不推荐) 绝对定位布局(不推荐)

IT利刃出鞘的博客 6917

CSS3多列(详解网页多列布局应用)

CSS3 多列布局是一种用于排列文本内容的 CSS 模块,它允许开发者将文本分成多列显示,从而创建出类似于报纸、杂志等印刷媒体的布局效果。多列布局适用于需要在网页上呈现大段文本的场景,使得文本内容更具可读性和美观性。

百赢出品,必属精品 2066

CSS三列布局(五种方式)

/*前提:左右宽度为300px,高度为100px,中间宽度自适应*/ * { margin: 0; padding: 0; } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <t

Rita_518的博客 3054

三列布局博客网页模板设计

安装模板之前,首先确保你的服务器环境满足模板运行的基本需求。服务器环境包括操作系统、Web服务器、数据库以及支持的编程语言环境。例如,对于WordPress模板,需要确保服务器上安装了支持的PHP版本和MySQL数据库。操作系统:Linux(Ubuntu, CentOS等)或Windows Server。Web服务器:Apache, Nginx或IIS。数据库:MySQL, MariaDB, PostgreSQL等。PHP版本:根据模板要求安装对应版本的PHP。

weixin_28999139的博客 760

ATE测试的未来:自动化与智能化的技术演进

本文探讨了自动测试设备(ATE)在半导体产业中的技术演进,重点关注自动化与智能化的发展趋势。随着芯片制程的不断进步,ATE面临测试复杂度激增和成本压力等挑战。文章分析了AI技术在测试优化中的应用,如自适应测试和缺陷预测,以及模块化架构和端到端测试生态系统的创新。这些技术突破显著提升了测试效率和设备利用率,为半导体测试的未来发展指明了方向。

weixin_29232507的博客 614

第8章 布局

CSS布局技术的根本即3个基本概念:定位,浮动,外边距操纵。 一 计划布局 1 页面大结构划分————关注内容区域(寻找共同特征而不是视觉表现,寻找重复模式)————在内容中寻找不同布局 二 设计基本结构   wrapper,header,content,footer   用外边距让设计居中的问题: .wrapper{width: 920px;margin:0 a...

101

OpenSees入门指南:从零开始的环境配置与TCL脚本实战

本文提供了一份详细的OpenSees入门指南,涵盖从零开始的环境配置到TCL脚本实战的全过程。文章重点讲解了OpenSees的安装步骤、环境变量设置,并推荐了高效的VS Code集成开发环境配置方法。通过一个简支梁分析的完整TCL脚本示例,手把手引导读者完成第一个非线性有限元分析,帮助土木工程与结构工程领域的研究者与学生快速上手这一强大的开源分析工具。

weixin_28829339的博客 336

页面布局

  1、三列布局,中间自适应 <div class="container"> <div class="left"></div> <div class="right"></div> <div class="center"></div> ...

Cookie0916的博客 204

高通Camera AWB跳变问题实战:从夕阳场景到参数调优的完整避坑指南

本文深入解析高通Camera AWB跳变问题,特别是在夕阳场景下的色温突变现象。通过分析灰区统计失效、光源混合干扰等成因,提供从参数调优到诊断工具链的完整解决方案,包括动态灰区扩展算法、色温平滑过渡方案及高通平台特定优化技巧,帮助工程师有效解决AWB跳变问题。

sre5engineer的博客 860

UVM环境复位--stop_sequences()

在UVM验证环境中, stop_sequences是一个用于强制终止所有正在运行的 Sequence 的方法,通常用于动态控制激励生成流程。1.通过uvm_config_db传递事件和严格的同步机制,此方案符适用于复杂复位场景和动态测试控制。组件耦合:Driver 和 Sequence 不再直接依赖env,通过标准接口通信。竞争条件:确保 Driver 完成清理后再终止 Sequence。代码健壮性:使用非阻塞操作和事件监听,避免死锁。

qq_42779035的博客 3016

前端面试干货——CSS面经总结

搜集上百篇前端岗位面试经验,在更ing

NGUP_LEE的博客 310

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

css常见面试题目总结

一、css表示颜色有几种 1、直接用颜色名表示 如:white、red、gold等。 2、HEX 十六进制记法 1、语法 #RRGGBB 或 #RGB RR:红色值。十六进制正整数 GG:绿色值。十六进制正整数 BB:蓝色值。十六进制正整数 2、说明 以上三个参数,取值范围为:00 - FF。参数必须是两位数。对于只有一位的,应在前面补零。如果每个参数各自在两位上的数字都相同,那么本单位也可缩写为...

qq_42951233的博客 234

人工智能(AI)简史:推动新时代的科技力量

人工智能(AI,Artificial Intelligence)是计算机科学的一个分支,旨在研究和开发可以模拟、扩展或增强人类智能的系统。它涉及多种技术和方法,包括机器学习、深度学习、自然语言处理(NLP)、计算机视觉、专家系统等。

qq_17153885的博客 1万+

C#上位机实战:PLC与检测设备无缝对接,构建产品质量实时判定系统

本文分享了基于C#开发的汽车零部件质量检测系统实现经验。系统采用三层架构:设备层(PLC/视觉相机/三坐标)、通信层(OPC UA/SDK/串口)和应用层(数据采集/判定/存储)。重点解决了三大技术难点:1)通过OPC UA订阅模式将PLC通信延迟从500ms降至50ms;2)反编译厂商Demo破解视觉SDK对接难题;3)采用时间戳+产品ID实现多设备数据同步。系统上线后质检人员减少67%,误判率降至0.5%,数据追溯效率显著提升。文章强调工业场景下稳定性优先于技术复杂度,实用经验值得借鉴。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 801

html计算和模型宽度,html-CSS将宽度100%划分为3列

html-CSS将宽度100%划分为3列我有一个布局,其中有3列。因此,我将100%除以3。结果显然是33.333 ....我的目标是完美1/3屏幕。题:CSS可以处理点后多少个数字以指定宽度的1/3?例如 33.33333 (n=5)←CSS可以处理多少nHTML:CSS:#c1, #c2, #c3 {width: 33%; // 1/3 of 100%}有更好的方法除以3吗?Ing. Mich...

weixin_36301830的博客 391

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

css中两列布局,三列布局实现方法

CSS实现两列布局以及三列布局

qq_51489068的博客 2782

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

CSS实现三列布局

三栏布局 左右定宽,中间自适应 圣杯布局 双飞翼布局

zxl1990_ok的博客 1509

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

三列布局

三列布局:两边固定,中间自适应 效果图: (1)定位实现三列布局 html代码: &lt;body style="position: relative;"&gt; &lt;div id="left"&gt;left&lt;/div&gt; &lt;div id="middle"&gt;middle&lt;/div&gt; &lt;div

m0_38066007的博客 212

【无标题】

你如何理解HTML结构的语义化 说说 title 和 alt 属性 Html5 有哪些新特性、移除了哪些元素 Label的作用是什么?是怎么用的? 浏览器是怎么对 Html5 的离线储存资源进行管理和加载的呢 iframe有那些缺点? HTML W3C的标准 Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? HTML全局属性(global attribute)有哪些 viewport的content属性作用 meta 相关 div+css的布局较table布局有什么优点

web全栈开发的博客 366

两列/三列布局 负margin flex

一:两列布局实现 如何通过 CSS 实现一个左边固定宽度、右边自适应的两列布局 3种方案。1:float,2:position,3:BFC 第3种 BFC(另一篇博客:https://blog.youkuaiyun.com/weixin_43322208/article/details/90452839) 初始设置leftBox左浮动以后,是下面的结果。(因为现在两个box都处在同一个BFC中,根据B...

丰的博客 843

CSS常用布局实现方法

CSS 布局对我来说,既熟悉又陌生。我既能实现它,又没有很好的了解它。所以想总结一下,梳理一下 CSS 中常用的一列,两列,三列布局等的实现方法。本文小白,仅供参考。但也要了解下浮动,定位等。 一、一列布局 1. 居中定宽 这算是最简单且最容易实现的布局了吧。列出最核心的 CSS 代码: body{text-align: center;font-size: 2em;} ....

b541089357546272的博客 175

css实现两列容器等高布局,css2.1——三列布局、圣杯布局、双飞翼布局、伪等高布局...

三列布局(1)两边固定 当中自适应(2)当中列要完整显示(3)当中列要优先加载1. 定位方式(不好,下面说明原因)*{margin: 0;padding: 0;}body{/*2*left+right*/min-width: 600px;}div{height: 100px;}#left,#right{width: 200px;background: pink;}#middle{backgrou...

weixin_42468321的博客 265

html+CSS布局实例:大厂阿里面试题:实现三列布局

三列布局 今天老师上课给我们分享说她的学生面试阿里大厂的其中一道面试题:三列布局 实现三列布局,左右两侧固定100px,中间自适应 方法一:flex布局 我只用了最简单的写法,没有加多余的修饰,如果感兴趣的小伙伴可以自己多加一些自己想要的页面效果上去 <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=e

qq_51066068的博客 2089
上一篇: CSS选择器优先级及解析
下一篇: ES6数组遍历之forEach,map和filter
SpringRolls
博客等级 码龄9年 73粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值