很多人对CSS的布局有困惑,实际的应用场景中由于布局种类多难以选择。今天我花些时间总结下自己对CSS布局的理解,分析下了解各种布局的优劣,同时希望能分享给初入前端的朋友们一些在布局上的经验,如果有那些地方总结的不好,欢迎大家指正。言归正传,现在就来揭开各种布局的面纱。

单列布局

水平居中

水平居中的布局方式是最常见的一种,常常用于头部、内容区、页脚,它主要的作用是控制盒子在整个页面以水平居中的方式呈现。

使用margin:0 auto来实现

.child{width:800px; margin:0 auto;}

优势:兼容性好

劣势:需要指定盒子 宽度

1.使用table来实现

.child{display:table; margin:0 auto;}

优势:不需要父容器parent,只需要对自身进行设置

劣势:IE6、7需要调整结构

2.使用inline-block和text-align来实现

.parent{text-align:center;}

.child{display:inline-block;}

优势:兼容性好

劣势:需要同时设置子元素和父元素

3.使用绝对定位absolute来实现

使用绝对定位来实现水平居中布局有两种情况,一种子容器无宽度,另一种子容器有宽度。无宽度可以用一下代码,如果是有宽度,则可以设置margin-left负值为容器宽度的一半。

.parent{position:relative;}

.child{position:absolute; left:50%; transform:translateX(-50%);}

优势:无需设置容器宽度,在移动端可以使用

劣势:兼容性差,需要IE9及以上浏览器的支持

4.使用flex布局来实现

flex有两种方法来实现水平居中,父容器设置display:flex, 一种直接在父容器中设置justify-content属性值center。第二种在子容器中使用margin: 0 auto

.parent{display:flex; justify-content:center;}

.parent{display:flex;}

.child{margin:0 auto;}

优势:实现起来简单,尤其是使用在响应式布局中

劣势:兼容性差,如果大面积的使用该布局可能会影响效率

垂直居中

这边说的垂直居中是子容器无高的垂直居中,并非单行文本垂直居中line-height

1.使用绝对定位absolute来实现(同水平居中的使用方法,优劣一样)

.parent{position:relative;}

.child{position:absolute; top:50%; transform:translateY(-50%);}

2.使用flex来实现

.parent{display:flex; align-items:center;}

3.使用display:table-cell来实现

.parent{display:table-cell;vertical-align:middle;height:400px;}

总结:将水平居中和垂直居中两种布局方法相互的结合起来就可以实现水平居中布局。这边只举一个用绝对定位来实现水平垂直居中布局的方法,别的方法大家可以尝试自己练习。(以下介绍各种布局时都是基于上面水平和垂直居中的方法,所有对于它们的优劣就不再分析。)

.parent{position:relative;}

.child{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);}

多列布局

多列布局也是非常常见的,适用于一侧定宽,另一侧自适应的布局。

浮动布局

前段时间我总结过关于两列浮动布局方法,这里我就不再从新总结了,如果有兴趣的朋友可以参考前端时间关于浮动布局的方法(总结)这篇博客。

多列等分布局

多列等分布局常常出现在内容中,多数为同功能、同阶级内容的并排显示。

HTML代码

1
2
3
4

1.使用flex来实现多列布局

.parent{display:flex;}

.column{flex:1;}

.column+ .column{margin-left:20px;}

2.使用table来实现多列布局

.parent{display:table; table-layout:fixed; width:100%;}

.column{display:table-cell; padding-left:20px;}

3.使用float来实现多列布局

.column{float:left; width:25%; padding-left:20px; box-sizing:border-box;}

提示:使用table和float实现多列布局的时候需要注意,如果要设置背景颜色则必须将.column盒子作为父容器在其里面添加一个子容器,在设置背景颜色,如果直接在.column容器中设置背景颜色会由于padding而无法产生盒子之间的间距。

九宫格布局

HTML代码

1.使用flex来实现九宫格布局

.parent{display:flex; flex-direction:column;width:300px;}

.row{height:100px; display:flex;border:1px solid red;}

.item{width:100px; background-color:#ccc;border:1px solid red;}

2.使用table来实现九宫格布局

.parent{display:table; table-layout:fixed; width:100%;}

.row{display:table-row;}

.item{display:table-cell; width:33.3%; height:200px; border:1px solid red;}

全屏布局

HTML代码

使用绝对定位实现全屏布局

html,body,.parent{height:100%; overflow:hidden;}

.top{position:absolute; top:0; left:0; right:0; height:0; background-color:black; height:100px;}

.left{position:absolute; top:100px; left:0;bottom:50px; width:200px; background-color:orange;}

.right{position:absolute; top:100px; left:200px; right:0; bottom:50px; background-color:grey; overflow:hidden;}

.bottom{position:absolute; left:0; right:0; bottom:0; height:50px; background-color:pink;}

响应式布局

meta标签的使用

使用媒体查询

@media screen and (max-width: 480px){

/*屏幕小于480px的样式*/

}

原文:https://www.cnblogs.com/ming-js/p/9476769.html

html里面布局的优劣,HTML与CSS布局技巧总结相关推荐

  1. php div 实现上中下布局,上中下结构DIV CSS布局实例

    实例布局之上中下结构DIV CSS布局 上中下结构为常见布局结构,一般普通(企业网站)网页我们可以大致分为上(头部).中(内容区).下(底部版权)组成.而这其实是由最简单上下结构CSS布局演变而成,只 ...

  2. 简述css布局技术的特点,div+css布局技术漫谈

    CSS布局常用的方法: float : none | left | right 取值: none : 默认值.对象不飘浮 left : 文本流向对象的右边 right : 文本流向对象的左边 它 ...

  3. 用html布局怎么调试,网页规划 CSS布局调试的有用办法

    网页规划中CSS布局是很重要的部分,下面介绍几种查看调试CSS布局的有用办法. 1. 查看HTML元素是否有拼写过错.是否忘掉完毕符号 即使是内行也经常会弄错div的嵌套关系.能够用dreamweav ...

  4. 小程序跳转样式布局错乱_解决导致CSS布局页面错乱的方法

    在做网站建设中,经常会遇到css布局页面错乱,下面是如解决错乱的方法. 1. float元素务必指定width属性 很多浏览器在显示未指定width的float元素时会有bug.所以不管float元素 ...

  5. html css布局作品,130个漂亮CSS布局站点参考_CSS/HTML

    以下是CSSVault.com推荐的2004年1月--3月130个CSS布局站点,供大家参考: CCD Design Webexpresse Happy Cog Icelandic National ...

  6. css dl图片布局,经典图文列表以及CSS布局切换

    Android:在任务列表隐藏最近打开的app 对于某一个应用,如果不想在最近打开的app列表中留下任何纪录,即按下Home键回到主页,再按任务键的时候,任务列表看不到这个app,在AndroidMa ...

  7. HTML模板布局页面教程,css网页布局教程 标签 HTML Nav CSS布局教程

    短视频,自媒体,达人种草一站服务 大家好,我是毛仔,从今天开始毛仔和大家一起学习div+css页面布局. 从2008年7月份开始,毛仔辞去了原来的工作,和老兄一起网络创业.在那半年时间里学习了不少东西 ...

  8. html 1-3-1布局,3.web前端—HTML+CSS布局(1)

    酷狗网页布局 image.png 一.网页基本布局(永远是第一步) 代码 酷狗网页布局 /*css样式*/ body div{ width: 1520px; } .a{ background-colo ...

  9. 原 !神静态网页布局详解,html+css布局实战,附详细代码

    代码整体效果展示 1页面布局思路 本次界面的布局主要采用定位流的方式来进行布局.因为界面具有很多透视效果,以及背景图片的重叠.接下来我将详细讲解布局 第一层定位流: 素材: 此图片作为总体背景应该放在 ...

  10. bootstrap 垂直居中 布局_给你一份详细的CSS布局指南,请查收

    作者:catboy 文章来源:http://t.cn/A6wtKzip 在我们前端开发过程中,写css(包括sass, less, stylus这样的预处理器)进行设计稿的样式还原是一项重要的工作,而 ...

最新文章

  1. 我也说说Emacs吧(6) - Lisp速成
  2. 推荐几款好用又免费的项目管理工具
  3. MySQL中字段字符集不同导致索引不能命中
  4. zend opcache的最佳设置
  5. 防止Entity Framework重复插入关联对象
  6. 利用老毛头启动盘重装win7
  7. 数字的处理 :小数点四舍五入
  8. Flask笔记-通过Model访问数据库
  9. django 1.8 官方文档翻译: 2-6-3 提供初始数据
  10. SQL Server 索引基础知识(1)--- 记录数据的基本格式
  11. 测试JUC安全类型的集合(Java)
  12. WebService学习之如何使用实体对象作为参数
  13. 一个故事告诉你什么才是好的程序员
  14. SQLyog中文版安装教程
  15. 宝立食品上交所上市:年营收15.78亿 市值58亿
  16. 基于TPS(Thin Plate Spines)的STN网络的PyTorch实现
  17. UVA 12325 Zombie's Treasure Chest
  18. 监控与日志的黄金法则
  19. 纯流量卡(物联卡)的套路,你了解多少
  20. 10个高质量免费学习网站

热门文章

  1. Unity场景中脚本的Update和LateUpdate函数执行的先后问题
  2. linux查看挂载内存卡,Ubuntu Linux 挂载移动硬盘、U盘、SD卡(对于新手)
  3. 10配置php环境_macOS配置PHP环境
  4. hbase 查询固定条数_HBase统计表行数(RowCount)的四种方法
  5. x11 matlab仿真,基于MATLABSimulink的弹道仿真方法.pdf
  6. css盒模型(附图解)
  7. 小程序方法-小程序获取上一页的数据修改上一个页面的数据
  8. python算法——冒泡排序
  9. 2018-05-21 Linux学习
  10. 背包问题2 (lintcode)