网站代码常由页面结构、交互逻辑和数据接口组合而成。下面精选12类常用规范,前8类着重网页组件,后4类展示前后端交互,适合拼装成企业展示、商品目录或内容治理类网站。代码以原生 HTML、CSS 和 JavaScript 表达,接口地点使用站点内的示例路径。
一、网页组件模板
-
响应式导航栏
导航栏适合安排品牌名称和栏目入口;窄屏时可将横向菜单改为纵向排列。
<header class="site-head"> <strong>青禾事情室</strong> <nav aria-label="主导航"> <ul><li>首页</li><li>效劳</li><li>联系</li></ul> </nav> </header> <style> .site-head{display:flex;justify-content:space-between;align-items:center} .site-head ul{display:flex;gap:20px;list-style:none} @media(max-width:600px){.site-head{align-items:flex-start;flex-direction:column}} </style> -
首页焦点区
用一句主问题、一段先容和一个行动按钮突出焦点效劳,配景与文字坚持足够比照。
<section class="hero"> <p>让创意快速上线</p> <h1>为小团队打造清晰的品牌网站</h1> <button type="button">审查效劳</button> </section> <style>.hero{padding:64px 8%;background:#eef5ff;color:#18345b} .hero h1{max-width:680px;font-size:clamp(2rem,5vw,4rem)}</style> -
卡片列表
效劳、文章或商品都可接纳卡片泛起;网格列数随容器宽度自动转变,阻止窄屏横向溢出。
<section class="cards"> <article><h2>品牌设计</h2><p>建设统一的视觉表达。</p></article> <article><h2>网站制作</h2><p>整理结构并适配多种屏幕。</p></article> </section> <style>.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px} .cards article{padding:20px;border:1px solid #ddd;border-radius:12px}</style> -
选项卡切换
选项卡适合把简介、规格和评价放在统一区域。点击按钮后同步更新激活状态与显示面板。
<button data-tab="intro">简介</button> <button data-tab="spec">规格</button> <section id="intro">产品先容</section> <section id="spec" hidden>尺寸与材质</section> <script> document.querySelectorAll("[data-tab]").forEach(btn=>btn.onclick=()=>{ document.querySelectorAll("[data-tab]").forEach(x=>x.setAttribute("aria-selected",x===btn)); document.querySelectorAll("#intro,#spec").forEach(x=>x.hidden=x.id!==btn.dataset.tab); }); </script> -
折叠问答区
常见问题可用原生折叠元素收纳,读者睁开单条谜底时,不会被冗长说明打断浏览。
<details> <summary>提交后多久会收到回复?</summary> <p>事情日提交的咨询通常按提交顺序处置惩罚。</p> </details> -
弹窗提醒框
确认操作或展示短新闻时可以使用对话框;关闭按钮明确可见,也可通过键盘关闭。
<dialog id="notice"> <p>资料已生涯。</p> <button onclick="notice.close()">知道了</button> </dialog> <button onclick="notice.showModal()">审查提醒</button> -
即时要害词筛选
小型目录可先在浏览器端过滤已有条目;每条数据通过统一的 data-name 字段匹配。
<input id="filter" placeholder="输入名称筛选"> <ul><li data-name="设计效劳">设计效劳</li> <li data-name="网站制作">网站制作</li></ul> <script> filter.oninput=()=>document.querySelectorAll("[data-name]").forEach(item=>{ item.hidden=!item.dataset.name.includes(filter.value.trim()); }); </script> -
表单必填校验
浏览器原生校验能阻挡空值和名堂过失;提交乐成后再由剧本接入现实生涯逻辑。
<form id="contact"> <label>邮箱<input type="email" name="email" required></label> <label>留言<textarea name="message" required minlength="10"></textarea></label> <button>提交</button> </form> <script> contact.onsubmit=event=>{ event.preventDefault(); if(contact.reportValidity()) alert("表单校验通过"); }; </script>
二、数据接口规范
-
GET读取列表
列表接口吸收页码并返回数据数组;请求失败时给出明确提醒,阻止空缺区域看起来像加载中。
async function loadItems(){ const res=await fetch("/api/items?page=1"); if(!res.ok) throw new Error("列表读取失败"); const data=await res.json(); console.log(data.items); } -
POST提交表单
建设纪录时将表单内容序列化为 JSON。效劳端应再次校验字段,不可只依赖浏览器端限制。
const payload={name:"青禾",message:"咨询网站制作"}; const res=await fetch("/api/messages",{ method:"POST", headers:{"Content-Type":"application/json"}, body:JSON.stringify(payload) }); const result=await res.json(); -
分页数据结构
分页响应同时提供目今页、总页数和纪录列表,前端据此绘制页码,并在最后一页禁用“下一页”。
{ "page": 2, "pageSize": 10, "total": 23, "items": [ {"id": 11, "title": "品牌视觉整理"}, {"id": 12, "title": "网站栏目妄想"} ] } -
文件上传请求
使用 FormData 转达文件,浏览器会自动天生 multipart 请求头;上传前还应在效劳端限制文件类型和巨细。
const formData=new FormData(); formData.append("image",fileInput.files); const res=await fetch("/api/uploads",{method:"POST",body:formData}); const result=await res.json(); console.log(result.fileName);
这12类网站代码笼罩了常见页面骨架、交互组件与数据交流方法。搭建完整项目时,可先组合导航栏、焦点区和卡片列表,再按现实营业接入表单与接口;重复使用的样式和请求逻辑则适合拆分成自力?,便于维护。






