19-元素显示模式及浮动(CSS3)

知识目标

  1. 掌握标准文档流的解析规则
  2. 掌握元素的显示模式
  3. 掌握元素浮动属性语法与使用
  4. 掌握浮动塌陷解决方法

1. 标准文档流

在这里插入图片描述

2. 元素显示模式

元素显示模式就是元素(标签)以什么方式进行显示,比如<div>独占一行,一行可以放多个<span>。HTML元素一般分为块元素行内元素两种类型。

2.1 块状元素

常见的块状元素
<div>、<p>、<h1> - <h6>、<ul>、<ol>、<li>、<form> 等。
特点:

  • 独占一行:块状元素在页面中会独自占据一行空间,无论其内容多少,后续元素会自动换行显示。
  • 可设置宽度和高度:能够通过 CSS 的 width 和 height属性来明确指定其宽度和高度。若未设置宽度,默认会占据父元素的全部宽度。
  • 可设置内外边距:可以使用 padding(内边距)和 margin(外边距)属性来调整元素与内容、其他元素之间的距离。
  • 宽度默认是容器(父级宽度)的100%
  • 是一个容器/盒子,里面可以放行内或者块级元素。

注意:

  • 文字类的元素内不能包含块级元素,如<h1>~<h6>
  • <p>标签主要用于存放文字,因此<p>里面不能放块级元素,特别是不能放<div>

2.2 行内元素

常见的行内元素
<a>、<img>、<input>、<label>、<select>、<textarea>、<span> 等。

特点:

  • 不独占一行:行内元素会在同一行内显示,不会强制换行,多个行内元素可以并排显示。
  • 宽度和高度由内容决定无法通过 CSS 的 width 和 height 属性来设置其宽度和高度,其大小取决于元素内部的内容。
  • 内外边距设置受限:水平方向的 padding 和 margin 可以正常设置,但垂直方向的 padding 和 margin设置可能不会产生预期效果。
  • 行内元素只能容纳文本或其他行内元素。

注意:

  • 链接里面不能再放链接
  • 特殊情况链接<a>里面可以放块级元素,但是给<a>转换一下块级模式最安全。

2.3 行内块元素

在行内元素中有几个特殊的标签——<img />、<input />、<td>, 它们同时具有块元素和行内元素的特点。没有专门的学名,只是有些资料称它们们行内块元素
特点:

  • 和相邻内元素(行内块)在一行上,但是他们之间会有空白缝隙,一行可以显示多个(行内元素特点)。
  • 默认宽度就是它本身内容的宽度(行内元素特点)。
  • 高度、行高、外边距以及内边距都可以控制(块级元素特点)。

2.4 显示模式总结

显示模式总结

2.5 显示模式转换-display属性

在这里插入图片描述
question: 为什么要对元素进行转换?
回答:网页是由多个块元素行内元素构成的盒子排列而成的。如果希望行内元素具有块元素的某些特性,例如可以设置宽高,或者需要块元素具有行内元素的某些特性,例如不独占一行排列,可以使用display属性对元素的类型进行转换。

3. 盒子浮动属性语法与使用

3.1 float属性

元素的浮动是指设置了浮动属性的元素会脱离标准文档流的控制,移动到其父元素中指定位置的过程。
设置浮动属性的语法格式:选择器{float:属性值;}
常用属性值:left 左浮动 right 右浮动 none 不浮动(默认值)

3.2 clear属性

为什么要清除浮动?在网页中,由于浮动元素不再占用原文档流的位置,使用浮动时会影响后面相邻的固定元素,这时,如果要避免浮动对其他元素的影响,就需要清除浮动
清除浮动的语法格式: 选择器{clear:属性值;}
在这里插入图片描述
clear属性只能清除元素左右两侧浮动的影响。然而在制作网页时,经常会遇到一些特殊的浮动影响。
由于子元素和父元素为嵌套关系,不存在左右位置,所以使用clear属性并不能清除子元素浮动对父元素的影响。

3.3 浮动塌陷解决办法

3.3.1 浮动塌陷产生的原因

在正常的文档流中,元素会按照从上到下、从左到右的顺序依次排列,父元素的高度会根据子元素的高度自动调整。但当子元素设置了 float 属性(如 float: left 或 float: right)后,子元素会脱离正常的文档流,不再占据原有的空间,此时父元素就无法感知到子元素的高度,从而导致父元素的高度塌陷为 0。
如下案例:因子类浮动导致父类高度为0。
在这里插入图片描述

3.3.2 浮动塌陷解决方案

解决方案1: 给父元素设置固定的高度
在这里插入图片描述
解决方案2: 使用clear属性创建空元素
在浮动元素的末尾添加一个空的块级元素,并为其设置 clear: both 属性,强制该元素在浮动元素之后显示,从而撑开父元素的高度。该方法会多很多无用标签
在这里插入图片描述
解决方案3:使用BFC(块级格式化上下文)
BFC 是一个独立的渲染区域,规定了内部的块级元素如何布局,并且与外部元素相互隔离。可以通过为父元素设置一些特定的 CSS 属性来创建 BFC,从而使其包含浮动的子元素。此种方法代码简洁,但无法显示
溢出
部分。常见的创建 BFC 的方式有:

  • float 值为 left 或 right
  • overflow 值不为 visible(如 overflow: auto 或 overflow: hidden)
  • display 值为 inline-block、table-cell 等
.parent {border: 2px solid red;overflow: auto; /* 创建 BFC */
}

**解决方案4:**使用伪元素清除浮动
这是一种比较常用且推荐的方法,通过为父元素添加伪元素,并为伪元素设置 clear: both 属性来清除浮动。没有增加标签,结构简单。但是属性CSS3特性。

.parent::after {content: "";display: block;clear: both;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML jQuery 项目 PDF 批注插件库在线版 API 示例教程

本文章介绍 HTML && jQuery Web项目中 PDF 批注插件库 ElasticPDF 在线版 API 示例教程&#xff0c;API 包含 ① 导出批注后PDF数据&#xff1b;② 导出纯批注 json 数据&#xff1b;③ 加载旧批注&#xff1b;④ 切换文档&#xff1b;⑤ 切换用户&#xff1b;⑥ 清空批…

CATIA装配体全自动存储解决方案开发实战——基于递归算法的产品结构树批量处理技术

一、功能定位与技术架构 本工具针对CATIA V5装配体文件管理场景&#xff0c;实现了一套全自动递归存储系统&#xff0c;主要功能包括&#xff1a; ​智能路径选择&#xff1a;通过Tkinter目录对话框实现可视化路径选择​产品结构递归解析&#xff1a;深度优先遍历装配体中的子…

C#:接口(interface)

目录 接口的核心是什么&#xff1f; 1. 什么是接口&#xff08;Interface&#xff09;&#xff0c;为什么要用它&#xff1f; 2. 如何定义和使用接口&#xff1f; 3.什么是引用接口&#xff1f; 如何“引用接口”&#xff1f; “引用接口”的关键点 4. 接口与抽象类的区…

基于卷积神经网络CNN实现电力负荷多变量时序预测(PyTorch版)

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记…

关于inode,dentry结合软链接及硬链接的实验

一、背景 在之前的博客 缺页异常导致的iowait打印出相关文件的绝对路径-CSDN博客 里 2.2.3 一节里&#xff0c;我们讲到了file&#xff0c;fd&#xff0c;inode&#xff0c;dentry&#xff0c;super_block这几个概念&#xff0c;在这篇博客里&#xff0c;我们针对inode和dentr…

游戏引擎学习第201天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾之前的内容&#xff0c;并遇到了一次一阶异常&#xff08;First-Chance Exception&#xff09;。 欢迎来到新一期的开发过程&#xff0c;我们目前正在编写调试接口代码。 当前&#xff0c;我们已经在布局系统上进行了一些工…

计算机视觉算法实战——基于YOLOv8的行人流量统计系统

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 引言:智能客流分析的市场需求 在零售、交通、安防等领域,准确的行人流量统计对于商业决策、公共安全管理…

Redis是什么?架构是怎么样的?

目录 前言 一,Redis架构 1.1 本地缓存 1.2 远程缓存 二,强大的Redis优点 2.1 支持多种数据类型 2.2 内存过期策略 2.3 内存淘汰策略 2.4 持久化 三,Redis是什么 前言 我是一个程序员,维护了一个商品服务,它的背后直连Mysql数据库,假设商品服务对外每秒需要提供1万次…

蓝桥杯真题——传送阵

原题连接&#xff1a;蓝桥杯2024年第十五届省赛真题-传送阵 - C语言网 知识点&#xff1a;并查集 题目描述 小蓝在环球旅行时来到了一座古代遗迹&#xff0c;里面并排放置了 n 个传送阵&#xff0c;进入第 i 个传送阵会被传送到第 ai 个传送阵前&#xff0c;并且可以随时选择…

彩虹表攻击

1. 引言 密码安全一直是信息安全领域的重要课题。攻击者可以利用**暴力破解(Brute-Force Attack)和字典攻击(Dictionary Attack)等方式尝试破解密码。然而,计算机性能的提升使得这些方法的效率不断提高,其中彩虹表攻击(Rainbow Table Attack)**是一种极具威胁性的密码…

Vue2 监听器 watcher

文章目录 前言监听器的作用&#xff1a;工作流程&#xff1a;基本用法1. 简单监听2. 对象形式配置 使用场景1. 执行异步操作2. 监听路由变化3. 复杂对象/数组变化 关键配置项与计算属性的区别动态添加监听器注意事项 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&a…

Linux系统程序设计:从入门到高级Day02

这一篇 我带大家复习一下&#xff0c;C语言中的文件 那一部分 大家注意 这里的图并非原创 是当时我老师的图片 本片作用主要是 后续会有文件相关操作&#xff0c;这篇帮大家复习C语言文件中的内容 有助于大家后面的理解。 文章中代码大多是图片格式&#xff0c;是因为这是我…

N元语言模型的时间和空间复杂度计算

对于N元语言模型&#xff0c;时间复杂度是O(V ^ {N-1})&#xff0c;空间复杂度是O(V ^ {N})&#xff0c;N是词汇表的大小。 空间复杂度&#xff1a;存储所有可能的N-1元组及其对应的词的频次需要大量的存储空间。例如&#xff0c;对于一个三元模型&#xff08;N3&#xff09;&…

Tmux 核心操作速查指南

Tmux 最常用操作笔记 1. 基本概念 会话&#xff08;Session&#xff09;&#xff1a;一个tmux会话可以包含多个窗口&#xff0c;适合长期任务管理。窗口&#xff08;Window&#xff09;&#xff1a;每个窗口是一个独立的终端界面&#xff0c;可包含多个面板。面板&#xff08…

哈希表系列一>两数之和

目录 题目&#xff1a;方法&#xff1a;暴力代码&#xff1a;优化后代码&#xff1a; 题目&#xff1a; 链接: link 方法&#xff1a; 暴力代码&#xff1a; public int[] twoSum(int[] nums, int target) {解法一&#xff1a;暴力解法&#xff1a;int n nums.length;for(int…

端到端机器学习流水线(MLflow跟踪实验)

目录 端到端机器学习流水线(MLflow跟踪实验)1. 引言2. 项目背景与意义2.1 端到端机器学习流水线的重要性2.2 MLflow的作用2.3 工业级数据处理需求3. 数据集生成与介绍3.1 数据集构成3.2 数据生成方法4. 机器学习流水线与MLflow跟踪4.1 端到端机器学习流水线4.2 MLflow跟踪实验…

英语学习:读科技论文的难处

如果读起科技论文&#xff0c; 我们就知道自己到底欠缺什么知识了&#xff0c; 那是一个挨着一个的缺。 而且还没有维基百科可用。 怎么办&#xff1f;没办法&#xff01;硬看&#xff01; 而且还要面临语言的差异性困难。比如这一句怎么翻译比较合适&#xff1f;还是直接不翻译…

001 使用单片机实现的逻辑分析仪——吸收篇

本内容记录于韦东山老师的毕设级开源学习项目&#xff0c;含个人观点&#xff0c;请理性阅读。 个人笔记&#xff0c;没有套路&#xff0c;一步到位&#xff0c;欢迎交流&#xff01; 00单片机的逻辑分析仪与商业版FPGA的逻辑分析仪异同 对比维度自制STM32逻辑分析仪商业版逻…

基数排序算法解析与TypeScript实现

基数排序&#xff08;Radix Sort&#xff09;是一种高效的非比较型整数排序算法&#xff0c;通过逐位分配与收集的方式实现排序。本文将深入解析其工作原理&#xff0c;并给出完整的TypeScript实现。 一、算法原理 1. 核心思想 多关键字排序&#xff1a;将整数按位数切割成不同…

最新全开源码支付系统,赠送3套模板

最新全开源码支付系统&#xff0c;赠送3套模板 码支付是专为个人站长打造的聚合免签系统&#xff0c;拥有卓越的性能和丰富的功能。它采用全新轻量化的界面UI 让您能更方便快捷地解决知识付费和运营赞助的难题&#xff0c;同时提供实时监控和管理功能&#xff0c;让您随时随地…