Glittering's blog Glittering's blog
Home
  • 学习手册

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
  • 技术文档
  • 算法
  • 工作总结
  • 实用技巧
  • collect
About
  • Classification
  • Label
GitHub (opens new window)

Glitz Ma

前端开发工程师
Home
  • 学习手册

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
  • 技术文档
  • 算法
  • 工作总结
  • 实用技巧
  • collect
About
  • Classification
  • Label
GitHub (opens new window)
  • CSS

    • CSS教程和技巧收藏
    • flex布局语法
    • flex布局案例-骰子
    • flex布局案例-圣杯布局
    • flex布局案例-网格布局
    • flex布局案例-输入框布局
    • CSS3之has函数的使用
    • CSS3之animation动画
    • CSS3之transition过渡
    • css块元素和行内元素
      • css块元素和行内元素
        • 块元素的特点
        • 行内元素的特点
        • 行内块元素(inline-block)
        • BFC布局
        • BFC的触发条件
        • BFC的特性
        • IFC布局规则
    • 「布局技巧」图片未加载前自动撑开元素高度
    • 文字在一行或多行时超出显示省略号
    • 字体font-weight相关知识
    • 从box-sizing属性入手,了解盒子模型
    • 水平垂直居中的几种方式-案例
    • 如何根据系统主题自动响应CSS深色模式
    • 「css技巧」使用hover和attr()定制悬浮提示
    • CSS-function汇总
    • 网格布局中的动画
  • 页面
  • CSS
mamingjuan
2015-06-13
目录

css块元素和行内元素

# css块元素和行内元素

常见的块元素和行内元素

块级元素列表
<address>    定义地址    
<caption>    定义表格标题    
<dd>    定义列表中定义条目    
<div>    定义文档中的分区或节    
<dl>    定义列表    
<dt>    定义列表中的项目    
<fieldset>    定义一个框架集    
<form>    创建 HTML 表单    
<h1>    定义最大的标题    
<h2>    定义副标题    
<h3>    定义标题    
<h4>    定义标题    
<h5>    定义标题    
<h6>    定义最小的标题    
<hr>    创建一条水平线    
<legend>    元素为 fieldset 元素定义标题    
<li>    标签定义列表项目    
<noframes>   为那些不支持框架的浏览器显示文本,于 frameset 元素内部    
<noscript>    定义在脚本未被执行时的替代内容    
<ol>    定义有序列表    
<ul>    定义无序列表    
<p>    标签定义段落    
<pre>    定义预格式化的文本    
<table>    标签定义 HTML 表格    
<tbody>    标签表格主体(正文)    
<td>    表格中的标准单元格    
<tfoot>    定义表格的页脚(脚注或表注)    
<th>    定义表头单元格    
<thead>    标签定义表格的表头    
<tr>    定义表格中的行    
行内元素列表
<a>    标签可定义锚    
<abbr>    表示一个缩写形式    
<acronym>    定义只取首字母缩写    
<b>    字体加粗    
<bdo>    可覆盖默认的文本方向    
<big>    大号字体加粗    
    换行    
<cite>    引用进行定义    
<code>    定义计算机代码文本    
<dfn>    定义一个定义项目    
<em>    定义为强调的内容    
<i>    斜体文本效果    
<img>    向网页中嵌入一幅图像    
<input>    输入框    
<kbd>    定义键盘文本    
<label>    标签为 input 元素定义标注(标记)    
<q>    定义短的引用    
<samp>    定义样本文本    
<select>    创建单选或多选菜单    
<small>    呈现小号字体效果    
<span>    组合文档中的行内元素    
<strong>    语气更强的强调的内容    
<sub>    定义下标文本    
<sup>    定义上标文本    
<textarea>    多行的文本输入控件    
<tt>    打字机或者等宽的文本效果    
<var>    定义变量    
可变元素素列表--可变元素为根据上下文语境决定该元素为块元素或者内联元素
<button>    按钮    
<del>    定义文档中已被删除的文本    
<iframe>    创建包含另外一个文档的内联框架(即行内框架)    
<ins>    标签定义已经被插入文档中的文本    
<map>    客户端图像映射(即热区)    
<object>    object对象    
<script>    客户端脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

# 块元素的特点

块元素会独自占据一整行,或者多行,可以任意设置其大小尺寸,是用于搭建网页布局的必须部分,使网页结构更加紧凑合理。

块级元素有以下几个特点:

  • 总是另起一行(特立独行)
  • 可以设置其宽度、高度,内外边距
  • 在不手动设置宽度的情况下,宽度默认为所在容器的100%(即容器宽度)
  • 可以容纳行内元素和其他块元素。

# 行内元素的特点

行内元素也称为内联元素,行内元素不占有独立区域,其大小仅仅被动的依赖于自身内容的大小(例如文字和图片),所以一般不能随意设置其宽高、对齐等属性。常用于控制页面中文本的样式。

行内元素的特点:

  • 总是和相邻的行内元素在同一行上(物以类聚)
  • 不能设置宽高,水平方向的padding和margin属性可以设置,但是垂直方向上的无效。
  • 默认宽度是他自身内容的宽度。
  • 行内元素只能容纳其他行内元素或者文本。
  • 行内元素最好只设置左右padding跟margin 以免造成元素属性混乱
  • 行内元素内最好不放块级元素。但a标签内可以放块级元素,最好a标签转化成display:block比较安全,以免网页布局紊乱

特殊:a比较特殊,可以放块级元素,但是链接里面不能再放链接。

# 行内块元素(inline-block)

普遍的规则里总有那么几个不一样的,在行内元素中就有那么几个特殊标签,比如<img>/<input>/<td>,可以给他们设置宽高、对齐属性,我们把这样特殊的一类标签称为行内块元素。行内块元素综合了块元素和行内元素的不同特点。

行内块元素的特点:

  • 和相邻行内元素在同一行,但排列有缝隙,会因挤压而换行。
  • 默认宽度是他本身内容的宽度。
  • 宽度、高度、行高、外边距以及内边距都可以手动设置。

# BFC布局

BFC(Block Formatting Context,块格式化上下文) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

1、BFC是一个独立的布局环境,BFC内部的元素布局与外部互不影响;
2、可以通过一些条件触发BFC,从而实现布局上的需求或解决一些问题;
3、可以将BFC想象成一个工具,无需探究其定义,只要着重理解其功能(特性)即可。

# BFC的触发条件

1、根元素(<html>)
2、float值非none 3、overflow值非visible 4、display值为inline-block、table-cell、table-caption、flex、inline-flex 5、position值为absolute、fixed

# BFC的特性

1、属于同一个BFC的两个相邻容器的上下margin会重叠(重点)
2、计算BFC高度时浮动元素也参于计算(重点)
3、BFC的区域不会与浮动容器发生重叠(重点)
4、BFC内的容器在垂直方向依次排列
5、元素的margin-left与其包含块的border-left相接触
6、BFC是独立容器,容器内部元素不会影响容器外部元素

# IFC布局规则

Inline Formatting Contexts,也就是“内联格式化上下文”。

  • 子元素水平方向横向排列,并且垂直方向起点为元素顶部。
  • 子元素只会计算横向样式空间,【padding、border、margin】,垂直方向样式空间不会被计算,【padding、border、margin】。
  • 在垂直方向上,子元素会以不同形式来对齐(vertical-align)
  • 能把在一行上的框都完全包含进去的一个矩形区域,被称为该行的行框(line box)。行框的宽度是由包含块 (containing box)和与其中的浮动来决定。
  • IFC中的“line box”一般左右边贴紧其包含块,但float元素会优先排列。
  • IFC中的“line box”高度由 CSS 行高计算规则来确定,同个IFC下的多个line box高度可能会不同。
  • 当 inline-level boxes的总宽度少于包含它们的line box时,其水平渲染规则由 text-align 属性值来决定。
  • 当一个“inline box”超过父元素的宽度时,它会被分割成多个boxes,这些 oxes 分布在多个“line box”中。如果子元素未设置强制换行的情况下,“inline box”将不可被分割,将会溢出父元素。

利用IFC还可以做很多其他的事情,例如:解决元素垂直居中、多个文本元素行高不一致排列混乱。

上次更新: 2025/04/08, 04:14:59
CSS3之transition过渡
「布局技巧」图片未加载前自动撑开元素高度

← CSS3之transition过渡 「布局技巧」图片未加载前自动撑开元素高度→

Copyright © 2015-2025 Glitz Ma
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式