HTML基础与语义化

HTML(超文本标记语言)是构建网页内容和结构的基础。现代HTML5引入了语义化标签,使网页结构更清晰,有利于SEO和可访问性。

HTML5新特性

  • 语义化标签:header, nav, section, article, footer等
  • 多媒体支持:audio, video标签原生支持音视频
  • Canvas绘图:通过JavaScript实现动态图形
  • 本地存储:localStorage和sessionStorage
  • 表单增强:新的input类型和属性

HTML结构最佳实践

  • 使用语义化标签描述内容结构
  • 为图片添加alt属性提高可访问性
  • 合理使用meta标签优化SEO
  • 保持代码整洁和缩进一致
  • 使用W3C验证器检查代码有效性
HTML掌握程度评估 85%

CSS样式与布局

CSS(层叠样式表)控制网页的表现和布局。现代CSS3提供了Flexbox、Grid等强大布局系统,以及动画、渐变等视觉效果。

CSS布局系统

  • Flexbox:一维布局模型,适合组件和小规模布局
  • CSS Grid:二维布局系统,适合整体页面布局
  • 响应式设计:媒体查询适配不同设备
  • 定位系统:relative, absolute, fixed, sticky
  • 盒模型:content, padding, border, margin

CSS现代特性

  • CSS变量:自定义属性,提高代码复用性
  • 动画与过渡:transition和animation
  • 变换效果:transform实现旋转、缩放等
  • 滤镜效果:blur, grayscale, brightness等
  • 混合模式:background-blend-mode
CSS掌握程度评估 80%

Vue.js框架

Vue.js是一套用于构建用户界面的渐进式JavaScript框架,核心库只关注视图层,易于上手且功能强大。

Vue核心概念

  • 声明式渲染:模板语法将数据渲染为DOM
  • 组件系统:可复用的Vue实例,构建大型应用
  • 响应式数据:数据变化自动更新视图
  • 指令系统:v-if, v-for, v-bind, v-on等
  • 生命周期钩子:created, mounted, updated等

Vue生态系统

  • Vue Router:官方路由管理器
  • Vuex:集中式状态管理模式
  • Vue CLI:标准化项目脚手架
  • Vite:下一代前端构建工具
  • Vue 3:组合式API,性能提升
Vue.js掌握程度评估 75%

代码示例

以下是一些前端开发中常见的代码示例,你可以尝试修改并查看效果。

HTML5语义化结构示例
HTML示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>语义化HTML示例</title>
</head>
<body>
    <header>
        <h1>网站标题</h1>
        <nav>
            <a href="#">首页</a>
            <a href="#">关于</a>
        </nav>
    </header>
    
    <main>
        <article>
            <h2>文章标题</h2>
            <p>这是一篇关于语义化HTML的文章...</p>
        </article>
        
        <aside>
            <h3>相关链接</h3>
            <ul>
                <li>链接1</li>
            </ul>
        </aside>
    </main>
    
    <footer>
        <p>© 2026 我的网站</p>
    </footer>
</body>
</html>
Vue.js组件示例
Vue单文件组件示例
<template>
  <div class="counter">
    <h3>{{ title }}</h3>
    <p>当前计数: {{ count }}</p>
    <div class="buttons">
      <button @click="increment">增加</button>
      <button @click="decrement">减少</button>
      <button @click="reset">重置</button>
    </div>
  </div>
</template>

<script>
export default {
  name: 'Counter',
  props: {
    title: {
      type: String,
      default: '计数器组件'
    },
    initialCount: {
      type: Number,
      default: 0
    }
  },
  data() {
    return {
      count: this.initialCount
    }
  },
  methods: {
    increment() {
      this.count++
    },
    decrement() {
      this.count--
    },
    reset() {
      this.count = 0
    }
  },
  computed: {
    isPositive() {
      return this.count > 0
    }
  },
  watch: {
    count(newVal, oldVal) {
      console.log(`计数从 ${oldVal} 变为 ${newVal}`)
    }
  }
}
</script>

<style scoped>
.counter {
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 8px;
  text-align: center;
}
.buttons button {
  margin: 5px;
  padding: 8px 16px;
  background-color: #42b883;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
</style>
CSS Flexbox布局示例
CSS示例
/* Flexbox容器 */
.container {
  display: flex;
  flex-direction: row; /* 主轴方向: row | row-reverse | column | column-reverse */
  justify-content: center; /* 主轴对齐: flex-start | center | flex-end | space-between | space-around */
  align-items: center; /* 交叉轴对齐: stretch | flex-start | center | flex-end | baseline */
  flex-wrap: wrap; /* 换行: nowrap | wrap | wrap-reverse */
  gap: 20px; /* 项目间距 */
  padding: 20px;
  background-color: #f5f5f5;
  border-radius: 8px;
}

/* Flexbox项目 */
.item {
  flex: 1 1 200px; /* flex-grow, flex-shrink, flex-basis */
  min-height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 4px;
  font-size: 1.2rem;
  transition: transform 0.3s ease;
}

.item:hover {
  transform: translateY(-5px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

/* 响应式设计 - 媒体查询 */
@media (max-width: 768px) {
  .container {
    flex-direction: column;
  }
  
  .item {
    flex: 1 1 auto;
    width: 100%;
  }
}