【学习】【HTML】块级元素,行内元素,行内块级元素

块级元素

块级元素是 HTML 中一类重要的元素,它们在页面布局中占据整行空间,通常用于创建页面的主要结构组件。

常见的块级元素有哪些?

  • <div>: 通用的容器元素,常用于创建布局块。
  • <p>:段落元素,用于包含文本段落。
  • <h1><h6>:标题元素,用于表示不同级别的标题。
  • <ul><ol><li>:列表元素,分别用于无序列表、有序列表和列表项。
  • <table>:表格元素,用于创建数据表格。
  • <form>:表单元素,用于创建用户输入表单。
  • <header>:页眉元素,用于定义文档或节的头部(HTML5 新增)。
  • <footer>:页脚元素,用于定义文档或节的底部(HTML5 新增)。
  • <nav>:导航元素,用于定义导航链接的集合(HTML5 新增)。
  • <article>:文章元素,用于定义独立的、自包含的内容(HTML5 新增)。
  • <section>:节元素,用于定义文档中的节或区域(HTML5 新增)。
  • <main>:主内容元素,用于定义文档或应用程序的主要内容(HTML5 新增)。
  • <aside>:侧边栏元素,用于定义与主要内容相关的辅助信息(HTML5 新增)。
  • <figure><figcaption>:用于包含图像、图表、视频等内容及其标题或说明(HTML5 新增)。

块级元素的特点?

  1. 独占一行,并且其后的内容也会从新的一行开始。
  2. 如果没有显式设置宽度,块级元素的默认宽度是其父级元素的可填充宽度(标准盒模型/怪异盒模型/边框盒模型)。
  3. 可以设置宽度、高度、内外边距等样式属性。
  4. 许多块级元素具有明确的语义含义,有助于提高文档的可读性和可维护性。例如,<header> 用于定义页面头部,<footer> 用于定义页面底部,<article> 用于定义独立的文章内容。

标准盒模型
width 不包括 padding 和 border,总宽度是 width + padding + border。
边框盒模型
width 包括 padding 和 border,总宽度是 width,在标准模式下通过 box-sizing: border-box; 启用。
怪异盒模型
width 包括 padding 和 border,总宽度是 width,通常在怪异模式下使用。

触发怪异模式
浏览器会根据文档类型声明(Doctype)来决定是否进入怪异模式。以下是一些常见的 Doctype 声明及其效果:

  • 标准模式:使用现代的 Doctype 声明,如 <!DOCTYPE html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,浏览器会进入标准模式。
  • 怪异模式:使用旧的或不完整的 Doctype 声明,如 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 或完全省略 Doctype 声明,浏览器会进入怪异模式。

块级元素的嵌套规则?

块级元素可以包含其他块级元素、行内块级元素,也可以包含行内元素。

<p> 可以嵌套<div>吗?
  1. 规范要求
  • <p> 元素用于定义段落,它应该只包含文本和其他行内元素,如 <span>, <a>, <strong>, <em> 等。
  • 块级元素(如 <div>, <h1><h6>, <ul>, <ol>, <li>, <table>, <form>, <header>, <footer>, <nav>, <article>, <section> 等)不应该嵌套在 <p> 元素中。
  1. 原因
  • 语义清晰:<p> 元素的目的是定义一段文本,嵌套块级元素会破坏这一语义,使文档结构变得混乱。
  • 浏览器解析:大多数现代浏览器会自动修正不规范的嵌套,但这可能导致意外的布局问题和不可预测的行为。
  1. 正确做法
  • 使用合适的块级元素:如果需要在段落中插入块级元素,可以考虑使用其他块级元素来替代 <p>,或者将块级元素放在段落之外。

行内块级元素

行内块级元素在布局中表现为行内元素,但可以设置宽度、高度、边距和内边距,类似于块级元素。

常见的行内块级元素有哪些?

  • <img>:图像元素。
  • <input>:输入元素。
  • <button>:按钮元素。
  • <textarea>:文本区域元素。
  • <select>:选择框元素。

行内块级元素的特点?

  1. 行内块级元素不会独占一行,可以与其他行内元素和文本内容在同一行内显示。
  2. 行内块级元素可以设置宽度和高度,可以使用百分比或固定值。
  3. 行内块级元素可以设置所有方向的边距(margin)和内边距(padding)。

css:vertical-align
CSS vertical-align 属性用来指定行内(inline)、行内区块(inline-block)、表格单元格(table-cell)盒子的垂直对齐方式。

行内块级元素的嵌套规则?

  1. 行内块级元素可以嵌套其他行内块级元素。
  2. 行内块级元素可以包含行内元素,文本内容。
  3. 行内块级元素不应该包含块级元素。

行内元素

行内元素不会独占一行,而是与其他内容在同一行内显示。它们通常用于对文本进行标记和修饰,如链接、强调、图片等。

常见的行内元素有哪些?

  • <a>:超链接。
  • <span>:通用的行内容器,用于对文本进行标记和修饰。
  • <strong>:表示重要文本,通常以粗体显示。
  • <em>:表示强调文本,通常以斜体显示。
  • <img>:图像。
  • <code>:表示计算机代码。
  • <b>:表示粗体文本。
  • <i>:表示斜体文本。
  • <sub>:表示下标文本。
  • <sup>:表示上标文本。
  • <u>:表示下划线文本。
  • <s>:表示删除线文本。
  • <var>:表示变量。
  • <abbr>:表示缩写。
  • <mark>:表示高亮文本。
  • <small>:表示小号文本。
  • <time>:表示日期和时间。

行内元素的特点?

  1. 行内元素不会独占一行,而是与其他行内元素,行内块级元素和文本内容在同一行内显示。
  2. 行内元素不能设置宽度和高度。如果尝试设置宽度和高度,这些属性会被忽略。
  3. 行内元素可以设置左右边距(margin-left 和 margin-right)和内边距(padding-left 和 padding-right),但不能设置上下边距(margin-top 和 margin-bottom)和内边距(padding-top 和 padding-bottom)。
  4. 行内元素不会打断文本流,因此不会影响周围其他内容的布局。

文本流
文本流(Text Flow)是指文本在页面上的自然排列方式。在 HTML 中,文本流通常是从左到右、从上到下的顺序排列。行内元素不会打断这种自然排列方式,而是与其他文本内容在同一行内显示。这与块级元素的行为形成对比,块级元素会从新的一行开始,并且其后的内容也会从新的一行开始。

行内元素的嵌套规则?

  1. 行内元素可以包含其他行内元素,行内块级元素,文本内容。
  2. 行内元素不应该包含块级元素。
<a> 可以包含块级元素吗?
  1. 规范要求
    HTML5:在 HTML5 中,<a> 元素可以包含块级元素。这是为了提高灵活性和语义化,允许创建更复杂的链接结构。
    HTML4 和 XHTML:在 HTML4 和 XHTML 中,<a> 元素只能包含行内元素,不能包含块级元素。
  2. 注意事项
    语义清晰:虽然<a> 元素可以包含块级元素,但应确保这样做不会破坏文档的语义和可读性。
    用户体验:包含块级元素的 <a> 元素可能会导致较大的点击区域,这可能会影响用户体验。确保链接的目标内容是明确的,避免用户误点击。

display

display 属性是 CSS 中一个非常重要的属性,用于控制元素的显示方式。所有 HTML 元素都可以使用 display 属性来控制其显示方式。

display: inline;

行内元素,不独占一行,不能设置宽度和高度,适用于对文本进行标记和修饰。

display: inline-block

行内块级元素,可以与其他行内元素在同一行内显示,可以设置宽度、高度、边距和内边距,适用于创建复杂的布局。

display: block

块级元素,独占一行,可以设置宽度、高度、边距和内边距,适用于定义段落、标题、列表等结构化内容。

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

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

相关文章

CTF攻防世界小白刷题自学笔记14

fileclude&#xff0c;难度&#xff1a;1&#xff0c;方向&#xff1a;Web 题目来源:CTF 题目描述:好多file呀&#xff01; 给一下题目链接&#xff1a;攻防世界Web方向新手模式第17题。 打开一看&#xff0c;这熟悉的味道&#xff0c;跟上一篇文章基本一摸一样的&#xff…

微信小程序开发,仿小红书瀑布流实现

文章目录 1. 涉及到的知识点2. 功能描述3. 通用属性3. 代码实现过程4. 报错问题&#xff0c;解决方法5. 运行效果图 1. 涉及到的知识点 grid-view的使用官方文档指南&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/grid-view.html 2. 功能描述 Sk…

python习题练习

python习题 编写一个简单的工资管理程序系统可以管理以下四类人:工人(worker)、销售员(salesman)、经理(manager)、销售经理(salemanger)所有的员工都具有员工号&#xff0c;工资等属性&#xff0c;有设置姓名&#xff0c;获取姓名&#xff0c;获取员工号&#xff0c;计算工资等…

11. 观光景点组合得分问题 |豆包MarsCode AI刷题

观光景点组合得分问题 - MarsCode 题目要求我们计算一组观光景点的最高组合得分。每个景点都有一个评分&#xff0c;保存在数组 values 中。一对景点 (i < j) 的观光组合得分为 values[i] values[j] i - j&#xff0c;即两者评分之和减去它们之间的距离。 我们需要找到一…

自动化生成测试用例:利用OpenAI提升电商网站测试覆盖率

导语 自动化生成测试用例是软件测试领域一个强大的应用&#xff0c;通过OpenAI的语言模型&#xff0c;测试工程师可以快速生成高质量的测试用例&#xff0c;尤其是在处理边界条件和极端情况时&#xff0c;提升测试覆盖率。本篇文章将结合一个典型的电商网站案例&#xff0c;介绍…

ssm102“魅力”繁峙宣传网站的设计与实现+vue(论文+源码)_kaic

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;“魅力”繁峙宣传网站系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了“魅力”繁峙宣传网站系统的发展&#x…

基于Matlab的碎纸片的自动拼接复原技术

碎纸片的自动拼接复原技术 摘要&#xff1a;破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。目前发现对碎纸片的拼接大部分由人工完成&#xff0c;准确率较高&#xff0c;但耗费大量人力财力及时间&#xff0c;效率很低。随着计算机技术的…

微信小程序的主体文件和页面文件介绍

一、主体文件 主体文件即全局文件&#xff0c;作用于整个小程序&#xff0c;对每一个页面都有影响&#xff0c;必须放到项目的根目录下。 这里提示一下&#xff0c;项目创建选择的是ts less模版。 1、主体文件介绍 主体文件由三部分组成&#xff1a; 1、app.ts&#xff1…

Kafka-Eagle的配置——kafka可视化界面

通过百度网盘分享的文件&#xff1a;kafka-eagle-bin-2.0.8.tar.gz 链接&#xff1a;https://pan.baidu.com/s/1H3YONkL97uXbLTPMZHrfdg?pwdsltu 提取码&#xff1a;sltu 一、界面展示 二、软件配置 1、关闭kafka集群 kf.sh stop 2、将该软件上传到/opt/modules下 cd /opt…

【C#】CS0246: 未能找到类型或命名空间名“MySql”

前言 在学习C#,一定要学会了使用NuGet,以后包问题都可以通过此方法解决。望大家不加班~ 问题描述 项目 visual studio 2022 .NETFramework,Version=v4.8错误 CS0246: 未能找到类型或命名空间名“MySql”问题 CS0246 错误表示编译器无法在当前项目中找到名为“MySql”的…

通过Python 调整Excel行高、列宽

在Excel中&#xff0c;默认的行高和列宽可能不足以完全显示某些单元格中的内容&#xff0c;特别是当内容较长时。通过调整行高和列宽&#xff0c;可以确保所有数据都能完整显示&#xff0c;避免内容被截断。合理的行高和列宽可以使表格看起来更加整洁和专业&#xff0c;尤其是在…

【智能电视??】关于电视、以及IPTV 和OTT TV区别(了解)

此条 关键信息&#xff1a; 智能电视&#xff1f;看不了电视 检索“电视家平替app大全”&#xff0c;获取结果 https://www.163.com/dy/article/IK7IQA6M0553A9YO.html 在国家广播电视总局的官网上&#xff0c;有一份通知上写道“只有开通有线电视或IPTV方可收看电视直播频道节…

VirtualBox和 Vagrant

VirtualBox 是一款开源的虚拟化软件&#xff0c;用于在计算机上创建和运行虚拟机&#xff0c;可以模拟多种操作系统。Vagrant 是一个虚拟化环境管理工具&#xff0c;它提供了一个简单的命令行界面来配置和管理虚拟机&#xff0c;主要是与 VirtualBox 一起使用。 下面我会介绍 …

如何用Java爬虫“采集”商品订单详情的编程旅程

在这个数据驱动的世界里&#xff0c;如果你不是数据&#xff0c;那么你一定是在收集数据。就像蜜蜂采集花粉一样&#xff0c;我们程序员也需要采集数据&#xff0c;以便分析、优化和做出明智的决策。今天&#xff0c;我们就来聊聊如何使用Java编写一个爬虫&#xff0c;这个爬虫…

执行flink sql连接clickhouse库

手把手教学&#xff0c;flink connector打通clickhouse大数据库&#xff0c;通过下发flink sql&#xff0c;来使用ck。 组件版本jdk1.8flink1.17.2clickhouse23.12.2.59 1.背景 flink官方不支持clickhouse连接器&#xff0c;工作中难免会用到。 2.方案 利用GitHub大佬提供…

Python数据分析NumPy和pandas(三十二、数据拆分-应用-合并)

最常用的 GroupBy 方法是 apply&#xff0c;apply 将正在操作的对象拆分为多个片段&#xff0c;在每个片段上调用传递给它函数&#xff0c;然后尝试连接这些片段。 还是用前面的小费数据集tips.csv&#xff0c;它的内容如下图&#xff1a; 假设我们想按smoker进行分组并选择前…

【C++】字符串相乘

1.题目 2.代码 介绍一种比较简单的方法&#xff0c;就是先将字符串逆序&#xff0c;然后取出其中每一位的数相乘、相加。最后再考虑进位问题。 class Solution { public:string multiply(string num1, string num2) {//先排除边界情况&#xff0c;防止输出"00000...&quo…

Leetcode热题100-32 最长有效括号

Leetcode热题100-32 最长有效括号 1. 题目描述2. 解题思路动态规划栈解法 3. 代码实现动态规划栈解法 1. 题目描述 32 最长有效括号 2. 解题思路 动态规划 定义状态&#xff1a; 设 dp[i] 表示以位置 i 结尾的最长有效括号子串的长度。 状态转移方程&#xff1a; 遍历字符…

认证鉴权框架SpringSecurity-1--概念和原理篇

1、基本概念 Spring Security 是一个强大且高度可定制的框架&#xff0c;用于构建安全的 Java 应用程序。它是 Spring 生态系统的一部分&#xff0c;提供了全面的安全解决方案&#xff0c;包括认证、授权、CSRF防护、会话管理等功能。 2、认证、授权和鉴权 &#xff08;1&am…

Oracle 单机及 RAC 环境 db_files 参数修改

Oracle 数据库中 DB_FILES 定义了数据库中数据文件的个数&#xff0c;默认值为200&#xff0c;如果创建数据库文件时超过DB_FILES 定义的值就会报 ORA-00059 错误。 下面分别演示单机及 RAC 环境下修改 db_files 参数的操作步骤。 一、单机环境 1.查询当前参数值 SQL> sh…