热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

4种方法实现边栏固定中间自适应的3栏布局

设计一个页面,经常会遇到3栏布局,包括左右边栏和中间主题内容,一般情况下都是边栏固定,中间自适应,常用的方法主要有4种:自身浮动、绝对定位,margin负值和flex布局,今天主要

设计一个页面,经常会遇到3栏布局,包括左右边栏和中间主题内容,一般情况下都是边栏固定,中间自适应,常用的方法主要有4种:自身浮动绝对定位margin负值flex布局,今天主要一起看一看这种布局的实现,首先来看一看效果:

See the Pen QwRzqL by superlin (@superlin) on CodePen.

基础样式我就不说明了,可以看源码,这里只看重要代码。

自身浮动

先看html代码,结果比较简单:

html






这种方法比较简单,左右定宽度分别进行左浮动和右浮动,此时主内容列主会自动插入到左右两列的中间,设定左右margin为两边边栏的宽度即可:

css.self-float .left{
float: left;
}
.self-float .right{
float: right;
}
.self-float .main{
margin: 0 100px;
}

绝对定位

html代码结构和前一种方法类似:

html






这种方法比较直观,容易理解:左右两栏采用绝对定位,固定于页面的左右两侧,主内容列用左右margin值撑开距离。

css.absolute-pos {
position: relative;
}
.absolute-pos .left{
position: absolute;
left: 0;
top: 0;
}
.absolute-pos .right{
position: absolute;
right: 0;
top: 0;
}
.absolute-pos .main{
margin: 0 100px;
}

margin负值

这种方法就稍微复杂了一些了,使用的是负的margin值,而且html标签也增加了,中间的主体要使用双层标签,先看代码。

html








外层div宽度100%显示,并且浮动,内层div为真正的主体内容,含有左右100像素的margin值。左栏与右栏都是采用margin负值定位的,左栏左浮动,margin-left-100%,正好使左栏div定位到了页面的左侧;右侧栏也是左浮动,其margin-left也是负值,大小为其本身的宽度即100px,这样正好填补了右边。

css.margin-negative .main{
width: 100%;
float: left;
}
.margin-negative .main .content {
margin: 0 100px;
}
.margin-negative .left {
float: left;
margin-left: -100%;
}
.margin-negative .right {
float: left;
margin-left: -100px;
}

flex布局

结果依然后前两种相似,代码如下。

html






这种实现特别简单,外层div被设定为伸缩布局,内层左右边栏宽度固定位100像素,而中间内容区main空间分配比例为1,即将剩余空间按1:1全部分配给main,这样才实现了中间的宽度的自适应。

css.flex-container{
display: -webkit-flex;
display: flex;
}
.flex-container .main{
-webkit-flex: 1;
flex: 1;
}

如果你还有好的方法,请一定给我留言哦

欢迎光临小弟博客:Superlin’s Blog
我的博客原文:4种方法实现边栏固定中间自适应的3栏布局


推荐阅读
  • html结构 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ... [详细]
author-avatar
张嫱的小屋_133
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有