CSS三栏布局的实现方法总结(代码示例)

本篇文章给大家带来的内容是关于css三栏布局的实现方法总结(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

对于前端来说,布局也是必须掌握的,一个好的布局可以让页面看起来更美观。提到布局,那就不得不说CSS三栏布局。这是前端面试经常会问到的一个问题,算是基础题。所谓的三栏布局,一般是指左右两边固定中间自适应,或者是中间固定左右两边自适应。

左右两边固定中间自适应

圣杯布局

HTML结构设置

新建一个父元素,包含三个子元素:left、main、right(注意,main在写在前面,这样在页面渲染时会先加载中间,针对面试题优先加载中间部分)

style样式设置

立即学习“前端免费学习笔记(深入)”;

1、父元素设置高度
 2、三个元素均设置浮动
 3、中间main部分定宽100%:width: 100%,左右两边按产品需求设置宽高
 4、左边设置margin-left: -100%;右边设置margin-right: -右盒子宽
 5、父元素设置padding-left: 左盒子宽;padding-right: 右盒子宽
 6、左右盒子相对定位

go aheadgo aheadvgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo ahead
body { min-width: 700px; } .container { height: 300px; padding: 0 200px 0 200px; } .f { float: left; } .main { width: 100%; height: 300px; background-color: cornflowerblue; } .left { width: 200px; height: 300px; background-color: indianred; margin-left: -100%; position: relative; left: -200px; } .right { width: 200px; height: 300px; background-color: lightgreen; margin-left: -200px; position: relative; right: -200px; }

登录后复制

该布局受内部元素影响而破坏布局的概率低,但是当浏览器屏幕缩小的一定程度时,左右两侧的内容会掉下来,或发生重叠现象。解决方案,给body加一个最小宽度(起码大于左右两侧宽度之和)

双飞翼布局

与圣杯布局的思路是一致的,只是有一些细微的差别。

HTML结构设置

新建一个父元素,包含三个子元素:left、main、right(注意,main在写在前面,这样在页面渲染时会先加载中间,针对面试题优先加载中间部分)

style样式设置

立即学习“前端免费学习笔记(深入)”;

1、父元素设置高度
 2、三个元素均设置浮动
 3、中间main部分定宽100%:width: 100%,左右两边按产品需求设置宽高
 4、中间main部分再加一个盒子inner,放置内容(与圣杯布局的不同点)
 5、左边设置margin-left: -100%;右边设置margin-right: -右盒子宽
 6、新添加盒子,inner,设置左右padding或margin

go aheadgo aheadvgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo ahead
.container { height: 300px; } .f { float: left; } .main { width: 100%; height: 300px; background-color: cornflowerblue; } .left { width: 200px; height: 300px; background-color: indianred; margin-left: -100%; } .right { width: 200px; height: 300px; background-color: lightgreen; margin-left: -200px; } .inner { padding: 0 200px 0 200px; }

登录后复制

自身浮动

HTML结构设置

新建三个元素:left、right、main(注意,main写在后面)

style样式设置

立即学习“前端免费学习笔记(深入)”;

1、左盒子左浮动,右盒子右浮动
 2、中间部分设置margin或padding值

我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容
.main { margin: 0 200px 0 200px; background-color: red; height: 200px; } .left { float: left; width: 200px; background-color: blue; height: 200px; } .right { float: right; width: 200px; background-color: pink; height: 200px; }

登录后复制

CSS3新特性:flex

HTML结构设置

新建一个父元素,包含三个子元素:left、main、right(注意,main写在中间)

style样式设置

立即学习“前端免费学习笔记(深入)”;

1、父元素设置宽度为100%,display: flex;
 2、左右两则按产品需求设置宽高
 3、中间部分设置flex: 1;

我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容
.container { width: 100%; height: 200px; display: flex; } .main { flex: 1; background-color: red; height: 200px; } .left { width: 200px; background-color: blue; height: 200px; } .right { width: 200px; background-color: pink; height: 200px; }

登录后复制

还有其他的写法,这里就不一一赘述,只是列举了一些比较常用的,以及面试可能会问到的情况。CSS3还有很多好玩的特性,在工作和学习的过程中值得深入研究。

中间固定左右两边自适应

浮动 + 负边距 (圣杯布局)

HTML结构设置

新建一个父元素,包含三个子元素:left、main、right(注意,main写在中间)

style样式设置

立即学习“前端免费学习笔记(深入)”;

1、左右两边各占50%的宽度
 2、左边负边距 margin-left 占中间p宽度的一半
 3、右边负边距 margin-right 也占中间p宽度的一半

 
我是中间内容
.main { width: 100px; text-align: center; float: left; background-color: lightgreen; height: 300px; } .left { height: 300px; float: left; width: 50%; margin-left: -50px; background-color: pink; } .right { height: 300px; float: right; width: 50%; margin-right: -50px; background-color: cornflowerblue; }

登录后复制

CSS3新特性:flex

HTML结构设置

新建一个父元素,包含三个子元素:left、main、right

style样式设置

立即学习“前端免费学习笔记(深入)”;

1、父元素设置display: flex;flex-direction: row;
 2、左右设置flex-grow: 1,平分剩余空间

 
我是中间内容
.container { display: flex; flex-direction : row; } .main { width: 200px; height: 300px; text-align: center; background-color: lightgreen; } .left { height: 300px; flex-grow: 1; background-color: pink; } .right { height: 300px; flex-grow: 1; background-color: cornflowerblue; }

登录后复制

CSS3特性 calc(四则运算)

用于动态计算长度值。需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% – 50px)。

HTML结构设置

新建一个父元素,包含三个子元素:left、main、right

style样式设置

立即学习“前端免费学习笔记(深入)”;

1、父元素设置100%宽;
 2、左右设置width: calc(50%, – 中间宽/2)

 
我是中间内容
.container { width: 100%; height: 300px; } .f { float: left; } .main { width: 100px; text-align: center; background-color: lightgreen; height: 300px; } .left { height: 300px; background-color: pink; width: calc(50% - 50px); /*平分中间部分的宽度*/ } .right { height: 300px; background-color: cornflowerblue; width: calc(50% - 50px); /*平分中间部分的宽度*/ }

登录后复制

路漫漫其修远兮,没有别人聪慧,那就坚持不懈努,相信勤能补拙。每天进步一点点,总有一天会迈进一大步。

以上就是CSS三栏布局的实现方法总结(代码示例)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2889076.html

(0)
上一篇 2025年3月10日 21:17:54
下一篇 2025年3月10日 21:18:04

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • border-radius属性如何使用

    border-radius属性用于创建圆角,其使用语法是“border-radius: 1-4 length|%;”,border-radius是一个最多可指定四个“border -*- radius”属性的复合属性。 本文操作环境:Win…

    2025年3月10日
    200
  • box-shadow属性的功能是什么

    box-shadow是css3中的一个属性,是用于向方框添加一个或多个阴影,并设置阴影位置、尺寸、颜色等。 CSS3 box-shadow属性 作用:box-shadow 用于向方框添加阴影 基本语法: box-shadow: h-shad…

    2025年3月10日
    200
  • border-image属性怎么用

    border-image属性是一个是一个简写属性,通过此属性可使用图片来创建边框,该属性的使用语法是“border-image: source slice width outset repeat|initial|inherit;”。 本文操…

    2025年3月10日
    200
  • background-size属性怎么用

    background-size属性是用来设置背景图片尺寸大小的,可以通过长度值或百分比来设置图片大小,或者通过cover和contain来对图片进行伸缩设置。 CSS background-size属性 作用:规定背景图片的尺寸。 说明:在…

    2025年3月10日
    200
  • background-origin属性怎么用

    background-origin属性是用于设置背景图片的定位区域,它有三个值分别表示相对于内边距框定位、相对于边框盒定位、相对于内容框定位。 CSS3 background-origin属性 作用:规定背景图片的定位区域。 说明:设置或检…

    2025年3月10日
    200
  • text-shadow属性怎么用

    text-shadow属性用于为文本添加阴影效果,通过该属性我们可以设置水平或垂直阴影的位置,模糊距离及颜色。 CSS3  text-shadow属性 作用:向文本应用阴影。 说明:设置或检索对象中文本的文字是否有阴影及模糊效果。 语法: …

    2025年3月10日
    200
  • word-wrap属性怎么用

    word-wrap属性用于将长单词或 url 地址在容器的边界处进行自动换行。 CSS3  word-wrap属性 作用:允许长单词或 URL 地址换行到下一行。 说明:设置或检索当内容超过指定容器的边界时是否断行。 语法: word-wr…

    2025年3月10日
    200
  • transition属性怎么用

    transition属性css3中的是一个简写属性,用于实现过渡效果。它设置了需要设置过渡效果的css属性名称,完成的时间、速度曲线及开始时间。 CSS3  transition属性 作用:设置元素的过渡属性 说明:复合属性。检索或设置对象…

    2025年3月10日
    200
  • resize属性怎么用

    resize属性用于指定一个元素是否是由用户调整大小,其使用语法是“resize: none|both|horizontal|vertical;”。 本文操作环境:Windows7系统、HTML5&&CSS3版、Dell G…

    2025年3月10日
    200
  • box-sizing属性怎么用

    box-sizing属性允许以特定的方式定义匹配某个区域的特定元素,该属性的使用语法是“box-sizing: content-box|border-box|inherit;”。 本文操作环境:windows7系统、CSS3版、Dell G…

    2025年3月10日
    200

发表回复

登录后才能评论