CSS布局的相关知识点

举报
吴梦青 发表于 2021/12/24 22:53:11 2021/12/24
【摘要】 1. CSS布局概述布局:确定内容的大小和位置的算法依据元素、容器、兄弟节点和内容等信息来计算布局相关技术3. 常规流Normal Flow· 根元素、浮动和绝对定位的元素会脱离常规流· 其它元素都在常规流之内(in-flow)· 常规流中的盒子,在某种排版上下文中参与布局行级排版上下文是水平摆放,一行摆不下就换行块级排版上下文是从上到下摆放 1.1 行级排版上下文Inline Forma...

1. CSS布局概述

  1. 布局:
  • 确定内容的大小和位置的算法
  • 依据元素、容器、兄弟节点和内容等信息来计算
  1. 布局相关技术在这里插入图片描述

在这里插入图片描述
3. 常规流Normal Flow
· 根元素、浮动和绝对定位的元素会脱离常规流
· 其它元素都在常规流之内(in-flow)
· 常规流中的盒子,在某种排版上下文中参与布局

行级排版上下文是水平摆放,一行摆不下就换行
块级排版上下文是从上到下摆放
在这里插入图片描述

1.1 行级排版上下文

  • Inline Formatting Context (IFC)
  • 只包含行级盒子的容器会创建一个IFC
  • IFC内的排版规则
    • 盒子在一行内水平摆放
    • 一行放不下时,换行显示
    • text-align 定一行内盒子的水平对齐
    • vertical-align决定一个盒子在行内的垂直对齐
    • 避开浮动(float)元素*
<div>
This is a paragraph of text with long word
Honorificabilitudinitatibus. Here is an image
<img src="https: //p4.ssl.qhimg.com/t01364272cf34a8f4d1.png"alt="cat">
And <em>Inline Block</em>
</div>

<style>
div {
  width: 10em;
  font-size: 20px;
  //overflow-wrap: break-word;/*这一行的作用是如果单词过长的话,可以换行*/
  background: #fcc;
}
em {
  display: inline-block;
  width: 3em;
  background: #99f;</style>

1.2 块级排版上下文

  • Block Formatting Context (BFC)
  • 某些容器会创建一个BFC
    • 根元素
    • 浮动、绝对定位、inline-block
    • Flex子项和Grid子项
    • overflow 值不是 visible的块盒

1.3 BFC内的排版规则

  • 盒子从上到下摆放
  • 垂直 margin 合并
  • BFC内盒子的margin不会与外面的合并
  • BFC不会和浮动元素重叠
<span>
  This is a text and
  <div>block</div>
  and other text.
</span>

<style>
  span {
    line-height: 3;
    border: 2px solid red;
    background: coral;
  }
div{
	line-height: 1.5;
	background:lime;
  }
</style>

2. Flexible Box(上)

Flexible Box是什么?

  • 一种新的排版上下文
  • 它可以控制子级盒子的:
    • 摆放的流向(→←↑↓)
    • 摆放顺序
    • 盒子宽度和高度
    • 水平和垂直方向的对齐
    • 是否允许折行
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。