本教程针对零基础同学,讲解网站开发三个基础技术:HTML、CSS、JS,带你快速入门!

本教程的所有知识点,均为核心,必须掌握!

看完本教程,你将学会:

  1. 理解HTML、CSS、JS各自的作用
  2. 学习HTML、CSS、JS基本语法
  3. 能写一个简单的网页

为快速上手练习,可以使用在线编辑器,学会基础语法后,再下载专业的网站开发编辑器/开发环境(详见本教程资源部分)。

1. HTML

HTML即超文本标识语言,是网站开发最基础的语言,简单易懂。

HTML用于定义网站的结构及内容,文件名后缀为.html。

当我们在浏览器里查看网站源码( ctrl + u )或按F12打开开发者工具,首先看见的是网站的HTML源代码:

下面花 5 分钟,学习下 HTML 语法。

1.1 标签

HTML使用标签语法定义网页内容和结构,工整简单。标签又可叫做元素。

一个基本的HTML文件内容如下:

<html><head></head><body></body>
</html>

标签具有如下特点:

  1. 对称:每组标签有开有闭,如 <html> 对应 </html> ,同组标签尖括号里单词相同。

  2. 层级:标签可嵌套标签,体现了网站结构层级关系,比如一个框里可以嵌套文字内容。

  3. 简易:标签名为英文单词或简写,方便联想记忆。

下面介绍常用标签

HTML中,使用<!-- 注释内容 -->表示注释,不会显示在页面中。

  1. 结构标签,所有标准网页都必须有且仅有一个:

    <html> <!-- html根标签,最外层 --><head> <!-- 头标签,包括网站基本信息、资源引用 -->...</head><body> <!-- 身体标签,网站内容 -->...</body>
    </html>
    

    很好记忆,把一个网页比喻成一个人,head是我们的大脑,存储重要的信息,body是我们的身体,用来表示内容。head在body上。

  2. 元信息标签,用来定义网站的基本信息,放在head标签中:

    <head><title>网页标题</title><meta charset="utf-8"/> <!-- 元信息,定义字符集为utf-8(中文) -->
    </head>
    

    我们发现 meta 标签内部以 / 结尾,没有和它对应的标签,我们把这种标签叫做自闭标签

  3. 内容标签

    <html><head>...</head><body><h1>一级标题</h1> <!-- heading的缩写,h1-h6对应一至六级标题,加粗显示,字号依次缩小 --><h2>二级标题</h2><h6>六级标题</h6><p>段落<br/>换行啦</p> <!-- paragraph的缩写,表示一段文章 --> <!-- br表示换行 --><div>容器</div> <!-- 最重要的标签,几乎可嵌套任何内容,代替其他任何标签 --><a href="https://www.baidu.com">超链接</a> <!-- 超链接,点击后跳转 --><img src="https://t.cn/RCzsdCq"/> <!-- image的缩写,显示图像 --><button>按钮</button></body>
    </html>
    

    其中,brimg 标签都是自闭标签。

    代码运行效果如下:

其他标签如table(表格)、ul(无序列表)、ol(有序列表)等可先不了解,均可用div标签替代。

1.2 属性

在上面的代码中,你可能发现,有些标签中除了标签名,还有其他内容,比如:

<img src="https://t.cn/RCzsdCq"/>

图像标签中的src是img标签的属性。属性用于改变标签的样式或行为,一个标签可以设置多个属性。语法为:

<标签名 属性名1="属性值1" 属性名2="属性值2"></标签名>

由于很多属性可用CSS或JS替代,此处了解常用属性即可,不同标签具有的属性也不同。

2. CSS

CSS即层叠样式表,是美化网页的语言,简单易懂。

CSS用于定义网站的样式和动画,文件名后缀为.css。

2.1 引入

想要在html中应用css样式,需要先引入css,有三种方式:

  1. 文件引入

    通过link标签(head标签内)引入css文件:

    <head><link href="https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.0/animate.css" rel="stylesheet">
    </head>
    

    href:要引入的css文件地址(绝对路径/相对路径)

    rel:对于css文件,固定为stylesheet

  2. 内置样式

    在style标签中(head标签内)书写css样式代码,仅对当前页面有效:

    <head><style>div {color: red;}</style>
    </head>
    
  3. 内联样式

    在要应用样式的标签中,添加style属性,仅对当前标签有效:

    <div style="color: red;">容器</div>
    

2.2 选择器

网页中有那么多的标签,如何给指定的标签应用样式呢?比如有两个框,怎么让它们一个白色一个红色,或者都变成红色呢?

选择器是CSS核心概念,定义了一套选择标签的语法,可以给指定的标签应用指定的样式。

必须了解常用选择器:

假设我们有如下html内容:

<div id="box1" class="box">盒子1</div>
<div id="box2" class="box">盒子2</div>
<div>盒子3</div>

初始运行效果如下:

  1. 通配选择器

    选择页面的所有标签(元素),语法如下:

    * {...
    }
    

    使用较少。通常用于初始化一个页面,为所有元素清除浏览器自带的默认样式。

  2. 标签选择器

    选择指定名称的所有标签,语法如下:

    标签名 {...
    }
    

    可以将下面css代码应用到上述html内容中,改变所有div标签的字体颜色:

    div {color: red;
    }
    

    运行效果如下:

  3. id选择器

    上面讲到,同一个页面中,id值必须唯一(像身份证),可以用id选择器改变唯一元素的样式。语法如下:

    #id值 {...
    }
    

    可以将下面css代码应用到上述html内容中,给两个盒子不同的背景颜色:

    #box1 {background: red;
    }
    #box2 {background: yellow;
    }
    

    运行效果如下:

  4. class选择器

    当我们要改变多个元素样式时,可以给它们添加相同的class属性,然后用class选择器改变它们的样式。语法如下:

    .class值 {...
    }
    

    可以将下面css代码应用到上述html内容中,给所有box盒子添加相同背景色:

    .box {background: red;
    }
    

    运行效果如下:

其他选择器如子父节点选择器、兄弟节点选择器、伪选择器等可先不了解,使用较少,且均可用上述选择器替代。

2.3 样式

CSS可以控制布局、块(元素)、内容(块内的文字、图片)等样式,以及增加动画效果。

下面介绍CSS常用的样式:

CSS中,注释用/* 注释内容 */表示。

2.3.1 布局

* {float: left; /* 元素浮动:left 左浮动 | right 右浮动 */position: unset; /* 定位方式:absolute 相对父元素定位 | fixed 相对页面定位 | relative | sticky 弹性 | unset 不设置*/
}

运行效果如下:

可以发现,本来每个盒子独立占一行,用了float布局后,变为了一行,从左往右依次排列。这和块级行级元素有关,后续教程会讲到。

2.3.2 块

div {display: block; /* 元素展现形式:block | inline | inline-block | none 不展示,隐藏块 */background: red; /* 背景色 */margin: 10px 15px 20px 5px; /* 外间距(上右下左)px为像素值 */padding: 10px 15px 20px 5px; /* 内边距(上右下左)px为像素值 */margin-top: 1px; /* 上外间距 */padding-bottom: 1px; /* 下内边距 */height: 25px; /* 块高度 */width: 100px; /* 块宽度 */
}

运行效果如下:

2.3.3 内容

div {text-align: center; /* 文字对齐方式:center 居中 | left 左对齐 | right 右对齐 */color: red; /* 文字颜色 */font-size: 16px; /* 文字大小 */font-weight: bold; /* 文字加粗 */font-style: italic; /* 文字倾斜 */font-family: SimHei; /* 字体 */text-decoration: underline; /* 文字装饰:underline 下划线 | line-through 删除线 */
}

运行效果如下:

CSS中支持多种颜色表示方式(background、color等属性):

  • 常用颜色英文单词:red\green\yellow 等
  • rgb值:如rgb(0, 0, 0)或rgba(0, 0, 0, 0.8)
  • 16进制颜色值:如#000000

以上是CSS常用样式,一定要自己多加练习,查看不同样式带来的网页效果变化。

3. JS

JS全称JavaScript,是可以运行在浏览器中的脚本语言,非常灵活强大。NodeJS出现后,为JavaScript带来了更多的可能性,也可以作为后端开发语言。

JS用于定义网站的交互行为,文件名后缀为.js。

交互行为有很多种,比如点击按钮弹窗、填写提交表单、动态更新页面内容等。JS能极大地增强网站的功能和趣味性。

JS和CSS一样,都需要被html文件或其他js引入才能使用。

3.1 引入

想要在html中应用js脚本,需要先引入js,有两种方式:

  1. 文件引入

    通过script标签(通常在body标签最底部或head标签)引入js文件:

    <body>...<script type="text/javascript" src="script.js"></script>
    </body>
    

    src:要引入的js文件地址(绝对路径/相对路径)

    type:对于js文件,固定为text/javascript

    注意,script不同于引入css的link标签,script是对称标签。

  2. 内置脚本

    直接在script标签中(通常在body标签最底部或head标签)写js脚本,仅对当前页面有效:

    <body>...<script type="text/javascript">let a = 1;...</script>
    </body>
    

3.2 基本语法

学习任何语言,都先从基本语法学起,JS也是一样。如果之前学过其他编程语言,入门会更快。

下面介绍JS基本语法:

JS中,单行注释用 // 注释内容 表示,多行注释用 /* 注释内容 */ 表示

3.2.1 基本语法

JS是弱类型语言,通过let关键字,能定义一个变量,支持传入各种类型(整数、小数、字符串、数组、对象等):

let a = 1; // 定义变量
const b = 2; // 定义常量(一旦赋值,不能修改)
let c = a + b; // 求和赋值
console.log(c); // 输出
let d = [1, 2, 3]; // 定义数组,数组包含三个元素1、2、3
let e = {name: 'yupi', age: 10}; // 定义对象,包含两个属性name和age

console.log 是JS中最常用的函数,类似于C语言的printf,可以输出变量的值或信息,帮助我们调试。

3.2.2 定义函数

函数能够完成一个功能。给定输入参数,通过计算,得到输出结果。

function doClick() {let a = '我好帅';alert(a); // 输出变量的值
}

现在页面有一个按钮,如何点击按钮后,触发弹窗呢?

我们可以给按钮绑定一个鼠标点击事件(添加属性即可),当用户点击按钮时,触发对应的JS函数:

<button onclick="doClick()">按钮</button>

运行效果如下:

除了通过给标签加属性绑定事件,还可以通过JS绑定事件,后续教程会讲到。

4. 总结

让我们复习下网站开发基本语言HTML、CSS、JS的各自作用。

  • HTML:结构层, 定义网页结构和内容

  • CSS:表现层,定义网站的样式和动画

  • JS:行为层,定义网站的交互行为

开发网站时,三层通常按照顺序开发,必须先有html,定义好网站的结构和内容,再用CSS美化网站,最后用JS给网站添加交互效果。

资源

主要是一些前端开发编辑器 / 开发环境。

  1. HTML/CSS/JS在线编辑器

  2. Sublime Text 轻量、快

  3. VsCode 略轻量、快

  4. WebStorm 重量、适合开发项目

  5. Atom 略轻量、有时不稳定

  6. HBuilder 略轻量、不够安全

写给零基础小白的网站开发入门相关推荐

  1. 零基础小白的大数据入门手册

    零基础小白的大数据入门手册,学大数据前,大家可能听过不少说大数据难学.入行做好心理准备的.大家听完也很动摇很犹豫,怀疑自己能不能学好大数据.这其实完全没有必要,觉得一个东西难,百分之八十的原因是你不了 ...

  2. 零基础可以学计算机编程吗,计算机编程好学吗,零基础小白可以吗,入门应该先学什么?...

    计算机编程技术好学吗,零基础小白可以入门吗,入门应该先学什么? 其实想要进入编程行业,入门最为关键,经常能听到很多人说,想学习编程其实不难,入门更为简单,只要你对他感兴趣就能学,但是至于学的怎么样,那 ...

  3. 零基础小白应该如何快速入门软件测试

    零基础小白快速入门软件测试,需要你具备以下几点: 1.软件测试的学习路线 2.超强的自制力 3.不错的学习能力 4.合理安排的学习时间 有了以上4个条件,你就可以开始你的自学之路了,下面可以给你提供一 ...

  4. 写给零基础小白看的入门级 Java 基本语法,强烈推荐

    之前写的一篇我去阅读量非常不错,但有一句留言深深地刺痛了我: 培训班学习半年,工作半年,我现在都看不懂你这篇文章,甚至看不下去,对于我来说有点深. 从表面上看,这句话有点讽刺我的文章写得不够通俗易懂的 ...

  5. 简易的Python小游戏,上班可玩一天,零基础小白可练手

    文章目录 一.第一次写Python小游戏 二.对小游戏进行改进 1.对玩家进行提示 2.提供多次机会给玩家 3.每次答案应该是随机的 三.总结 一.第一次写Python小游戏 刚开始学习Python这 ...

  6. 学Web前端开发需要哪些基础?零基础小白该怎么入行?

    Web前端人才需求大.薪资待遇好,是公认的高薪行业.很多人想学前端却又担心学不会,学Web前端需要哪些基础?零基础小白该怎么入行?且看小编的分析. 前端开发是创建Web页面或APP等前端界面呈现给用户 ...

  7. 类似零基础学python的小说_零基础小白十分钟用Python搭建小说网站!Python真的强!...

    零基础小白十分钟用Python搭建小说网站!Python真的强!-1.jpg (128.29 KB, 下载次数: 0) 2018-10-8 18:51 上传 Python 和放大镜的二进制代码 人生苦 ...

  8. 零基础小白如何自学 Unity 游戏开发?(送 Unity 教程)

    如何自学 Unity? 初级阶段:学习编程语言 初级阶段:编程实践 中级阶段:继续学习编程语言 Unity 教程赠书活动 内容简介 作者简介 赠书方式 如何自学 Unity? 有很多同学对 游戏开发 ...

  9. php mysql好学吗_零基础小白PHP开发好学吗

    零基础小白PHP开发好学吗,PHP知识点有哪些呢,如果分段学习PHP技术,你所知道的方法有哪些呢? 第一阶段 2048.扫雷.贪吃蛇游戏项目贯穿 内容管理 文件操作 PL/SQL编程 HTTP服务器开 ...

  10. 纯干货!短视频脚本怎么写?零基础新手小白也能写好短视频脚本!【覃小龙课堂】

    hi,我是你的老朋友兼顾问:覃小龙,您可以叫我覃总.今天给您分享我做影视剪辑的一些经验方法,零粉丝也能做,主题名为: 纯干货!短视频脚本怎么写,零基础也能写好短视频脚本 在写脚本以前,我们首先要弄清楚 ...

最新文章

  1. AVL树和红黑树区别
  2. eoiioe linux下解压命令大全
  3. 合并多个文本文件中的内容到一个文件中
  4. ruby array_Ruby中带有示例的Array.shuffle方法
  5. 蓝桥杯第六届国赛JAVA真题----奇怪的数列
  6. java 把文件转化为字节数组
  7. jsonp多次请求报错 not a function的解决方法
  8. c语言课件谭浩强ppt下载,c语言课件谭浩强
  9. 变频器维修技术之OC故障解决方案
  10. 简单两个矩阵如何用计算机运算,教你使用excel做矩阵运算
  11. access如何设置定期报表汇总_创建分组报表或汇总报表
  12. 在Linux下使用金山词霸2003(转)
  13. apkeditor pro_APK编辑器 APK Editor Pro v1.15.0 + ApkModifier v3.6
  14. 百度地图LBS开放平台AK一直没有用
  15. android fresco 流程,Android Fresco 笔记
  16. 图片base64编码的前端展示及后端解码,编码
  17. js函数表达式与函数声明_何时使用函数声明与函数表达式
  18. 解决IE系列浏览器上传页面接收问题
  19. WLAN配置三层旁挂直接转发
  20. UDK 中的委托使用

热门文章

  1. 1.1 数组——二分查找(Leetcode 0704)
  2. sphinx安装及使用
  3. IoT产品安全基线(一)硬件安全
  4. 神马不是浮云,有未来就能改变世界
  5. WordPress中用户头像不显示,如何解决
  6. 全球十大管理咨询公司的排名
  7. 5G NR标准: 第18章 射频特性
  8. mysql多进程模块型_mysql mysqld_multi 单机多进程
  9. 如何建立微信微社区?
  10. CF1290F Making Shapes——数位背包DP