目录
C/S架构 VS B/S架构(写网页)
浏览器内核
网站就是一个或者多个网页组成,一个完整的网页由结构(HTML)、表现(CSS)、行为(JS)
1.HTML认识
HTML(HyperText Markup Language)超文本标记语言。HTML 使用标签来描述网页的结构和内容。
1.1 基本语法
1.1.1 基本语法概述
- 1. HTML 标签是由尖括号包围的关键词,例如 <html>。
- 2. HTML 标签通常是成对出现的,例如 <html> 和 </html> ,我们称为双标签。标签对中的第一个标签是开始标签,第二个标签是结束标签。
- 3. 有些特殊的标签必须是单个标签(极少情况),例如 <br />,我们称为单标签。 常见的单标签有
<img>、<br>、<hr>、<input>、<link>、<base>,可以选择加/,或者不加
1.2.2 标签关系
1.2 网页基本结构
1.2.1 第一个 HTML 网页
HTML 文档的的后缀名必须是 .html 或 .htm,浏览器的作用是读取 HTML 文档,并以网页的形式显示出它们。
<!DOCTYPE> 文档类型声明<!DOCTYPE html>这句代码的意思是: 当前页面采取的是 HTML5 版本来显示网页.注意:1. <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。2. <!DOCTYPE>不是一个 HTML 标签,它就是 文档类型声明标签。
lang 语言种类用来定义当前文档显示的语言。1. en定义语言为英语2. zh-CN定义语言为中文简单来说,定义为en 就是英文网页, 定义为 zh-CN 就是中文网页其实对于文档显示来说,定义成en的文档也可以显示中文,定义成zh-CN的文档也可以显示英文
字符集 (Character set)是多个字符的集合。以便计算机能够识别和存储各种文字。在<head>标签内,可以通过 <meta> 标签的 charset 属性来规定 HTML 文档应该使用哪种字符编码。<meta charset=" UTF-8 " />charset 常用的值有:GB2312 、BIG5 、GBK 和 UTF-8,其中 UTF-8 也被称为 万国码 ,基本包含了全世界所有国家需要用到的字符.注意: 上面语法是必须要写的代码,否则可能引起乱码的情况。一般情况下,统一使用“UTF-8”编码,尽量 统一写成标准的 "UTF-8",不要写成 "utf8" 或 "UTF8"。<meta name="viewport" content="width=device-width, initial-scale=1.0">
是一个 HTML 元素,用于设置网页在不同设备上的显示方式。
2.HTML 常用标签
2.1 文本标签
2.1.1 标题标签 <h1> - <h6>
<h1> 标题一共六级选 , </h1><h2> 文字加粗一行显。 </h2><h3> 由大到小依次减, </h3><h4> 从重到轻随之变。 </h4><h5> 语法规范书写后, </h5><h6> 具体效果刷新见。 </h6>
2.1.2 段落和换行标签
2.1.3 文本格式化标签
2.1.4 <div> 和<span>标签
- 1. <div> 标签用来布局,但是现在一行只能放一个<div>。 大盒子。块级元素
- 2. <span> 标签用来布局,一行上可以多个 <span>。小盒子。行内元素
2.1.5 图像标签和路径
2.1.6 相对路径和绝对路径
2.1.7 超链接标签
2.1.7.1 超链接标签
- 1.空链接: 如果当时没有确定链接目标时,< a href="#"> 首页 </a > 。
- 2.下载链接: 如果 href 里面地址是一个文件或者压缩包,会下载这个文件。
2.1.7.2 锚点链接
- 1.在链接文本的 href 属性中,设置属性值为 #名字 的形式,如<a href="#two"> 第2集 </a>
- 2.找到目标位置标签,里面添加一个 id 属性 = 刚才的名字 ,如:<h3 id="two">第2集介绍</h3>
2.1.8 特殊字符
2.1.9 综合案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1> 圣诞节的那些事</h1>
1.圣诞是怎样由来的 <br>
2.<a href="#oldman">圣诞老人的由来</a> <br>
3.<a href="#tree">圣诞树的由来</a> <br>
<h2> 圣诞是怎样由来的</h2>
<p> 圣诞节是基督教世界最大的节日。一般认为12月25日作为圣诞节可能开始于公元336年的罗马教会。4世纪初,1月6日是罗马帝国东部各教会纪念耶稣降生和受洗的双重节日,即上帝通过耶稣向世人显示自己。 这一天又是罗马历书的冬至节,意味着万物复苏的开始。可能由于这个原因,罗马教会才选择这一天作为圣诞节。后来,因为各地教会使用的历书不同,具体日期不能统一,于是就把12月24日到第二年的1月6日定为圣诞节节期(Christmas Tide),各地教会可以根据当地具体情况在这段节期之内庆祝圣诞节。 在欧美许多国家里,人们非常重视这个节日,把它和新年连在一起,而庆祝活动之热闹与隆重大大超过了新年,成为一个全民的节日。12月24日平安夜、12月25日圣诞节的主要纪念活动都与耶稣降生的传说有关 。</p>
<img src="images/t1.gif">
<h2 id="oldman"> 圣诞老人的由来</h2>
<p>圣诞节当然少不了<a href="oldman.html" target="_blank">圣诞老人</a>,根据圣经记载,书中并没有提起这一号人物。到底他是如何成为圣诞的主角之一呢?</p>
<img src="images/t2.jpg" >
<p>相传在一千六百多年前,荷兰巴里地方有一个老人,名叫尼古拉斯,他一生最爱帮助贫穷的人家。其中有一次他帮助三个贫穷的少女,送她们三袋金子以逃过被卖的不幸。</p>
<p> 到了一八二二年,由荷兰传教士把这位伟大慈善家的故事传到美国,装扮圣诞老人渐渐地流行于世界各国。根据调查,以上故事还有下文;当尼古拉斯偷偷把其中一袋金子送给其中一名女子时,他把金子从其中一个窗户扔进去,恰好掉进晾在壁炉上的一只长袜中。于是,将礼物放在圣诞袜子的送礼方法便传到至今。</p>
在平安夜里,孩子总会把一双双色彩缤纷的袜子挂在床头,然后在袜子旁边放杯热牛奶让圣诞老人喝,以让劳苦功高的圣诞老人解渴,并送份大礼给自己。?
<h2 id="tree">圣诞树的由来</h2>
<p>圣诞一直是庆祝圣诞节不可少的装饰物,如果家中没有圣诞树,就大大减少了过节气氛。关于圣诞树的来源有多种不同的传说。</p>
<p>其中一个是说:大约在十六世纪,圣诞树最先出现在德国,德国人把长青的松柏枝拿到屋中去摆设,将之成为圣诞树。后来,由德国人马丁路德把蜡烛放在树林中的枞树枝,然后点燃蜡烛,使它看起来像是引导人们到伯利恒去。而近今日,人们已经改用粉色的小灯泡了。</p>
<p> 另一个传说记载。在很久以前,曾有一位农民,在圣诞节那天遇到一个穷苦小孩,他热情地接待了这个儿童。儿童临走时折下一根松枝插在地上,松枝立即变成一棵树,上面都挂满礼物,以答谢农民的好意。
</p>
<p> 圣诞树真正出现在圣诞节时,首先见于德国,之后又传入欧洲和美国,并以其优美的姿态,成为圣诞节不可缺少的装饰。圣诞树的种类繁多,有天然松柏圣诞树、也有人造圣诞树及白色圣诞树。
每棵圣诞树上都挂满琳琅满目的装饰品,但每棵树的顶端必定有个特大的星星,象征三博士跟随该星而找到耶稣,而且也只有该家庭的一家之主可以把这棵希望之星挂上。</p>
<img src="images/t3.jpg">
<p>更多内容可以 <a href="http://www.baidu.com" target="_blank">百度一下</a> </p>
</body>
</html>
2.2.1 表格标签
2.2.2.1 表格标签
表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。
注意事项:
- 1.<tr> </tr> 标签用于定义表格中的行,必须嵌套在 <table> </table>标签中。
- 2.<th> </th> 标签用于定义表格的标题,必须嵌套在<tr></tr>标签中。
- 3.<td> </td> 用于定义表格中的单元格,必须嵌套在<tr></tr>标签中。
表格标签这部分属性我们实际开发我们不常用,后面通过 CSS 来设置.
<thead>和<tbody>
使用场景: 在表格标签中,分别用:<thead>标签 表格的头部区域、<tbody>标签 表格的主体区域, 这样可以更好的分清表格结构。
代码演示:
<table>
<thead>
<tr>
<th>姓名</th>
<th>科目</th>
<th>成绩</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>数学</td>
<td>95</td>
</tr>
<tr>
<td>李四</td>
<td>英语</td>
<td>88</td>
</tr>
<tr>
<td>王五</td>
<td>物理</td>
<td>92</td>
</tr>
</tbody>
</table>
2.2.2.2 合并单元格
合并单元格
合并单元格方式:
跨行合并:rowspan="合并单元格的个数"
最上侧单元格为目标单元格, 写合并代码
跨列合并:colspan="合并单元格的个数"
最左侧单元格为目标单元格, 写合并代码
合并单元格三步曲:
- 先确定是跨行还是跨列合并。
- 找到目标单元格. 写上合并方式 = 合并的单元格数量。比如:<td colspan="2"></td>。
2.2.2 列表
列表最大的特点就是整齐、整洁、有序,它作为布局会更加自由和方便。
根据使用情景不同,列表可以分为三大类:无序列表、有序列表和自定义列表。
2.2.2.1 无序列表
<ul>
标签表示 HTML 页面中项目的无序列表,一般会以项目符号呈现列表项,而列表项使用 <li> 标签定义。
无序列表的基本语法格式如下:
<ul>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
</ul>
注意事项:
- <ul></ul>中只能嵌套<li></li>,而且在<ul>放其他标签,以及放文字都是不被允许的
- 有序列表会带有自己样式属性,但在实际使用时,我们会使用 CSS 来设置。
2.2.2.2 有序列表
有序列表即为有排列顺序的列表,其各个列表项会按照一定的顺序排列定义。
在 HTML 标签中,<ol> 标签用于定义有序列表,列表排序以数字来显示,并且使用 <li> 标签来定义列表项。
有序列表的基本语法格式如下:
<ol>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
</ol>
注意事项:
- <ol></ol>中只能嵌套<li></li>,而且在<ul>放其他标签,以及放文字都是不被允许的
- 有序列表会带有自己样式属性,但在实际使用时,我们会使用 CSS控制
2.2.2.3 自定义列表
在 HTML 标签中,<dl> 标签用于定义描述列表(或定义列表),该标签会与 <dt>(定义项目/名字)和 <dd>(描述每一个项目/名字)一起使用。
语法如下:
<dl>
<dt>名词1</dt>
<dd>名词1解释1</dd>
<dd>名词1解释2</dd>
</dl>
注意事项:
- <dl></dl>中只能包含<dt>和<dd>
- <dt>通常包含多个<dd>,没有个数限制
列表总结:
2.2.3 表单
为什么需要表单: 使用表单目的是为了收集用户信息。
表单的组成: 在 HTML 中,一个完整的表单通常由表单域、表单控件(也称为表单元素)和 提示信息3个部分构成。
表单域: 表单域是一个包含表单元素的区域。
在 HTML 标签中, <form> 标签用于定义表单域,以实现用户信息的收集和传递。
<form> 会把它范围内的表单元素信息提交给服务器.
实现代码: <form action=“url地址” method=“提交方式” name=“表单域名称" >各种表单元素控件</form>
表单域的常用属性:
注意事项:action是提交该表单给目标服务器处理,而method是数据以什么形式发送给服务器。
在 HTML 的 <form>
表单中,target
属性指定了表单提交后结果的显示位置。常用的值有:
_self
(默认值):在当前窗口或标签页中打开结果。_blank
:在新窗口或标签页中打开提交结果。
表单控件(表单元素)
<input> 表单元素
在英文单词中,input 是输入的意思,而在表单元素中 <input> 标签用于收集用户信息。在 <input> 标签中,包含一个 type 属性,根据不同的 type 属性值,输入字段拥有很多种形式(可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等)。
<input type="属性值" />
<input /> 标签为单标签 type 属性设置不同的属性值用来指定不同的控件类型
type 属性的属性值及其描述如下:
除 type 属性外,<input>标签还有其他很多属性,其常用属性如下:
注意事项:
- 1. name 和value 是每个表单元素都有的属性值,主要给后台人员使用.
- 2. name 表单元素的名字, 要求 单选按钮和复选框要有相同的name值,这样才可以让单选按钮实现只选一个
- 3. checked属性主要针对于单选按钮和复选框, 主要作用一打开页面,就要可以默认选中某个表单元素.
- 4. maxlength 是用户可以在表单元素输入的最大字符数, 一般较少使用.
问答环节:
- name 属性后面的值,是自定义的
- radio (或者checkbox)如果是一组,我们必须给他们命名相同的名字
<label> 标签
<label> 标签为 input 元素定义标注(标签)。
使用场景:
<label> 标签用于绑定一个表单元素, 当点击<label> 标签内的文本时,浏览器就会自动将焦点(光标)转到或者选择对应的表单元素上,用来增加用户体验.
语法: <label for="sex">男</label> <input type="radio" name="sex" id="sex" />
核心: <label> 标签的 for 属性应当与相关元素的 id 属性相同。
<select> 表单元素
使用场景: 在页面中,如果有多个选项让用户选择,并且想要节约页面空间时,我们可以使用<select>标签控件定义下拉列表。
语法:
<select>
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
</select>
注意事项:
- 1. <select> 中至少包含一对<option> 。
- 2. 在<option> 中定义 selected =“ selected " 时,当前项即为默认选中项。
<textarea> 表单元素
-
使用场景: 当用户输入内容较多的情况下,我们就不能使用文本框表单了,此时我们可以使用 <textarea> 标签。
-
使用多行文本输入控件,可以输入更多的文字,该控件常见于留言板,评论。
语法:
<textarea rows="3" cols="20"> 文本内容 </textarea>
2.2.4 综合案例
案例:注册页面
- 1. 表格标签, 可以让内容排列整齐.
- 2. 列表标签
- 3. 表单标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h3>青春不常在,抓紧谈恋爱</h3>
<table width="600px">
<tr>
<td>性别</td>
<td>
<input type="radio" name="sex" checked="checked" id="nan"> <label for="nan"><img src="./images/man.jpg"
alt=""> 男</label>
<input type="radio" name="sex" id="nu"> <label for="nu"><img src="./images/women.jpg" alt=""> 女</label>
</td>
</tr>
<tr>
<td>生日</td>
<td>
<select>
<option selected="selected">--请选择年份--</option>
<option>2003</option>
<option>2004</option>
<option>2008</option>
</select>
<select>
<option selected="selected">--请选择月份--</option>
<option>3</option>
<option>4</option>
<option>8</option>
</select>
<select>
<option selected="selected">--请选择日--</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select>
</td>
</tr>
<tr>
<td>所在地区</td>
<td>
<input type="text" value="惠来县" name="address">
</td>
</tr>
<tr>
<td>婚姻状态</td>
<td>
<input type="radio" name="marry" checked="checked" id="marry"> <label for="marry">未婚</label>
<input type="radio" name="marry" id="marry1"> <label for="marry1">已婚</label>
<input type="radio" name="marry" id="marry2"> <label for="marry2">离婚</label>
</td>
</tr>
<tr>
<td>学历</td>
<td>
<input type="text" name="sch" value="博士后">
</td>
</tr>
<tr>
<td>喜欢的类型</td>
<td>
<input type="checkbox" name="hobby">妩媚的
<input type="checkbox" name="hobby">可爱的
<input type="checkbox" name="hobby">小鲜肉
<input type="checkbox" name="hobby">老腊肉
<input type="checkbox" name="hobby" checked="checked">都喜欢
</td>
</tr>
<tr>
<td>自我介绍</td>
<td>
<textarea>自我介绍</textarea>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="免费注册">
</td>
</tr>
<tr>
<td></td>
<td>
<input type="checkbox" checked="checked">我同意注册条款和会员加入标准
</td>
</tr>
<tr>
<td></td>
<td>
<a href="#">我是会员,立即登录</a>
</td>
</tr>
<tr>
<td></td>
<td>
<h3>我承诺</h3>
<ul>
<li>年满18岁,单身</li>
<li>抱着严肃的态度</li>
<li>真诚寻找另一半</li>
</ul>
</td>
</tr>
</table>
</body>
</html>
3.块级元素 与 行内元素
规则:
- 块级元素 中能写 行内元素 和 块级元素(简单记:块级元素中几乎什么都能写)。
- 行内元素 中能写 行内元素,但不能写 块级元素。