【Java Web学习 | 第三篇】CSS(2) - 元素显示模式

【Java Web学习 | 第三篇】CSS(2) - 元素显示模式

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程”

在这里插入图片描述

文章目录

CSS元素显示模式

2.1 什么是元素显示模式?

元素显示模式指的是HTML元素在页面中默认的表现形态,它决定了元素的排列方式、尺寸计算规则和嵌套关系。简单来说,就是元素"如何展示自己"以及"如何与其他元素相处"。

浏览器会为每个HTML标签预设默认的显示模式,例如:

  • <div>默认占据一整行(块级模式)
  • <span>默认与其他元素并排显示(行内模式)
  • <input>既可以并排显示又能设置宽高(行内块模式)

我们可以通过CSS的display属性修改元素的显示模式,这是实现灵活布局的关键技巧。

2.2 三大核心显示模式详解

1. 块级元素(Block Level Elements)

典型标签<div><h1>-<h6><p><ul><ol><li><header><footer>

核心特性

  • 独占一行:无论内容多少,都会单独占据一整行空间
  • 尺寸可控:可以通过widthheight属性设置宽高
  • 默认宽度:未设置时默认占满父容器的100%宽度
  • 边距生效marginpadding的四个方向(上下左右)都能正常生效
  • 容器特性:可以嵌套其他块级元素或行内元素

代码示例

.change{height: 200px;background-color: aqua;}

注意事项

  • 文字类块元素(如<p><h1>-<h6>)不能嵌套其他块级元素,例如<p>中不能放<div>
  • 块元素虽然可以嵌套行内元素,但语义上应保持合理(如导航容器嵌套链接)
2. 行内元素(Inline Elements)

典型标签<span><a><strong><em><b><i><del><ins>

核心特性

  • 并肩排列:多个行内元素可以在同一行显示
  • 尺寸受限widthheight设置无效,尺寸由内容决定
  • 边距限制marginpadding仅左右方向生效,上下方向不影响布局
  • 嵌套限制:只能容纳文本或其他行内元素,不能嵌套块级元素

代码示例

.span1{/* 宽高设置无效 */width: 100px;height: 100px;/* 背景色等样式有效 */background-color: hotpink;}

注意事项

  • 链接<a>不能嵌套其他链接
  • 行内元素虽然不能设置宽高,但可以通过转换显示模式实现(见后文)
3. 行内块元素(Inline-Block Elements)

典型标签<img><input><td>

核心特性

  • 兼具两者优点
    • 可以和其他行内元素并排显示(行内元素特性)
    • 可以设置widthheight(块级元素特性)
    • marginpadding四个方向均有效(块级元素特性)
  • 默认宽度:由内容决定(类似行内元素)
  • 间隙特性:相邻行内块元素之间会有默认空白间隙

代码示例

input{width: 249px;height: 50px;}

2.3元素显示模式的转换语法

实际开发中,我们经常需要改变元素的默认显示模式以实现特定布局。CSS提供了三种主要转换方式:

1. 转为块级元素:display: block

适用场景:

  • 需要让行内元素(如<a>)独占一行
  • 需要为行内元素设置宽高
  • 需要让链接等可点击区域扩大
.a1{width: 150px;height: 50px;/* 转换为块级元素 */display: block;background-color: pink;}
2. 转为行内元素:display: inline

适用场景:

  • 需要让块级元素(如<div>)并排显示
  • 需要取消块级元素的默认独占一行特性
.change2{/* 转换为行内元素 */display: inline;}
3. 转为行内块元素:display: inline-block

适用场景:

  • 需要元素并排显示且能设置宽高(如导航按钮、表单控件)
  • 需要保持行内特性的同时拥有块级元素的尺寸控制能力
.change3{width: 300px;height: 30px;background-color: skyblue;/* 转换为行内块元素 */display: inline-block;}

2.4 实战案例:小米侧边栏实现

以小米官网侧边栏为例,展示元素显示模式转换的实际应用:

实现思路

  1. 将行内元素<a>转换为块级元素,使其独占一行并可设置宽高
  2. 设置背景色和文字样式
  3. 使用line-height实现文字垂直居中
  4. 添加hover效果实现交互反馈
.a-change{color: white;width: 230px;height: 40px;background-color: #535758;/* 转换为块级元素 */display: block;text-decoration: none;font-size: 14px;text-indent: 2em;/* 文字垂直居中(行高=盒子高度) */line-height: 40px;}/* 鼠标悬停效果 */a:hover{background-color: #ff6700;}

HTML结构

<ahref="#"class="a-change">手机 电话卡</a><ahref="#"class="a-change">电视 盒子</a><ahref="#"class="a-change">笔记本 平板</a><!-- 更多链接 -->

实现效果:

在这里插入图片描述

2.5综合代码演示

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>元素显示模式</title><!-- ------ 元素显示模式 ------ --><!-- 1.作用:网页标签非常多,在不同地方会用到不同的标签,了解他们的特点可以更好的布局我们的网页 2.元素显示模式就是 元素(标签) 以什么方式进行显示,比如<div>自己独占一行,而<span>一行可以放多个 3.HTML元素一般分为 块元素 和 行内元素 两种类型 --><style>/* 111.块元素 常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>,其中<div>标签是最典型的块元素 11.块元素特点: 1.独占一行 2.高度、宽度、外边距和内边距都可以控制 3.宽度默认是容器(父级宽度)的100% 4.是一个容器和盒子,里面可以放行内或块级元素 22.注意: 1.文字类元素不能使用块元素 2.<p>标签主要用于存放文字,因此<p>里面不能放块级元素,特别是不能放<div> 3.同理,<h1>~<h6>等都是文字类块级标签,里面也不能放其他块级元素 例如: <p> <div>这里有问题</div> (使用浏览器的审查器即可发现问题) </p> */.change{/* width: 200px; */height: 200px;background-color: aqua;}/* 222.行内元素 常见的行内元素有<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span> 其中<span>是最典型的行内元素(内联元素) 11.行内元素的特点: 1.相邻行内元素在一行上,即一行可以显示多个 2.高、宽直接设置是无效的 3.默认宽度就是它本身内容的宽度 4.行内元素只能容纳文本后者其他行内元素 22.注意: 1.链接里面不能再放链接 2.特殊情况链接<a>里面可以放块级元素,但给<a>转换一下块级模式最安全 */.span1{/* 这里设置宽度和高度是无效的,但是设置其他的是可以的,比如下面设置背景颜色 */width: 100px;height: 100px;background-color: hotpink;}/* 333.行内块元素 在行内元素中有几个特殊的标签 <img>、<input>、<td>,他们同时具有块元素和行内元素的特点(行内块元素)*//* 11.行内块元素的特点 1.和相邻行内元素(行内块)在一行上,但是他们之间会有空白间隙,一行可以显示多个(行内元素的特定) 2.默认宽度就是它本身内容的宽度(行内元素的特点) 3.高度、行高、外边距和内边距都可以控制(块级元素的特点) */input{width: 249px;height: 50px;}/* --- 元素显示模式的转换 --- (特殊情况下,我们需要元素模式的转换 简单理解:一个模式的元素需要另一种模式的特性)*//* 1. 转换为块元素:display:block 2. 转换为行内元素:display:inline; 3. 转换为行内块元素:display:inline-block; *//* 这里想要增加链接<a>的触发范围 */.a1{width: 150px;height: 50px;/* 1.把行内元素<a>转换为块级元素 这样width和height的修改才能生效 */display: block;background-color: pink;}.change2{/* 2.把块级元素转换为行内元素,实现一行放多个块级元素 */display: inline;}.change3{/* 把行内元素转换为行内块元素 */width: 300px;height: 30px;background-color: skyblue;/* 转换前,对于行内元素来说,宽度和高度的设置是无效的 */display: inline-block;}/* 简洁版小米侧边栏案例 */.a-change{/* 设置字体颜色 */color: white;width: 230px;height: 40px;background-color: #535758;/* 把行内元素转换为块元素 */display: block;/* 取消链接下划线 */text-decoration: none;font-size: 14px;/* 空两个格子 */text-indent: 2em;/* ! 实现单行文字垂直居中 ! --> 解决方案:让文字的行高等于盒子的高度*//* 原理:行高由上空隙、文本本省的高度、下空隙组成 简单理解:行高的上空隙和下空隙把文字挤到中间了, 所以如果行高小于盒子高度,文字就会偏上;吐过行高大于盒子高度,则文字会偏下 */line-height: 40px;}a:hover{background-color: #ff6700;}del{display:block;height:200px;background-color: red;}</style></head><body><!-- 块元素测验 --><divclass="change">比较霸道,自己独占一行</div><!-- 不能这么用!!用浏览器检查会发现有问题 --><p><divclass="change">这里有问题</div></p><!-- 行内元素测验 --><spanclass="span1">pink老师你怎么穿着品如的衣服呢</span><strong>品如的衣服</strong><spanclass="span1">pink老师</span><strong>品如的衣服</strong><!-- 行内块元素测验 --><inputtype="text"/><inputtype="text"/><!-- 元素模式的转换测验 --><!-- 这里想要增加链接<a>的触发范围 --><ahref="picture/img1.jpg"class="a1">夏至未至</a><ahref="picture/img1.jpg"class="a1">夏至未至</a><!-- 使块级元素在一行显示多个 --><divclass="change2">我是块级元素,将要通过元素转换模式(改为行内元素)</div><divclass="change2">我是块级元素 </div><!-- 想行内元素的宽度和高度 --><spanclass="change3">把行内元素转换为行内块元素</span><spanclass="change3">把行内元素转换为行内块元素</span><br/><!-- 简洁版小米侧边栏案例 主要思路 1.链接<a>要实现竖着显示(行内元素转换为块级元素,这样链接就可以独占一行并且有高度和宽度) 2.链接有背景颜色,鼠标经过<a>时链接变色 --><ahref="https://re.jd.com/search?keyword=%E7%94%B5%E8%AF%9D%E5%8D%A1&enc=utf-8"target="_blank"class="a-change">手机 电话卡</a><ahref="picture/img1.jpg"class="a-change">电视 盒子</a><ahref="#"class="a-change"target="_blank">笔记本呢 平板</a><ahref="#"class="a-change">出行 穿戴</a><ahref="#"class="a-change">智能 路由器</a><ahref="#"class="a-change">健康儿童</a><ahref="#"class="a-change">耳机 音响</a><del>你好啊</del>林七夜 </body></html>

显示效果:

在这里插入图片描述

学习资源推荐🐦‍🔥

  1. MDN Web Docs - 最权威的CSS参考文档
  2. W3Schools - 包含丰富的示例和在线编辑器
  3. 菜鸟编程 - 讲解详细的宝藏网站

如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!

在这里插入图片描述

Read more

从「AI改变世界」到「AI帮我改Bug」:一个小厂架构师的Agent落地实战

从「AI改变世界」到「AI帮我改Bug」:一个小厂架构师的Agent落地实战

凌晨两点的顿悟:AI不是魔法,是工具 上周三凌晨两点,我坐在书房里揉着发涨的太阳穴——创业团队的产品刚上2.0版本,客户反馈的Bug堆了满满一屏幕。女儿的乐高积木还散在客厅地板上,老父亲的呼噜声从隔壁房间传来,而我面前的电脑屏幕上,一个红色的错误提示正在闪烁。 「要是有个AI能帮我自动定位Bug就好了。」我对着空气吐槽,顺手又灌了一口冰咖啡。 三个月前,我也是这么想的。那时候AI Agent的概念正火,我在各种技术大会上听了无数次「Agent将颠覆软件开发」的演讲。回到公司后,我拍着胸脯跟团队说:「咱们也搞个AI Agent,让它帮我们写代码、测Bug、甚至做需求分析!」 现在想来,当时的自己简直像个刚毕业的愣头青——热情有余,务实不足。 从「大而全」到「小而美」:我的Agent落地三步走 落地流程可视化 遇到问题 遇到问题 遇到问题 接入错误日志系统 懂代码库结构 全能Agent幻想 系统启动慢 代码质量差 功能臆想 反思与调整 找到最小可用场景

AI的提示词专栏:Prompt 辅助的实体识别(NER)案例

AI的提示词专栏:Prompt 辅助的实体识别(NER)案例

AI的提示词专栏:Prompt 辅助的实体识别(NER)案例 本文围绕 Prompt 辅助的实体识别(NER)展开,先介绍 NER 的核心定义,即从非结构化文本提取特定意义实体并归类,阐述其在多行业的价值,对比传统 NER 与 Prompt 辅助 NER 的差异。接着提出 Prompt 辅助 NER 需遵循目标明确、约束清晰、示例引导的设计原则。随后通过金融、医疗、法律领域的实战案例,展示 Prompt 设计、预期输出及技巧点。还分析常见问题与解决方案,分享结合领域词典、多轮对话、Logit Bias 参数等进阶技巧,最后给出新手入门、行业应用等实践建议,为相关 NLP 任务提供实体数据支撑。 人工智能专栏介绍     人工智能学习合集专栏是 AI

如何借助AI完成测试用例的生成?实测高效落地指南

作为一名测试从业者,想必你也有过这样的困扰:重复编写常规功能的测试用例,耗时又耗力;面对复杂业务逻辑,容易遗漏边缘场景;需求频繁迭代时,用例更新跟不上节奏,常常陷入“加班写用例、熬夜改用例”的内耗里。 而现在,生成式AI的爆发的已经彻底改变了测试用例生成的传统模式——它能快速批量生成用例、覆盖更多人工易忽略的场景,还能适配需求迭代快速更新,将测试人员从重复劳动中解放出来,转向更核心的质量策略设计。但很多人尝试后却反馈:“把需求丢给AI,生成的用例驴唇不对马嘴”“看似全面,实际很多无法执行”。 其实,AI生成测试用例的核心不是“输入→输出”的简单操作,而是“人机协同”的高效配合:AI负责规模化生产,人负责搭建框架、把控质量。今天就结合我的实测经验,手把手教你如何借助AI高效生成测试用例,避开常见坑,真正实现提效不内耗。 一、先搞懂:AI生成测试用例的底层逻辑(避免踩错第一步) 很多人用不好AI的核心原因,是误以为AI能“读懂所有需求”,其实它的本质是“基于已有规则和数据,模仿人类测试思维生成用例”。其底层主要依赖三大技术,

一个人就是一支影视团队:实测国内最强影视级 AI 视频创作平台 TapNow——告别抽卡,导演级精准控制

一个人就是一支影视团队:实测国内最强影视级 AI 视频创作平台 TapNow——告别抽卡,导演级精准控制

实测国内最强影视级 AI 视频平台 TapNow:告别“盲盒抽卡”,实现导演级精准调度         在过去的一年里,文生视频赛道经历了爆发式增长。但对于真正需要将 AI 投入到生产环境中的创作者、产品经理和开发者来说,目前的 AI 视频工具普遍存在一个致命痛点——不可控。        跑偏的物理规律、诡异的肢体形变、如同“开盲盒”般的提示词玄学,让很多原本充满创意的构想,最终沦为废弃的半成品。如果你也受够了这种低效的“抽卡式”创作,那么今天介绍的这款号称国内最强影视级 AI 视频创作平台——TapNow,或许能彻底重塑你的工作流。 核心痛点突破:从“AI 幻觉”到真正的物理一致性 技术社区的受众深知,评价一个 AI 视频大模型底座的强弱,不仅看它能生成多惊艳的单帧,更要看它在长镜头下的时空一致性。 TapNow 在底层架构上进行了深度优化,重点解决了以下三个核心问题: 1. 极高保真度的物理交互: 无论是光影在水面的流动、烟雾的自然消散,