💫(●'◡'●)别让“div和span分不清”成为你前端路上的第一个小土坡!这俩标签就像装修时的“承重墙”和“便利贴”,用法不同但都刚需,3个例子带你一次搞明白。
一、先搞懂核心:div是“块儿”,span是“条儿”
div:块级元素,自带“霸道总裁”属性,独占一行,默认占满父容器宽度,能直接设置宽高。span:行内元素,像“搭子”一样和其他行内元素挤在同一行,不能直接设置宽高,宽度全看内容。
二、3个例子:从“用错”到“用对”
💕💕例子1:给文字加不同颜色(span的主场)
假设你想给一句话里的“重点词”标红,用div会翻车,用span才对:
<!-- 错误示范:用div标红,每个词独占一行 -->
<p>
学习HTML,<div style="color: red;">div是块级元素</div>,<div style="color: blue;">span是行内元素</div>,别搞混!
</p>
<!-- 正确示范:用span标红,文字正常排列 -->
<p>
学习HTML,<span style="color: red;">div是块级元素</span>,<span style="color: blue;">span是行内元素</span>,别搞混!
</p>
效果对比:div会把“标红内容”拆成3行,span则让标红文字嵌在句子里,和普通文字排成一行。
💕💕例子2:做一个简单卡片(div的主场)
想做个“个人信息卡片”,需要固定宽高和背景色,div是天生的“卡片容器”:
<!-- 用div做卡片:能设置宽高、背景,独占一行 -->
<div style="width: 300px; height: 150px; background: #f5f5f5; padding: 20px; border-radius: 8px;">
<h3>我的小卡片</h3>
<p>姓名:前端小白</p>
<p>技能:刚学会div和span</p>
</div>
<!-- 错误示范:用span做卡片,宽高设置无效 -->
<span style="width: 300px; height: 150px; background: #f5f5f5; padding: 20px;">
我是span卡片,宽高没生效,内容挤成一团
</span>
效果对比:div卡片方方正正,span“卡片”会缩成一团,设置的宽高完全没用。
💕💕例子3:div和span配合使用(实战常用)
实际开发中,俩标签常“组队干活”:用div做大容器,span标内部小细节:
<!-- div做“商品卡片”容器,span标“折扣价” -->
<div style="width: 250px; border: 1px solid #eee; padding: 15px; margin: 10px;">
<h4>前端入门小册</h4>
<p>原价:<span style="text-decoration: line-through; color: #999;">99元</span></p>
<p>现价:<span style="color: red; font-weight: bold;">39元</span></p>
<button style="width: 100%; background: #008cba; color: white; border: none; padding: 8px;">立即购买</button>
</div>
逻辑拆解:div负责“卡片整体框架”,span负责“原价划线”“现价标红”这些局部样式,分工明确不混乱。
三、一句话总结:记不住就想“场景”
- 想把内容“分块”(卡片、导航栏、文章段落)→ 用div;
- 想给内容“局部标样式”(标红、加粗、换行)→ 用span。
别再死记“块级/行内”,先想“我要放一个块儿,还是贴一个条儿”,瞬间就懂了!