1.table布局

优点:表格中的内容可以自动居中,也加入了 display:table;dispaly:table-cell 来支持 teble 布局(让标签元素以表格单元格的形式呈现,使元素类似于td标签)

缺点: table 比其它 html 标记占更多的字节(造成下载时间延迟,占用服务器更多流量资源),table 会阻挡浏览器渲染引擎的渲染顺序。(会延迟页面的生成速度,让用户等待更久的时间)。

2.流动布局(Flow 默认的)

对于块级元素来说,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。
(每一个便签都显示着自己本来默认的那个宽高)

在流动模型下,行内元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)

3.float浮动布局

首先,什么是浮动?
浮动元素是脱离文档流的,但不脱离文本流,这是什么意思呢,用过 word 的应该知道有一种图片环绕的方式是文字环绕吧,就是这种效果。
那么它有什么特点呢

  • 对自身的影响

    • float 元素可以形成块,如 span 元素。可以让行内元素也拥有宽和高,因为块级元素具有宽高
    • 浮动元素的位置尽量靠上
    • 尽量靠左(float:left)或右(float:right),如果那一行满足不了浮动元素的宽度要求,则元素会往下掉
  • 对兄弟元素的影响

    • 不影响其他块级元素的位置
    • 影响其他块级元素的文本
    • 上面靠非 float 元素 旁边靠 float 元素或者边框
  • 对父级元素的影响

    • 从布局上 “消失”
    • 高度坍塌

3.1高度坍塌

对高度坍塌举个例子

<style>
*{margin: 0;padding: 0;
}
.container{width: 200px;background-color:red;
}.left{background-color: yellow; float: left;height: 50px;width:50px;
}
.right{background-color: yellow; float: right;height: 50px;width:50px;
}
</style>
<body><div class=container>       <span class=left>float</span><span>我是字</span><span class=right>float</span></div><div class="container" style="height: 200px;background: blue">      </div>
</body>
</html>

结果如下

从图中可以看出,两个 float 元素虽然包含在第一个 container 中,但是却超出了第一个 container 的范围,在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。
但是当为子元素设置浮动以后,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。
解决办法:

  • 父元素设置 overflow: auto 或者 overflow: hidden
    结果如图:
  • 给父元素加一个 after 伪类
 .container::after{content:'';clear:both;display:block;visibility:hidden;height:0; }

结果如图:

3.2三栏布局

思路主要是左边一个浮动元素,右边一个浮动元素。这里有个小问题,中间的元素要写在最后,因为中间元素假设有块级元素的话,会影响右边浮动元素的定位,这里演示一下

<style>
*{margin: 0;padding: 0;
}
.container{width: 400px;height: 200px;
}.left{background-color: yellow; float: left;height: 100%;width:100px;
}
.right{background-color: green; float: right;height: 100%;width:100px;
}
.middle{background-color: red; margin-left: 100px;margin-right: 100px;height:100%;
}
.container::after{content: '';display: block;visibility: hidden;clear: both
}</style>
<body><div class=container>       <div class=left></div><div class="middle"></div><div class=right></div></div>
</body>
</html>

结果:

因为浮动元素会把块级元素的位置空出来,所以这里右边的浮动元素把上面的位置空了下来,所以正确的写法应该是

<div class=container>       <div class=left></div><div class=right></div><div class="middle"></div>
</div>

4. flex 布局

flex布局的属性和介绍在另一篇flex布局中有详细的介绍,这里就不多说了。
主要说一下层模型(Layer):
层模型有三种形式:

1、相对定位(position: relative) 2、绝对定位(position: absolute)3、固定定位(position: fixed)。

这里也提一下z-index:
利用z-index,可以改变元素相互覆盖的顺序。
z-index值较大的元素将叠加在z-index值较小的元素之上(适用于定位元素(position属性值为 relative 或 absolute 或 fixed的对象))。

5.响应式布局

5.1 meta 标签
最简单的处理方式是加上一个 meta 标签

<meta name="viewport" content="width=device-width, initial-scale=1">

5.2使用 rem
rem 指的是 html 元素的 font-size,html 元素的 font-size 默认是 16px,所以 1 rem = 16px;然后根据 rem 来计算各个元素的宽高,然后配合 media query 就可以实现自适应
5.3利用媒体查询

以上高度坍塌和三栏布局的代码和图片结果引用的是一个大佬的,原文地址链接为:
原文链接:https://blog.csdn.net/zhang6223284/article/details/81909600

CSS常用的几种布局相关推荐

  1. css垂直居中最常用的八种布局方法

    css垂直居中最常用的八种布局方法 首先定义两个盒子,然后进行下布局样式操作! 利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center 块级元素设置其本身的l ...

  2. 常用的几种布局方式---Flex 布局(垂直居中展示)

    常用的几种布局方式---Flex 布局(垂直居中展示) 前言 一.默认使用静态布局 二.flex布局 1.父元素container 1.1.display:flex 1.2.flex-directio ...

  3. 网站常用的五种布局方案

    一."T"结构布局. 所谓"T"结构.就是指页面顶部为横条网站标志+广告条,下方左面为主菜单,右面显示内容的布局,因为菜单条背景较深,整体效果类似英文字母&qu ...

  4. CSS常见的几种布局方式

    在看前端面试题的时候经常会看到css的布局方式,今天整理一下分享给大家. #单列布局 #两列自适应布局 #三栏布局(圣杯布局和双飞翼布局) 一.单列布局 常见的单列布局有两种: header.cont ...

  5. css常见的几种布局

    1.float 浮动. 浮动元素的顶部,在标准文档流的底部. 浮动会脱离文档流,当一个元素浮动之后,不会影响到块级元素的布局而只会影响内联元素(通常是文本)的排列,文档中的普通流就表现得如同浮动框不存 ...

  6. css设置图标居左_「css图片居中」css - 常用 垂直/水平居中 + 左右布局 - seo实验室...

    css图片居中 主要内容 学习文献 元素居中 胡子哥 - 谈一谈我在阿里的成长 + 2 左右布局 几种常见的CSS布局 -- 掘金 BFC 实现三栏布局的几种方法-- github 实现多列等高布局 ...

  7. Java AWT中常用的三种布局管理器

    文章目录 布局管理器 一.流程布局管理器(FlowLayout) 二.边界布局管理器(BorderLayout) 三 .网格布局管理器 四. 综合实例运用 布局管理器 在java.awt 包中提供了5 ...

  8. css之前端5种布局方式之table布局、float布局、absolute布局、flexbox布局、grid布局

    1.表格布局(不推荐) 父级容器为display:table 表格 子级容器为display:table-cell 一个单元格 特点:在没有特别设置的情况下,子级是自动平分宽度并填满父级的. tabl ...

  9. Android常用的五种布局

    开发工具与关键技术:Android studio64, Android 1.FrameLayout(帧布局)是最简单的布局方式,放置的控件都只能罗列到左上角,控件会有重叠,不能进行复杂的布局. 2.L ...

最新文章

  1. 一学长毕业临走前和我说的话
  2. 智力+贪心的过河问题
  3. nhibernate之many-to-many的性能
  4. Oracle run leve,UNIX自动启动oracle
  5. 2019浙江C语言二级答案,2019年下半年二级C语言试题及答案
  6. 【干货】一张蓝图九大行动领域,实现AI赋能的企业转型-IBM.pdf(附下载链接)...
  7. my-innodb-heavy-4G.cnf中文注释(主要配置文件注释)
  8. 安装VisualC++出现未安装等错误怎么办
  9. bt709和srgb_选择用于多用途视频编辑和色彩校正的显示器— sRGB,DCI-P3,REC 709
  10. python正则表达式中的冒号_正则表达式,正则匹配冒号
  11. 修复iPhone系统白苹果问题
  12. conv、deconv、fractional-strided conv
  13. Java处理Excel文件工具包-easyexcel使用详解
  14. 最全遥感样本数据集分享:场景识别数据集
  15. delta对冲策略_期权的Delta对冲策略对比分析
  16. 重构第26天 移除双重否定(Remove Double Negative)
  17. 刚安装完成的Jmeter5打开之后没有工作台
  18. python江红余青松_python上机实践重点代码江红余青松版
  19. 我所经历的一次Dubbo服务雪崩,这是一个漫长的故事
  20. openssl漏洞检查修复

热门文章

  1. 使用Python实现文件复制
  2. win10共享打印机xp系统无法连接,拒绝访问解决办法
  3. 解决多网卡SNMP获取不到数据的问题
  4. mysql 2059
  5. 有什么好书和经典书籍推荐?
  6. java 腾讯面试题_java腾讯面试题分享,2020年最新java面试题
  7. 如何拍摄出有“逼格”的旅游短视频?三个技巧别忘记
  8. vue 百度地图 + 定位
  9. pickle(模型存储取出)
  10. Android12 Zygote的启动流程