区别1
区别2
App.vue代码
< 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;
}
.demo-div { background-color : #e74c3c; color : white; padding : 10px; margin : 5px 0; border-radius : 4px; text-align : center;
}
.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 { 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>