如何创建一个简易的HTML网页框架

news2025/7/5 23:27:47

背景:

在我们初步学习了web前端开发的一些知识时,我们可能会考虑构建一个简单的html网站,但是,如何着手去开始我们的网站,对于新手来说可能是个问题。

在这篇文章中,我将介绍我在构建一个简易的网页时,首先去做的事情。

当然,我本身也并非专业的前端设计师,写此文章主要为了分享我的一些学习过程中的经验,所写内容可能也会存在思想局限以及纰漏,也希望大家批评指出。`


第一步:画出草图

在开始我们的编程之前,我觉得更关键的是设计出我们的网页效果,即使是最简单的框架图,也能够降低我们在编写代码过程中的难度。

首先,我会先思考我的网页需要包括哪些内容,分为哪几块,要达到的作用有什么。
当然,我们有时候会很难想象自己能够设计出那么多不一样的网站,经常会走向一个思维定势的地步,我个人的建议是,可以参考互联网上已有的网站,获取一定的经验。而这,在我看来,对于一个初学者可以起到事半功倍的效果。

在我们的文章中,我列举了下图这样的一个简单的网页设计效果。
网页效果


第二步:板块分析

对于一个基本的网页,其基本上由三个部分组成,头部header,内容content,尾部footer
因此,首先我们将网页分成了三个部分,也就是①图中的导航栏在内的前两行,②中间的三个大方块,③尾部的联系我们。
对于我们分好的板块,我们用div标签来表示框架。
这样,我们就可以首先编写最初的代码轮廓。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="CSS/home.css">
    <script src="JS/home.js" type="text/javascript"></script>
    <title>示例</title>
</head>
<body>
    <!-- 最核心的三个模块 -->
    <div id="header"></div>
    <div id="content"></div>
    <div id="footer"></div>
</body>
</html>

当然,编写完成这样的代码之后,我们在网页上什么都看不见,因此,我们需要在css内给添加一些效果。
其中,#id是指向标签id的css效果添加方法。

/* 消除默认样式 */
*{
    margin: 0;
    padding: 0;
}
#header{
    /* 宽度占屏幕100%,这样缩放浏览器不会影响效果 */
    width: 100%;
    /* 给标签设计高度,否则内部为空的标签将无法显示出来 */
    height: 50px;
    /* 给模块添加背景颜色,否则我们无法看到网页布局的效果 */
    background-color: cyan;
}
#content{
    width: 100%;
    height: 300px;
    background-color:bisque;
}
#footer{
    width: 100%;
    height: 50px;
    background-color: greenyellow;
}

我们可以看到网页的效果将是这个样子:
初步效果


第三步:具体分析

在完成初步的分块之后,我们需要按照内容细分模块。

首先,header包括两行,需要分成两块。content1content2

其次,content包括三个大块:
第一块content1包括一个图片content1img、文字content1txt和链接content1link,所以再细分三块
第二块content2与第三块content3分别包括一个文字content2txtcontent3txt与链接content3txtcontent3link,所以均分为两块

最后,footer不需要再划分。


第四步:具体实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="CSS/home.css">
    <script src="JS/home.js" type="text/javascript"></script>
    <title>示例</title>
</head>
<body>
    <!-- 最核心的三个模块 -->
    <div id="header">
        <div id="header1"></div>
        <div id="header2"></div>
    </div>
    <div id="content">
        <div id="content1">
            <div id="content1img">

            </div>
            <div id="content1txt">

            </div>
            <div id="content1link">

            </div>
        </div>
        <div id="content2">
            <div id="content2txt">

            </div>
            <div id="content2link">

            </div>
        </div>
        <div id="content3">
            <div id="content3txt">

            </div>
            <div id="content3link">
                
            </div>
        </div>
    </div>
    <div id="footer"></div>
</body>
</html>

以及css效果 :

/* 消除默认样式 */
*{
    margin: 0;
    padding: 0;
}
#header{
    /* 宽度占屏幕100%,这样缩放浏览器不会影响效果 */
    width: 100%;
    /* 给标签设计高度,否则内部为空的标签将无法显示出来 */
    /* height: 50px; 内部子标签有高度,这里就不用了*/
    /* 给模块添加背景颜色,否则我们无法看到网页布局的效果 */
    /* background-color: cyan; 去掉大模块的颜色*/
}
#header1{
    /* 宽度继承父标签 */
    height: 20px;
    background-color: aqua;
}
#header2{
    height: 30px;
    background-color: blueviolet;
}
#content{
    width: 100%;
    height: 550px;
    background-color:bisque;
    /* 采用margin来给模块之间添加距离 */
    margin-top: 30px;
}
#content1{
    width: 80%;
    margin-top: 20px;
    height: 300px;
    background-color:lightcoral;
    /* 左侧占10%,宽度80%,右侧剩10%,达到居中效果 */
    margin-left:10% ;
}
#content1img{
    width: 30%;
    height: 150px;
    margin-left: 10%;
    margin-top: 70px;
    float: left;
    background-color: brown;
}
#content1txt{
    width: 30%;
    height: 100px;
    margin-right: 10%;
    float: right;
    margin-top: 20px;
    background-color: brown;
}
#content1link{
    width: 30%;
    height: 100px;
    margin-right: 10%;
    margin-top: 70px;
    float: right;
    background-color: brown;
}
#content2{
    width: 30%;
    margin-left: 10%;
    height: 150px;
    margin-top: 30px;
    background-color: cadetblue;
    float: left;
}
#content2txt{
    width: 80%;
    height: 70px;
    margin-right: 10%;
    float: right;
    margin-top: 20px;
    background-color: gainsboro;
}
#content2link{
    width: 80%;
    height: 20px;
    margin-right: 10%;
    float: right;
    margin-top: 20px;
    background-color: gainsboro;
}
#content3{
    width: 30%;
    margin-right: 10%;
    height: 150px;
    margin-top: 30px;
    background-color: cadetblue;
    float: right;
}
#content3txt{
    width: 80%;
    height: 70px;
    margin-right: 10%;
    float: right;
    margin-top: 20px;
    background-color: gainsboro;
}
#content3link{
    width: 80%;
    height: 20px;
    margin-right: 10%;
    float: right;
    margin-top: 20px;
    background-color: gainsboro;
}


#footer{
    width: 100%;
    height: 100px;
    background-color: greenyellow;
}

呈现效果:

最终,我们也就呈现出这样的网页效果了:
在这里插入图片描述
希望本文在记录我的方法的同时,也能够帮助到你。
感谢您的阅读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/407646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue2中使用axios的三种方法

第一种 原始方法 直接在项目中使用(不建议使用) 这种方法最简单粗暴 优点&#xff1a;不需要做封装&#xff0c;不需要做配置傻瓜式操作&#xff0c;不需要做异步处理 缺点&#xff1a;代码太繁琐&#xff0c;当遇到请求过多的时候&#xff0c;这样写不适合读写 注意&#…

使用videojs播放m3u8视频

vue3使用videojs 播放m3u8格式视频 videojs是一个播放视频的js库&#xff0c;可以通过videojs结合videojs-contrib-hls实播放m3u8格式视频。流媒体传输协议(hls)定义了用来控制播放的m3u8文件 m3u8是一个文本文件(播放列表文件)&#xff0c;里面的内容就是被播放的音视频文件路…

vue3 - 组件注册和组件通信(setup语法糖)

这里介绍的是vue3中组件的注册和组件通信父传子&#xff0c;子传父。 前提&#xff1a;用的是vue3版本且使用了setup语法糖 <script setup> .....<script> 1&#xff0c;组件注册 1.1&#xff0c;全局注册&#xff1a; 全局注册需要在 在main.js中进行注册&#x…

SpringBoot整合调用微信模板方法实现微信公众号消息通知推送,Java实现微信公众号给关注用户推送自定义消息通知(手把手从0到1)

目录 概述 公众号给关注用户推送自定义消息 一、申请公众号模板消息 二、获取安装“web开发者工具” 三、微信网页授权说明 四、微信网页授权 - 流程时序图 五、HTTPClient 实现微信公众号消息推送与发布&#xff08;四步走&#xff09; 六、通过weixin-java-mp SDK实现…

flex布局(弹性盒子一)

目录 一、弹性盒子的开启 二、弹性盒子的不同样式 1.flex-direction&#xff1a;子项目的排列方向 2.flex-wrap&#xff1a;子项目多行 3. flex-flow 是flex-direction和flex-wrap的一起指定&#xff08;简写&#xff09; 一、弹性盒子的开启 设置内容区的样式&#xff1a…

Vue组件库实现按需引入可以这么做

本文为Varlet组件库源码主题阅读系列第七篇&#xff0c;读完本篇&#xff0c;可以了解到如何通过unplugin-vue-components插件来为你的组件库实现按需引入。 手动引入 前面的文章中我们介绍过Varlet组件库的打包流程&#xff0c;最后会打包成几种格式&#xff0c;其中module和…

JavaScript对象

文章目录前言一、对象1.1什么是对象1.2为什么需要对象二、创建对象的三种方式1.利用字面量创建对象2.对象的调用2.1变量、属性、函数、方法总结3.利用new Object创建对象3.1利用构造函数创建对象4.new关键字总结前言 一、对象 1.1什么是对象 现实生活中&#xff1a;万物皆对象…

vue-在组件中使用v-model

一、使用场景 子组件想要使用父组件的值,又想去改父组件的值 二、V-Model的本质 1.给子组件的 value 传个变量 2.监听子组件的input事件,并且把传过来的值赋给父组件的变量 三、关键步骤 1. props 的使用 在自定义的 vue 文件中&#xff0c;声明父组件要向子组件传递的 pr…

左右等高布局

开篇概述 作为这个专栏的开篇&#xff0c;简单介绍一下开这个专栏的初衷。之前在团队中做代码 review 时&#xff0c;经常会发现一些不太“健壮”的 css 代码。这些不太“健壮”的 css 代码&#xff0c;当遇到一些特殊情况时&#xff0c;界面显示就有可能出现问题。其中&#…

uniapp/vue虚拟列表,数据列表渲染优化

引言 相信大家经常会遇到展示一堆数据的需求&#xff0c;几十条数据还好&#xff0c;要是几百上千条&#xff0c;甚至带上了图片。那就会卡得不行。这时候就需要按需加载。 按需加载有懒加载和虚拟列表。 懒加载&#xff1a;通过JS滚动或触底触发事件来加载更多的数据&#…

报错“Cannot read properties of null (reading ‘addEventListener‘)“

场景 控制台报错"Cannot read properties of null (reading addEventListener)" 错误原因 因为 JavaScript 中操作DOM元素的函数方法需要在 HTML 文档渲染完成后才可以使用&#xff0c;如果没有渲染完成&#xff0c;此时的 DOM 树是不完整的&#xff0c;这样在调用…

css鼠标变成小手(css中鼠标悬停是为小手)

CSS控制鼠标样式变换如何写代码呢&#xff1f; 代码&#xff1a;&#xff1a;p stylecursor: crosshair演示&#xff1a;定位指示/p如果需要将鼠标变换成帮助状态的时候。代码&#xff1a;p stylecursor: help演示&#xff1a;帮助/p当然这些只是一些常见的比较实用的代码。我们…

前端实现可拖拽流程的js框架

1 AntV X6 是 AntV 旗下的图编辑引擎&#xff0c;提供了一系列开箱即用的交互组件和简单易用的节点定制能力&#xff0c;方便我们快速搭建 DAG 图、ER 图、流程图等应用。 XFlow是基于 X6 图编辑引擎、面向 React 技术栈用户的专业图编辑应用级解决方案, 帮助您轻松开发复杂的…

前端使用print.js实现打印

前言 项目中经常会用到前端调用浏览器打印的功能&#xff0c;也经常会遇到一些问题&#xff0c;写这篇文章是为了更好的梳理一下相关内容。下面的内容基于vue。 如果需要用到前端生成二维码可以看我的这篇文章&#xff1a;在vue项目中使用qrcodesjs2生成二维码 注&#xff1a…

【学姐面试宝典】—— 前端基础篇Ⅰ(HTTP/HTML/浏览器)

前言 博主主页&#x1f449;&#x1f3fb;蜡笔雏田学代码 专栏链接&#x1f449;&#x1f3fb;【前端面试专栏】 今天开始学习前端面试题相关的知识&#xff01; 感兴趣的小伙伴一起来看看吧~&#x1f91e; 文章目录http 和 https 的基本概念http 和 https 的区别https 协议的工…

【React Router v6】这17个API,你真的都懂了吗?(建议收藏)

😇本文目录😇 Component1.` <BrowserRouter> `2.`<HashRouter>`3.`<Routes />与<Route />`4.`<Link>`5.`<NavLink>`6.`<Navigate />`7.`<Outlet>`Hooks1.`useRoutes()`2.`useNavigate()`3.`useParams()`

【微信小程序】电商移动前端API文档

文章目录一、文档更新说明1、返回值调整2、分类页图片3、订单支付接口二、路径说明三、电商登录实现方式四、API详情1、全局权限访问&#xff08;1&#xff09;主页API获取首页轮播图数据获取首页分类选项数据获取首页楼层数据&#xff08;2&#xff09;商品API商品列表搜索搜索…

pinia详细使用步骤(0基础)

Pinia简介 学vue2的都知道vuex状态管理&#xff0c;所谓状态管理&#xff0c;简单来说就是一个存储数据的地方&#xff0c;存放在Vuex中的数据在各个组件中都能访问到&#xff0c;它是Vue生态中重要的组成部分。 而pinia同理也是起到状态管理的作用&#xff0c;但是它又不完全…

TDesign小程序组件库体验

原来小程序开发有组件库选择的问题&#xff0c;可以使用WeUI或者Vant。今年腾讯开源了前端的框架TDesign&#xff0c;我也分享了两篇使用文章。 年初分享的主要是PC端的框架&#xff0c;除了有PC端的框架外&#xff0c;最近TDesign又新出了小程序的框架&#xff0c;组件比较丰…

前端vue视频vue-video-player插件总结知识点案例(带源码)

目录文档安装main.js文件全局引入视频格式组件方法切换视频清晰度基础案例效果如下完整案例1效果如下完整案例2效果如下最后文档 文档地址 选项参考 API文档 配置函数方法等 Git地址 Git地址 安装 1.vue-video-player 插件下载 npm install vue-video-player --save2.推…