网站代码怎么写:页面结构、编写步骤与完整示例

网站代码怎么写:页面结构、编写步骤与完整示例
2026-10-24 08:39:03 好奇心日报 作者 缅甸总统敏昂莱抵达北京 投诉该去哪?这些渠道帮你快速维权 马家辉 新浪网官方账号

写一个基础网站,可以先用 HTML 搭出页面结构,再用 CSS 设置样式,最后用 JavaScript 添加交互。下面以一个带导航、介绍区和登录演示框的学习网站为例,按文件拆分给出可运行代码;其中的登录只做前端演示,不会验证真实账号。

先明确页面结构与学习目标

动手前,先列出页面需要展示什么、用户能做什么。示例网站包含顶部导航、站点介绍、学习内容说明和登录演示框。完成后,你可以看懂三类代码的分工:HTML 定义页面元素,CSS 控制布局和外观,JavaScript 响应用户操作。

  • HTML:组织标题、段落、导航和表单,让浏览器知道页面各部分是什么。
  • CSS:设置颜色、间距、卡片布局和窄屏显示方式。
  • JavaScript:接收表单提交并显示反馈。本例不连接服务器,也不创建或核验账号。

按步骤创建三个文件

  1. 新建项目文件夹。在同一个文件夹里创建 index.html、style.css 和 app.js,文件名要与代码中的引用保持一致。
  2. 编写页面骨架。在 HTML 中添加标题、导航、介绍区和表单,并通过 link 引入样式文件、通过 script 引入交互文件。
  3. 补充外观与交互。在 CSS 中设置布局和移动端样式;在 JavaScript 中检查输入并给出提交反馈。
  4. 运行并检查。保存三个文件后打开 index.html。试着点击导航、提交空表单、输入有效格式的邮箱和密码,观察浏览器校验及提示文字是否符合预期。

完整示例:index.html

以下代码负责页面内容和文件关联。把代码保存为 index.html;代码框中的转义符在显示时会还原成 HTML 标签。

<!doctype html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>青禾学习站</title>
  <link rel="stylesheet" href="style.css">
  <script src="app.js" defer></script>
</head>
<body>
  <header class="site-header">
    <div class="brand">青禾学习站</div>
    <nav aria-label="主导航">
      <a href="#home">九游体育</a>
      <a href="#lessons">学习内容</a>
      <a href="#login">登录演示</a>
    </nav>
  </header>

  <main id="home">
    <section class="hero">
      <p class="eyebrow">从基础开始</p>
      <h1>让每一步学习都有清晰方向</h1>
      <p>用简洁的页面整理课程、练习和学习进度。</p>
      <a class="primary-link" href="#lessons">查看学习内容</a>
    </section>

    <section class="layout">
      <article class="intro" id="lessons">
        <h2>学习内容</h2>
        <p>将复杂任务拆成小步骤,先理解基础,再通过练习巩固。</p>
        <ul>
          <li>基础知识:认识常用概念和页面结构。</li>
          <li>动手练习:将知识点应用到小页面中。</li>
          <li>复盘改进:根据效果调整内容与布局。</li>
        </ul>
      </article>

      <section class="login-card" id="login">
        <h2>登录演示</h2>
        <p>填写邮箱和至少 8 位密码,查看前端提示。</p>
        <form id="login-form">
          <label for="email">邮箱</label>
          <input id="email" name="email" type="email" autocomplete="email" required>

          <label for="password">密码</label>
          <input id="password" name="password" type="password"
            autocomplete="current-password" minlength="8" required>

          <button type="submit">提交演示</button>
          <p id="login-message" role="status" aria-live="polite"></p>
        </form>
      </section>
    </section>
  </main>

  <footer class="site-footer">青禾学习站 · 页面示例</footer>
</body>
</html>

这里用 header、nav、main、section 和 footer 表达页面区域;表单中的 required、type="email" 和 minlength 则提供浏览器自带的基础输入校验。

设置页面样式:style.css

将下面代码保存为 style.css。宽屏时介绍区和登录框并排显示,窄屏时自动改为纵向排列。

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: #20312c;
  background: #f4f7f5;
  font-family: Arial, "Microsoft YaHei", sans-serif;
  line-height: 1.6;
}

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px max(24px, calc((100% - 1080px) / 2));
  background: #ffffff;
}

.brand {
  font-weight: 700;
  color: #176b55;
}

nav {
  display: flex;
  gap: 20px;
}

a {
  color: #176b55;
  text-decoration: none;
}

.hero,
.layout,
.site-footer {
  width: min(1080px, calc(100% - 40px));
  margin: 0 auto;
}

.hero {
  padding: 64px 0 38px;
}

.eyebrow {
  color: #176b55;
  font-weight: 700;
}

.hero h1 {
  margin: 8px 0;
  font-size: clamp(30px, 5vw, 48px);
}

.primary-link,
button {
  display: inline-block;
  margin-top: 14px;
  padding: 11px 18px;
  border: 0;
  border-radius: 8px;
  color: #ffffff;
  background: #176b55;
  font: inherit;
  cursor: pointer;
}

.layout {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 24px;
  align-items: start;
}

.intro,
.login-card {
  padding: 24px;
  border-radius: 12px;
  background: #ffffff;
}

label {
  display: block;
  margin-top: 14px;
  font-weight: 700;
}

input {
  width: 100%;
  margin-top: 6px;
  padding: 11px;
  border: 1px solid #bdcbc5;
  border-radius: 7px;
  font: inherit;
}

#login-message {
  min-height: 1.6em;
  color: #176b55;
}

.site-footer {
  padding: 32px 0;
  color: #5f7069;
}

@media (max-width: 700px) {
  .site-header {
    align-items: flex-start;
    flex-direction: column;
  }

  nav {
    flex-wrap: wrap;
    gap: 12px;
  }

  .layout {
    grid-template-columns: 1fr;
  }
}

添加表单反馈:app.js

将下面代码保存为 app.js。提交时脚本阻止表单默认刷新,检查密码长度并更新提示区域;页面不会把密码发送到服务器。

const form = document.querySelector("#login-form");
const emailInput = document.querySelector("#email");
const passwordInput = document.querySelector("#password");
const message = document.querySelector("#login-message");

form.addEventListener("submit", (event) => {
  event.preventDefault();

  const email = emailInput.value.trim();
  const password = passwordInput.value;

  if (!email) {
    message.textContent = "请填写邮箱。";
    return;
  }

  if (password.length < 8) {
    message.textContent = "密码至少需要 8 位。";
    return;
  }

  message.textContent = `演示通过:已收到 ${email} 的登录请求,尚未进行真实身份验证。`;
});

打开 index.html 后,输入格式正确的邮箱和不少于 8 位的密码,页面会显示演示反馈。若要实现真实注册或登录,还需要服务器端处理账号、验证凭据并安全保存密码;仅靠浏览器中的 JavaScript 不能完成可靠的身份认证。

特别声明:以上文章内容仅代表作者本人观点,不代表新浪网观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与新浪网联系。
来自于:新浪网官方
网友评论
航运数据显示周日仅有5艘船只通过霍尔木兹海峡
日媒:小川航基将结束留洋,回国加盟町田泽维亚
分享到微博
发布
最热评论
最新评论
暂无评论

举报邮箱:[email protected]

Copyright ? 1996-2026 SINA Corporation

All Rights Reserved 新浪公司 版权所有