hn-failte's blog hn-failte's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • React
    • Webpack
    • 混合开发
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《React》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • HTML&CSS
  • HTML
  • CSS
  • CSS预处理
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 算法
  • 数据库
  • 操作系统
  • 工具
  • 学习
  • 面试
  • 心情杂货
  • 前端相关
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

hn-failte

前端cv仔
首页
  • 前端文章

    • JavaScript
    • Vue
    • React
    • Webpack
    • 混合开发
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《React》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • HTML&CSS
  • HTML
  • CSS
  • CSS预处理
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 算法
  • 数据库
  • 操作系统
  • 工具
  • 学习
  • 面试
  • 心情杂货
  • 前端相关
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML&CSS

    • CSS布局模型详细介绍
    • flex布局
    • 1ink与@import的区别
    • CSS样式之内容居中方法
    • DIV+CSS布局
    • 有趣的list-style
    • CSS选择符的权重
    • 浏览器异步加载JS的方法
  • HTML

  • CSS

  • CSS预处理

  • 页面
  • HTML&CSS
hn-failte
2018-05-20

CSS布局模型详细介绍

HTML中元素有三种布局模型:流动模型、浮动模型、层模型。

# 流动模型(flow)

HTML网页默认布局就是流动模型,布局如下:

块级元素(block)自上而下垂直分布,因为块级元素默认宽度为浏览器窗口的100%,或者理解为每个块级元素默认占一行。常见块级元素有 div, p, h 等;

**内联元素(inline)**从左到右水平分布,即不像块级元素那样每个独占一行。常见内联元素有 a, span, em 等。

# 浮动模型(float)

上面提到的块级元素是每个独占一行显示,但是定义css浮动模型后就能使两个块级元素并排一行显示。 例如HTML代码:

<div id = "div1">
	<p>Hello</p>
</div>
<div id = "div2">
	<p>World !</p>
</div>
1
2
3
4
5
6

显示结果是这样:

Hello
World !

但是设置浮动css后:

div {
float: left;
}
1
2
3

效果就是这样:

HelloWorld !

也可以设置元素一左一右显示:

#div1 {
float: left;
}

#div2 {
float: right;
}
1
2
3
4
5
6
7

# 层模型(layer)(position)

类似于PS中的图层编辑,HTML中也存在层模型布局,对元素进行定位。 层模型有三种:绝对定位(absolute)、相对定位(relative)、固定定位(fixed)。

# 绝对定位

理解就是字面上的意思,简言之就是相对于上级设置了 position 属性的元素进行定位,如果没有这类上级就是相对于 body 标签,也是浏览器窗口。需要设置css:position: absolute;,然后就可以使用 top, right, bottom, left 这类属性进行定位。例如:

div {
position: absolute;
top: 100px;
left: 150px;
}
1
2
3
4
5

这样就使板块向下移动100像素,向右移动150像素。

# 相对定位

这里的相对较难理解,与数理中的“相对”不太一样,这里是**“相对于自己原来应在的位置”,需要设置css:position: relative;,重要的是不用关心上级是否设置了position属性**,这样就很方便。例如:

div {
position: relative;
top: 100px;
right: 100px;
}
1
2
3
4
5

板块就相对于自己没设置样式前的位置,同时向左向下移动100px。

# 固定定位

这个就好理解了,所谓固定就是指固定于整个浏览器网页窗口不动,即使滚动网页内容也不改变位置,需要设置css:position: fixed,也可以设置 top, right等调整固定的位置。还记得浏览器某些网页右下角的小广告吗,是不是固定在那怎么浏览网页都不动 -_- .

编辑 (opens new window)
#CSS
上次更新: 2021/08/05, 12:37:41
flex布局

flex布局→

最近更新
01
基于 Taro 的微信小程序优化指南
02-16
02
搭建一个极简混合开发架构
08-03
03
使用State Hook
04-06
更多文章>
Theme by Vdoing | Copyright © 2017-2023 hn-failte | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式