前端基础(十五)_多栏布局(两列自适应布局、圣杯布局---三列布局、双飞翼布局--三列布局、等高布局)

article/2025/9/27 16:17:13

什么是自适应?

自适应:让同一个页面自动适应不同大小的设备,从而解决为不同设备提供不同版本页面的问题。
自适应布局:解决在不同大小的设备上呈现相同网页的问题

两列自适应布局

1、Html结构中–左右两个盒子;
2、左边固定宽度,右侧宽度100%;
3、为左侧盒子设置position:absolute;
4、为右侧盒子添加子盒,设置padding-left,属性值为左侧盒子的宽度。
页面:

在这里插入图片描述
代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LiuQing</title><style>html,body {width: 100%;height: 100%;padding: 0;margin: 0;}.left {position: absolute;left: 0;width: 300px;background-color: red;color: #fff;height: 100%;}.right {background-color: pink;width: 100%;height: 100%;}</style>
</head><body><div class="left">left</div><div class="right">right</div>
</body></html>

但是发现一个问题就是right盒子的文本看不到了,因为left盒子脱离了文档流,层级比right高。
我们虽然还没学习flex,但是我们可以提前开一下怎么写的:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LiuQing</title><style>html,body {width: 100%;height: 100%;padding: 0;margin: 0;display: flex;}.left {width: 300px;background-color: red;color: #fff;height: 100%;}.right {flex: 1;background-color: pink;width: 100%;height: 100%;}</style>
</head><body><div class="left">left</div><div class="right">right</div>
</body></html>

页面效果:
在这里插入图片描述

圣杯布局—三列布局

1、Html结构中–先主体内容后侧边栏
2、两侧固定宽度 中间内容宽度设置width:100%;
3、 主题内容和左右侧边栏之间分别加float:left
4、 左侧设置margin-left:-100%;
5、 右侧设置margin-left:-自身宽度;
6、 将中间内容露出来在外面的大盒子上padding: 0 右侧边的宽度 0 左侧边的宽度;
7、分别为左侧边和右侧边设置position:relative;左侧设置left”-左侧边的宽度; 还原左侧边。右侧边设置right:-右侧边的宽度;还原右侧边

主要利用浮动,padding属性实现,上面的方法虽然能实现,但是太过复杂,这里不再实现,哈哈哈哈哈哈…
下面看flex实现:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LiuQing</title><style>html,body {width: 100%;height: 100%;padding: 0;margin: 0;display: flex;}.left {width: 300px;background-color: red;color: #fff;height: 100%;}.center {flex: 1;background-color: pink;color: #fff;height: 100%;}.right {width: 300px;height: 100%;background-color: blue;color: #fff;}</style>
</head><body><div class="left">left</div><div class="center">center</div><div class="right">right</div>
</body></html>

双飞翼布局–三列布局

1、Html结构中–先主体内容 后侧边;
2、两侧固定宽度 中间内容宽度设置width:100%;
3、主题内容和左右侧边栏之间分别加float:left;
4、左侧设置margin-left:-100%;将左侧拉到最左边
5、右侧设置margin-left:-自身宽度; 吧右侧边拉到最右边
6、在主体内容的子盒上设置margin:0 右侧边的宽度 0 左侧宽度;将中间内容露出来

和圣杯布局八九不离十,还是推荐flex。

等高布局

1.内外间距相抵消,为父元素设置overflow:hidden;
实现每一列需要
背景颜色由padding撑开
padding-bottom:1000px; 每一列使用padding撑开
margin-bottom:-1000px; 每一列由margin抵消
给父级盒子家overflow:hidden;
优点:结构简单,兼容所有浏览器
缺点: 伪等高,需要合理控制margin和padding值

2.利用内容撑开父级元素的特点,为每一列添加对应的容器,进行相互嵌套,并在每天一个容器中添加背景颜色
三个嵌套的div负责背景,三列放在最内侧的div盒子中;
通过相对定位分配三列的背景的位置;
通过margin负值,将内容移到对应背景的位置;
父元素溢出隐藏;
优缺点:扩展性好,可以实现自适应,结构嵌套复杂

<div class="box"> overflow:hidden超出隐藏<div class="wrap1">  <div class="wrap2"> 置背景 position:ralative left:200px 使背景显示出来<div class="wrap3"> 设置背景 设置背景 position:ralative left:500px 使背景显示出来<div class="left">左边</div> 设置宽度 左浮动  200px   margin-left=-700px<div class="conter">中间</div>设置宽度 左浮动 500px   margin-left=-500px<div class="right">右边</div>设置宽度 左浮动  300px </div></div></div></div>

都是内容撑开的高度 所以会是实现高度的统一
背景处于wrap1、wrap2、wrap3 一层一层出来用相对定位实现背景颜色的宽度,并用margin负值实现内容和背景吻合


http://chatgpt.dhexx.cn/article/rh1294A9.shtml

相关文章

实现双飞翼布局的三种方式

实现双飞翼布局的三种方式 使用定位来实现 实现流程&#xff1a; 1.父盒子相对定位&#xff0c;左右 padding 为子盒子宽度&#xff0c;左右子盒子绝对定位&#xff0c;宽度写死&#xff1b; 2.左边子盒子 left top 给 0&#xff0c;右边子盒子 right top 给 0&#xff1b;…

2. 双飞翼布局

前端面试总结 本笔记由作者在复习前端CSS部分的相关的一些总结, 如果有什么错误的地方或者有什么相关的建议欢迎联系我 这份笔记借鉴了很多网上的文章, 如果有雷同或者相似的地方, 不用怀疑, 那就是搬得, 如果你是当中一些文章得作者, 如果觉得这种行为不恰当, 请与我联系, 收到…

双飞翼布局

双飞翼布局 一、什么是双飞翼布局 双飞翼布局则是源于淘宝的UED&#xff0c;可以说是灵感来自于页面渲染。一起来看看淘宝的头部实现&#xff1a;就是两边定宽&#xff0c;中间自适应的三栏布局&#xff0c;中间栏要放在文档流前面以优先渲染。 二、HTML布局 首先设置一个co…

圣杯布局和双飞翼布局

双飞翼布局与圣杯布局 圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式。两者的功能相同&#xff0c;都是为了实现一个两侧宽度固定&#xff0c;中间宽度自适应的三栏布局。 特点&#xff1a; 两侧宽度固定&#xff0c;中间宽度自适应&#xff08;三栏布局&…

圣杯布局和双飞翼布局详解

圣杯布局 刚学圣杯双飞翼布局&#xff0c;有点蒙&#xff0c;特写下来加深印象 首先要明确 圣杯布局和双飞翼布局 要解决的问题是什么&#xff1f; 要解决的就是让浏览器先加载最总要的那部分给客户看&#xff0c;我们做前端开发的时候要切合实际场景开发&#xff0c;合理布局…

实现双飞翼布局

说到圣杯布局和双飞翼布局&#xff0c;始终都是面试的高频考点&#xff0c;问题方式也大同小异&#xff0c;比如&#xff0c;实现一个左右固定&#xff0c;中间自适应的布局&#xff1b;实现一个中间部分优先加载的布局…… 现如今&#xff0c;很多web端的应用&#xff0c;他们…

CSS经典布局--圣杯布局和双飞翼布局

圣杯布局与双飞翼布局&#xff0c;都是属于三列布局的经典布局。 双飞翼布局是圣杯布局的优化版&#xff0c;由淘宝UED提出&#xff1b; 它们的效果图类似&#xff0c;但是实现方法不同。 文章目录 一、圣杯布局和双飞翼布局的常规方法1.圣杯 position 解决&#xff08;不推荐&…

前端页面布局之双飞翼布局

1.双飞翼布局说明 双飞翼布局分为 左&#xff0c;中&#xff0c;右三个部分。 左右宽度固定&#xff0c;中间部分自适应 2.双飞翼布局实例 2.1 双飞翼布局float实现 三个部分通过按顺序向左浮动实现。 <!DOCTYPE html> <html lang"en"><head>…

圣杯式布局和双飞翼布局的区别

圣杯布局和双飞翼布局的共同点&#xff1a; 三列布局&#xff0c;两边定宽&#xff0c;中间自适应布局&#xff0c;要注意的是中间栏(重要的东西)要在放在文档流前面以优先渲染。 1、圣杯式布局定义&#xff1a; 圣杯布局是两边固定宽度&#xff0c;中间自适应的三栏布局&…

圣杯布局和双飞翼布局的区别

相同点和不同点 两者的功能相同&#xff0c;都是为了实现一个两侧宽度固定&#xff0c;中间宽度自适应的三栏布局&#xff0c;并且中间部分在HTML代码中要写在前边&#xff0c;这样它就会被优先加载渲染。 主要的不同之处就是在解决中间部分被挡住的问题时&#xff0c;采取的…

双飞翼布局与圣杯布局完全解读

一、两种布局的目的 使得左右两边的宽度不随着浏览器窗口的变化而变化&#xff0c;是固定的&#xff0c;只有中间的部分才可以随着窗口变化而变化。 二、两种布局的要点 经典圣杯布局通过父亲padding给左右俩腾位置从而不会遮住middle内容&#xff0c;而双飞翼是通过设置margin…

双飞翼布局和圣杯布局

双飞翼布局和圣杯布局是前端工程师需要日常掌握的重要布局方式。两者的功能相同&#xff0c;都是为了实现一个两侧宽度固定&#xff0c;中间宽度自适应的三栏布局。&#xff08;中间先加载渲染&#xff09; 双飞翼的布局与实现原理&#xff08;推荐使用双飞翼布局&#xff09;…

圣杯布局与双飞翼布局

圣杯布局 圣杯布局是三列布局&#xff0c;中间宽度自适应&#xff0c;两边定宽&#xff0c;这样做的优势是重要的东西放在文档流前面可以优先渲染。也就是在html文档中&#xff0c;中间的部分要写在左右布局之前。 当然&#xff0c;这种布局是面向PC端的&#xff0c;移动端由于…

双飞翼布局(css)

1. DOM结构 <div class"head"></div><div class"container column"><div class"center"></div></div><div class"left column"></div><div class"right column"><…

经典布局-双飞翼

文章目录 一、双飞翼布局1. 具体实现 一、双飞翼布局 产生的背景&#xff1a; 针对圣杯布局的缺点&#xff0c;淘宝的工程署们提出了双飞翼布局&#xff0c;原理&#xff1a;在中间区域加一层dom节点&#xff0c;然后添加左右margin&#xff0c;实现三栏布局。 1. 具体实现 代…

双飞翼布局详解

作用&#xff1a; 圣杯布局和双飞翼布局解决的问题是相同的&#xff0c;就是两边顶宽&#xff0c;中间自适应的三栏布局&#xff0c;中间栏要在放在文档流前面以优先渲染。 原理&#xff1a; 双飞翼布局为了让中间div内容不被遮挡&#xff0c;直接在中间div内部创建子div用于…

圣杯布局、双飞翼布局具体实现原理和实现方法

为啥写这篇文章 网上关于这两种布局的文章大多数都只是给了代码实现&#xff0c;而没有说出其中关键性代码的作用和原理。 布局实现的目的 1.三列布局&#xff0c;两端固定宽度(其实可以不用固定宽度&#xff09;&#xff0c;中间栏自适应。 2.中间栏优先渲染。 3.任意栏高度…

实现双飞翼布局(圣杯布局)的三种方式

双飞翼布局 一、实现效果二、使用弹性盒模型display:flex实现三、使用calc属性实现四、使用绝对定位实现 一、实现效果 为了实现一个两侧宽度固定&#xff0c;中间宽度自适应的三栏布局&#xff0c;效果如图所示&#xff1a; 二、使用弹性盒模型display:flex实现 静态页面思…

主流布局--双飞翼布局

主流布局–双飞翼布局 什么是双飞翼布局&#xff1f; 双飞翼布局最早是淘宝团队提出的&#xff0c;是针对圣杯局部优化的解决方案。主要是优化了圣杯布局中开启定位的问题。 HTML <div class"parent"><div class"center"><div class"…

css经典布局——双飞翼布局

圣杯布局的出现是来自由 Matthew Levine 在 2006 年写的一篇文章 《In Search of the Holy Grail》&#xff0c;在国内最早是淘宝UED的工程师&#xff08;玉伯大大&#xff09;对圣杯布局改进并传播开来&#xff0c;在中国的叫法是双飞翼布局 。 圣杯布局和双飞翼布局达…