HTMLPAGE Logo

代码与页面示例

作者:HTMLPAGE
发布日期:2025-11-27
示例资源

常见页面结构与组件代码示例集合

代码与页面示例

精选的页面结构和组件代码示例,帮助你快速理解和应用 HTMLPAGE 的各项功能。

📄 页面布局示例

落地页布局

经典的产品落地页结构,包含英雄区、特性展示、用户评价和行动号召。

<template> <div class="landing-page"> <!-- 英雄区 --> <section class="hero bg-gradient-to-r from-blue-600 to-purple-600 text-white py-20"> <div class="container mx-auto px-4 text-center"> <h1 class="text-5xl font-bold mb-6">打造你的专业网页</h1> <p class="text-xl mb-8">无需编程,AI 助力快速生成</p> <button class="bg-white text-blue-600 px-8 py-3 rounded-lg font-semibold hover:shadow-lg transition"> 免费开始 </button> </div> </section> <!-- 特性展示 --> <section class="features py-16"> <div class="container mx-auto px-4"> <h2 class="text-3xl font-bold text-center mb-12">核心功能</h2> <div class="grid md:grid-cols-3 gap-8"> <div class="feature-card p-6 rounded-lg shadow-md"> <div class="text-4xl mb-4">🤖</div> <h3 class="text-xl font-semibold mb-2">AI 智能生成</h3> <p class="text-gray-600">描述需求,AI 自动创建页面</p> </div> <!-- 更多特性卡片 --> </div> </div> </section> </div> </template>

作品集布局

适合设计师、开发者展示作品的网格布局。

<template> <div class="portfolio"> <section class="py-16"> <div class="container mx-auto px-4"> <h1 class="text-4xl font-bold mb-12 text-center">我的作品集</h1> <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6"> <div v-for="project in projects" :key="project.id" class="project-card rounded-lg overflow-hidden shadow-lg hover:shadow-xl transition"> <img :src="project.image" :alt="project.title" class="w-full h-64 object-cover"> <div class="p-6"> <h3 class="text-xl font-semibold mb-2">{{ project.title }}</h3> <p class="text-gray-600">{{ project.description }}</p> </div> </div> </div> </div> </section> </div> </template>

🎨 组件示例

卡片组件

可复用的内容卡片组件。

<template> <div class="card bg-white rounded-lg shadow-md overflow-hidden hover:shadow-xl transition-shadow duration-300"> <img v-if="image" :src="image" :alt="title" class="w-full h-48 object-cover"> <div class="p-6"> <h3 class="text-xl font-bold mb-2">{{ title }}</h3> <p class="text-gray-600 mb-4">{{ description }}</p> <slot name="actions"> <button class="text-blue-600 font-semibold hover:text-blue-700">了解更多 →</button> </slot> </div> </div> </template> <script setup> defineProps({ title: String, description: String, image: String }) </script>

导航栏组件

响应式导航栏,支持移动端菜单。

<template> <nav class="bg-white shadow-md sticky top-0 z-50"> <div class="container mx-auto px-4"> <div class="flex justify-between items-center py-4"> <div class="text-2xl font-bold text-blue-600">LOGO</div> <!-- 桌面菜单 --> <ul class="hidden md:flex space-x-8"> <li><a href="#home" class="hover:text-blue-600 transition">首页</a></li> <li><a href="#features" class="hover:text-blue-600 transition">功能</a></li> <li><a href="#pricing" class="hover:text-blue-600 transition">价格</a></li> <li><a href="#contact" class="hover:text-blue-600 transition">联系</a></li> </ul> <!-- 移动端菜单按钮 --> <button @click="menuOpen = !menuOpen" class="md:hidden"> <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/> </svg> </button> </div> <!-- 移动端菜单 --> <ul v-if="menuOpen" class="md:hidden pb-4 space-y-2"> <li><a href="#home" class="block py-2 hover:text-blue-600">首页</a></li> <li><a href="#features" class="block py-2 hover:text-blue-600">功能</a></li> <li><a href="#pricing" class="block py-2 hover:text-blue-600">价格</a></li> <li><a href="#contact" class="block py-2 hover:text-blue-600">联系</a></li> </ul> </div> </nav> </template> <script setup> import { ref } from 'vue' const menuOpen = ref(false) </script>

表单组件

联系表单示例,包含验证。

<template> <form @submit.prevent="handleSubmit" class="max-w-lg mx-auto p-6 bg-white rounded-lg shadow-md"> <h2 class="text-2xl font-bold mb-6">联系我们</h2> <div class="mb-4"> <label class="block text-gray-700 mb-2">姓名</label> <input v-model="form.name" type="text" required class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"> </div> <div class="mb-4"> <label class="block text-gray-700 mb-2">邮箱</label> <input v-model="form.email" type="email" required class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"> </div> <div class="mb-6"> <label class="block text-gray-700 mb-2">留言</label> <textarea v-model="form.message" rows="4" required class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea> </div> <button type="submit" class="w-full bg-blue-600 text-white py-3 rounded-lg font-semibold hover:bg-blue-700 transition"> 发送消息 </button> </form> </template> <script setup> import { reactive } from 'vue' const form = reactive({ name: '', email: '', message: '' }) const handleSubmit = () => { console.log('提交表单:', form) // 处理表单提交 } </script>

🎯 实用代码片段

平滑滚动

// 平滑滚动到指定元素 const scrollToElement = (elementId) => { const element = document.getElementById(elementId) element?.scrollIntoView({ behavior: 'smooth', block: 'start' }) }

图片懒加载

<template> <img :src="imageSrc" :data-src="actualSrc" class="lazy-image" @load="onImageLoad"> </template> <script setup> import { ref, onMounted } from 'vue' const props = defineProps({ actualSrc: String, placeholder: { type: String, default: '/placeholder.jpg' } }) const imageSrc = ref(props.placeholder) onMounted(() => { const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { imageSrc.value = props.actualSrc observer.disconnect() } }) }) observer.observe(entry.target) }) </script>

响应式网格

/* 自适应网格布局 */ .grid-auto-fit { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } /* 响应式容器 */ .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 1rem; } @media (min-width: 768px) { .container { padding: 0 2rem; } }

📱 响应式设计示例

移动优先的按钮组

<template> <div class="button-group flex flex-col md:flex-row gap-4 justify-center"> <button class="btn btn-primary">主要操作</button> <button class="btn btn-secondary">次要操作</button> </div> </template> <style scoped> .btn { @apply px-6 py-3 rounded-lg font-semibold transition-all; } .btn-primary { @apply bg-blue-600 text-white hover:bg-blue-700 hover:shadow-lg; } .btn-secondary { @apply bg-gray-200 text-gray-800 hover:bg-gray-300; } </style>

相关资源


💡 提示: 如需更多帮助,请查看完整文档或联系我们的支持团队。

微信中可直接分享当前页面