正常流布局

布局决定了元素的排列方式。如果让浏览器按照默认方式排列,这叫做正常流(normal flow)布局。正常布局是怎么排列元素的呢?各行从上到下,行内从左到右。

那么什么情况下会开始新的一行呢?块元素会产生新行。元素分为块元素和行内元素两类。块元素独占一行,行内元素则是在行中,在前面元素的右边排列。如果一行排满了,行内元素继续从第二行开始排列。

块元素是 display 属性为 block 的元素,独占一行,可以设置高度 height 、宽度 width (默认值 100% )和内边距、外边距。行内元素是 display 值为 inline 的元素,不产生换行,高度和宽度由元素内容决定,不能设置垂直方向的内边距和外边距。

如果希望为行内元素设置高度、宽度或垂直内外边距要怎么做呢?可以使用行内块元素。行内块元素的 display 是 inline-block ,是一种特殊的行内元素,它像其他行内元素一样,在行内排列,同时像块元素一样可以设置高度、宽度和边距。

块元素 行内元素 行内块元素
display block inline inline-block
默认宽度 占满上级容器宽度 由内容决定 由内容决定
默认高度 由内容决定 由内容决定 由内容决定
换行 独占一行 不换行 不换行
设置宽高 有效 无效 有效
内边距 全部有效 左右有效 全部有效
外边距 全部有效 左右有效 全部有效
[表1 块元素、行内元素、行内块元素对比]

常用的HTML标签和默认显示类型如下:

显示类型 元素 元素简介
块元素 <div> 文档分区
<footer> 页脚
<form> 表单
<h1>-<h6> 1-6级标题
<header> 页眉
<li> 列表项
<nav> 导航链接
<ol> 有序列表
<p> 段落
<table> 表格
<ul> 无序列表
行内元素 <a> 超链接
<span> 行内节
<sub> 下标
<sup> 上标
行内块元素 <button> 按钮
<img> 图像
<input> 输入框
<select> 下拉菜单
<textarea> 多行文本输入
[表2 常用HTML标签和默认显示类型]
相关推荐
子兮曰5 小时前
CSS 复现 23 种设计风格:从拟物到液态玻璃的成本阶梯与兜底写法【实战】
前端·css·视觉设计
燕落南枝1 天前
CSS 学习:类型选择器与 AI 注释实战
css·人工智能·学习
燕落南枝1 天前
CSS 类选择器详解:从入门到实战
前端·css
iCxhust2 天前
模型:500kW飞轮 10kV输电线路 油田抽油机 同时考虑无功补偿 统计:全年节电量 结果56万度电
前端·css·css3·电力·飞轮
燕落南枝2 天前
CSS 后代选择器与子代选择器:从入门到实战
前端·css
王大师王文峰3 天前
HTML 入门到进阶:语义化标签、表单与多媒体一篇打通【语义化布局、表单校验、video/audio、Canvas、无障碍与 SEO】
前端·css·node.js·html·css3·jquery·html5
晓得迷路了4 天前
栗子前端技术周刊第 150 期 - Stack Overflow 开发者调查结果、TanStack Start 1.0...
javascript·css·后端
ShineWinsu5 天前
对于CSS:弹性布局(Flexbox)的解析
前端·css·面试·浏览器·web·网页·弹性布局
云老大-阿里云国际站代理商5 天前
华为云国际站渠道代理商:CSS查询很慢但CPU不高?磁盘I/O、JVM与分片问题怎么排查
css·jvm·华为云
定栓6 天前
Webpack迁到Vite第三节:Less 与 CSS 处理
css·webpack·less