前言

作为一名前端开发者,每天都在和浏览器打交道,而浏览器中展示的网页需要做的很美观,并且可以吸引住用户浏览网页,提升用户体验是很重要的,所以不可避免的就要用到各种各样的布局。今天就来列举一下各种常用布局以及实现方法。在列举之前需要和大家聊一下文档的盒模型。文档盒模型分为两种:标准盒模型、怪异盒模型。他们俩有什么区别呢?
标准盒模型的宽度(width) = 左右margin + 左右border + 左右padding + content内容区。
怪异盒模型的宽度(width) = 左右margin + content内容区
在标准盒模型中使用padding会把宽度撑大,而怪异盒模型不会,只会缩小内容区,如果想将一个标准盒模型变成怪异盒模型可以使用box-sizing: border-box;

.left {width: 300px;padding: 30px;float: left;background-color: red;
}
.right {padding: 30px;box-sizing: border-box;width: 300px;float: right;background-color: yellow;
}

上图中我给left盒right都设置了padding为30px,但是right设置了box-sizing属性,可以很明显的看出这两者之间的区别。

文档流布局

这个很简单,就是按照文档原本的渲染方式一条一条的展示出来,元素分为行元素、块元素,行元素可以并列展示,块元素独占一行,这个想必大家都很清楚了。

<body><h1>行元素</h1><p>111233</p><span>文本</span><button>按钮</button>
</body>


使用这种默认的布局方式肯定不能满足前端开发者日常的需求,因为实在是太丑了,虽然可以通过display属性来改变元素的属性,变成行级块元素或者行元素变块元素、块元素变行元素,但是依然达不到想要的效果,所以需要进行美化。

浮动布局

浮动布局主要是利用float属性来实现,可以给元素设置float属性让元素脱离文档流,然后设置left和right来边改元素在文档上的展示位置以此形成我们想要的布局方式,下面用浮动布局完成一个左右宽度固定中间自适应的三栏布局。

<style>* {margin: 0;padding: 0;}div {height: 500px;}.left {width: 300px;float: left;background-color: red;}.right {width: 300px;float: right;background-color: yellow;}.middle {background-color: blue;margin: 0 300px;}</style>
</head>
<body><div class="left"></div><div class="right"></div><div class="middle"></div>
</body>


如果想利用浮动布局实现上中下三栏布局,别忘记清楚浮动即可,否则会出现元素遮挡。注意:使用float浮动布局middle中间的元素在html中要放在最后,否则黄色区域会换行,因为div是块级元素使用margin后右边区域也是属于它的。

定位布局

定位布局是利用position来实现,可以使用absolute绝对定位移动元素的位置,使用绝对定位也会使元素脱离文档流,下面使用绝对定位实现一个三栏布局。

    <style>* {margin: 0;padding: 0;}div {height: 500px;}.left {position: absolute;width: 300px;left: 0;top: 0;background-color: red;}.right {position: absolute;width: 300px;right: 0;top: 0;background-color: yellow;}.middle {background-color: blue;margin: 0 300px;}</style>
</head>
<body><div class="left"></div><div class="middle"></div><div class="right"></div>
</body>


定位布局和浮动布局差不多,需要注意的是这里中间元素不需要放在最后,按照正常顺序即可。

表格布局

表格是很严格的一行就是一行,一列就是一列,并且他们的位置不会发生变化,所以我们可以利用表格布局来实现我们想要的布局,在以前还没有出现这些浮动、定位属性的时候表格用的是最多的布局方式。通过给父元素设置display: table;,给子元素设置display: table-cell;即可实现三栏布局,使用表格布局还是比较方便的,几乎不需要写什么样式就可以实现。

    <style>* {margin: 0;padding: 0;}div {height: 500px;}.parent {display: table;width: 100%;}.parent > div {display: table-cell;}.left {width: 300px;background-color: red;}.right {width: 300px;background-color: yellow;}.middle {background-color: blue;}</style>
</head>
<body><div class="parent"><div class="left"></div><div class="middle"></div><div class="right"></div></div>
</body>

flex布局

flex布局也叫弹性布局,是利用css3新出的属性display: flex实现的,这种布局方式很方便,也不会对文档的结构改变,是当下最热门的一种布局方式,建议每个前端开发者都要掌握。
什么是弹性布局?
2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。目前主流的浏览器都已经支持了这种布局方式。使用这种布局的方式很简单,只需要给父级设置display: flex即可。
在 flex 中,最核心的概念就是容器和轴,所有的属性都是围绕容器和轴设置的。其中,容器分为父容器和子容器。轴分为主轴和交叉轴(主轴默认为水平方向,方向向右,交叉轴为主轴顺时针旋转 90°)。外层包裹子元素的父级被称为容器,内部的子元素被称为项目。父容器上有六大属性:

  1. flex-direction:主轴的方向。
  2. flex-wrap:超出父容器子容器的排列样式。
  3. flex-flow:flex-direction 属性和 flex-wrap 属性的简写形式。
  4. justify-content:子容器在主轴的排列方向。
  5. align-items:子容器在交叉轴的排列方向。
  6. align-content:多根轴线的对齐方式。

这些属性详细的用法在这就不做介绍了,这不是本文的重点,感兴趣的可以点击这个链接了解MDN,下面使用flex写一个三栏布局,看看到底有多简单。

    <style>* {margin: 0;padding: 0;}div {height: 500px;}.parent {display: table;width: 100%;}.parent > div {display: table-cell;}.left {width: 300px;background-color: red;}.right {width: 300px;background-color: yellow;}.middle {/* 占满剩余空间 */flex: 1;background-color: blue;}</style>
</head>
<body><div class="parent"><div class="left"></div><div class="middle"></div><div class="right"></div></div>
</body>


以上就是几种常用的布局方式了,希望对大家会有所帮助,也欢迎大家做新的补充。

前端常用布局大全——细致讲解相关推荐

  1. web前端常用网址大全

    免费接口API http://zhouxunwang.cn/ es6书籍 https://es6.ruanyifeng.com/ js菜鸟教程 https://www.runoob.com/js/js ...

  2. 前端: 42 种前端常用布局方案,值得收藏!

    对 CSS 布局掌握程度决定你在Web开发中的开发页面速度.随着Web技术的不断革新,实现各种布局的方式已经多得数不胜数了. 本篇文章总结了四十二种CSS的常见布局,这四十二种布局可以细分为如下几类: ...

  3. 建议收藏!总结了 42 种前端常用布局方案

    对 CSS 布局掌握程度决定你在Web开发中的开发页面速度.随着Web技术的不断革新,实现各种布局的方式已经多得数不胜数了. 本篇文章总结了四十二种CSS的常见布局,这四十二种布局可以细分为如下几类: ...

  4. 三种前端常用布局及其优缺点

    1.网格布局 优点:可将网页划分成不同的网格,任意组合不同布局,可以实现以前只能通过诸如Bootstrapcss第三方框架的布局效果. 缺点:css 实验性新特性,在浏览器中还没有得到广泛的支持. 2 ...

  5. 前端页面的几种常用布局

    一 .静态页面布局 传统页面布局,网页上的所有元素的尺寸一律使用px作为单位. 静态页面布局通常有几下几种: 1.表格布局 2.层布局 3.div+css样式表布局 表格布局: 表格布局容易把握,是最 ...

  6. web前端html+css常用布局05列表布局

    web前端html+css常用布局05列表布局 注意:引入jquery的jquery-2.1.4.min.js包 图片从自己目录中路径. 代码: <!DOCTYPE html> <h ...

  7. 前端常用的文档及组件库

    前端在使用过程中会用到很多的组件或者文档,需要进行引用.在此归纳自己常用的库 目录 一.W3school  官网推出教程:JS.HTML.CSS.XML等 二.MDN(mdn web docs) 三. ...

  8. a标签download属性无效_html常用标签大全

    html中标签有很多,每一种标签都有着不同的用处,下面这篇文章给大家总结html常用的标签,每一种标签都会跟随一个例子,话不多说,让我们来看看具体内容. 我的学习交流群web前端学习交流群 <f ...

  9. IDEA常用快捷键大全

    Idea常用快捷键大全,帮助我们更快更好地进行项目的开发. 编写代码快捷键 Ctrl+Shift + Enter,语句完成. "!",否定完成,输入表达式时按 "!&qu ...

  10. vscode前端常用插件

    vscode前端常用插件 文章目录 vscode前端常用插件 1. Live Server 1.1 Live Server的使用 2. rest client 3. GitLens 4. CSS pe ...

最新文章

  1. DB_Links创建际删除
  2. Alibaba之MySQL宝典_阿里巴巴内部 MySQL宝典 意外流出!极致经典,堪称数据库的天花板...
  3. [C++] - C++11 多线程 - Mutex
  4. mysql保存表出错1075_navicat出现错误1075怎么办
  5. 16.Nginx 服务器的 gzip 压缩
  6. c语言的关键字怎么编辑,C语言的关键字
  7. 第6章:可维护性软件构建方法 6.1可维护性的度量和构造原则
  8. 开发小工具和一些小技巧
  9. Char类的常用方法及说明
  10. ABAQUS不能导入.x_t文件解决方法
  11. redis修改密码(windows)
  12. classD类和classAB类功放区别
  13. 给2500万行代码修复bug的程序员都怎么上班?
  14. Smartbi电子表格_零编码做报表
  15. 国内舆情监测系统,国内舆情监测通过什么技术实现
  16. 汇编debug指令科普(汇编实验汇编集成环境+调试)
  17. vue项目简单的后台管理系统
  18. C#屏幕录像控件代码
  19. 计算机硬片,PVC 硬片拉伸强度试验机
  20. okhttp3上传图片

热门文章

  1. 转载一篇适合初学者“区分自由浮动时间和总浮动时间”的文章
  2. 视频直播技术大全、直播架构、技术原理和实现思路方案整理
  3. 【关于测试开发工程师】
  4. ps安装了可以打开但开始里面找不到_PS CC2017安装教程【64/32位】
  5. 手写数字图像识别-SVM算法投票法实现多分类
  6. mybatis的缓存,看这一篇就够了!
  7. 一篇搞懂Git 和 SVN 的区别
  8. E盾V60原版网络验证包含个人动手改IP地址源码软件加密一机一码
  9. 【软件工程】北邮国际学院大三下期末复习
  10. Q 系列PLC ST 语言编程笔记