div和span区别

区别1

区别2

App.vue代码

html 复制代码
<template>
  <div class="container">
    <h1>🎯 DIV 和 SPAN 标签的区别演示</h1>
    
    <!-- 第一部分:基本区别演示 -->
    <section class="demo-section">
      <h2>📦 1. 基本布局区别</h2>
      
      <h3>DIV 标签(块级元素):</h3>
      <div class="demo-div">我是第一个 DIV</div>
      <div class="demo-div">我是第二个 DIV</div>
      <div class="demo-div">我是第三个 DIV</div>
      <p class="explanation">👆 注意:每个 DIV 都独占一行,即使内容很少</p>
      
      <h3>SPAN 标签(内联元素):</h3>
      <span class="demo-span">我是第一个 SPAN</span>
      <span class="demo-span">我是第二个 SPAN</span>
      <span class="demo-span">我是第三个 SPAN</span>
      <p class="explanation">👆 注意:所有 SPAN 都在同一行显示</p>
    </section>

    <!-- 第二部分:尺寸设置区别 -->
    <section class="demo-section">
      <h2>📏 2. 尺寸设置区别</h2>
      
      <h3>DIV 可以设置宽高:</h3>
      <div class="sized-div">
        我是 200px 宽,100px 高的 DIV
      </div>
      
      <h3>SPAN 无法设置宽高:</h3>
      <span class="sized-span">我是 SPAN,设置宽高无效</span>
      <p class="explanation">👆 注意:SPAN 的大小完全由内容决定</p>
    </section>

    <!-- 第三部分:实际应用场景 -->
    <section class="demo-section">
      <h2>💡 3. 实际应用场景</h2>
      
      <h3>DIV 用于布局和容器:</h3>
      <div class="layout-example">
        <div class="header">网站头部</div>
        <div class="content">网站内容区域</div>
        <div class="footer">网站底部</div>
      </div>
      
      <h3>SPAN 用于文本样式:</h3>
      <p class="text-example">
        这是一段普通文本,
        <span class="highlight">这部分是重点内容</span>,
        <span class="red-text">这部分是红色文字</span>,
        后面又是普通文本。
      </p>
    </section>

    <!-- 第四部分:混合使用 -->
    <section class="demo-section">
      <h2>🔄 4. 混合使用示例</h2>
      <div class="card">
        <div class="card-header">
          <span class="card-title">用户信息</span>
          <span class="card-status">在线</span>
        </div>
        <div class="card-body">
          用户名:<span class="username">张三</span><br>
          邮箱:<span class="email">zhangsan@example.com</span>
        </div>
      </div>
    </section>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

<style>
.container {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
  font-family: '微软雅黑', Arial, sans-serif;
}

h1 {
  color: #2c3e50;
  text-align: center;
  margin-bottom: 30px;
}

h2 {
  color: #3498db;
  border-bottom: 2px solid #3498db;
  padding-bottom: 5px;
}

h3 {
  color: #27ae60;
  margin-top: 20px;
}

.demo-section {
  margin-bottom: 40px;
  padding: 20px;
  background-color: #f8f9fa;
  border-radius: 8px;
}

/* DIV 演示样式 */
.demo-div {
  background-color: #e74c3c;
  color: white;
  padding: 10px;
  margin: 5px 0;
  border-radius: 4px;
  text-align: center;
}

/* SPAN 演示样式 */
.demo-span {
  background-color: #9b59b6;
  color: white;
  padding: 8px 12px;
  margin: 0 5px;
  border-radius: 4px;
}

.explanation {
  color: #7f8c8d;
  font-style: italic;
  margin-top: 10px;
  padding: 8px;
  background-color: #ecf0f1;
  border-radius: 4px;
}

/* 尺寸演示 */
.sized-div {
  width: 200px;
  height: 100px;
  background-color: #f39c12;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  margin: 10px 0;
}

.sized-span {
  /* 这些设置对 span 无效 */
  width: 200px;
  height: 100px;
  background-color: #1abc9c;
  color: white;
  padding: 10px;
  border-radius: 4px;
}

/* 布局示例 */
.layout-example {
  border: 2px solid #34495e;
  border-radius: 8px;
  overflow: hidden;
}

.header {
  background-color: #2c3e50;
  color: white;
  padding: 15px;
  text-align: center;
}

.content {
  background-color: #ecf0f1;
  padding: 20px;
  min-height: 60px;
}

.footer {
  background-color: #95a5a6;
  color: white;
  padding: 10px;
  text-align: center;
}

/* 文本样式示例 */
.text-example {
  font-size: 16px;
  line-height: 1.6;
  padding: 15px;
  background-color: white;
  border-radius: 4px;
  border: 1px solid #ddd;
}

.highlight {
  background-color: #f1c40f;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: bold;
}

.red-text {
  color: #e74c3c;
  font-weight: bold;
}

/* 卡片示例 */
.card {
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  background-color: white;
}

.card-header {
  background-color: #3498db;
  color: white;
  padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-title {
  font-size: 18px;
  font-weight: bold;
}

.card-status {
  background-color: #27ae60;
  padding: 4px 8px;
  border-radius: 12px;
  font-size: 12px;
}

.card-body {
  padding: 20px;
  line-height: 1.8;
}

.username {
  color: #2c3e50;
  font-weight: bold;
}

.email {
  color: #3498db;
  font-style: italic;
}
</style>
相关推荐
界面开发小八哥4 分钟前
界面控件Kendo UI for Angular 2025 Q2新版亮点 - 增强跨设备的无缝体验
前端·ui·界面控件·kendo ui·angular.js
枷锁—sha1 小时前
从零掌握XML与DTD实体:原理、XXE漏洞攻防
xml·前端·网络·chrome·web安全·网络安全
F2E_Zhangmo1 小时前
基于cornerstone3D的dicom影像浏览器 第二章,初始化页面结构
前端·javascript·vue·cornerstone3d·cornerstonejs
代码的余温1 小时前
如何区别HTML和HTML5?
前端·html·html5
天下无贼!1 小时前
【样式效果】纯CSS从零到一实现动态彩色背景效果
前端·css
DoraBigHead1 小时前
手写 `new`、`call`、`apply`、`bind` + V8 函数调用机制解密
前端·javascript·面试
_pengliang1 小时前
css 音频波浪动画-小程序\PC可用
前端·css·小程序
ai小鬼头2 小时前
AIStarter教你快速打包GPT-SoVITS-v2,解锁AI应用市场新玩法
前端·后端·github
JQLvopkk2 小时前
C#通过HslCommunication连接西门子PLC1200,并防止数据跳动的通用方法
前端·javascript·算法
haaaaaaarry2 小时前
Vue常见指令
前端·javascript·vue.js