html5基础

一. web的基础知识

HTML5 是html4.0和xhtml1.0的升级版
          html4.0 语法松散  <img>
          xhtml1.0 语法严谨  <img/> 
HTML5 兼容两种写法

1. web与internet

internet 全球性计算机互联网络
www服务,world wide web 万维网
BBS服务器,论坛
Email 邮箱
telnet 远程登录
web是专注于网站,移动端,微信

2. internet上服务程序的分类

C/S client(客户端)/server(服务器)
例如:王者荣耀,梦幻西游,QQ
B/S browser(浏览器)/server(服务器)
例如:页游,网站
c/s结构和b/s的区别,用户会不会被应用更新带来困扰

3. web的运行原理

基于浏览器服务器,以及通讯协议来实现数据的传输和展示
web,是运行在internet上的一种应用
internet为web运行提供的网络环境

① 通讯协议,规范了数据是如何打包和传递的

http:// https:// file://

② 服务器

产品:TOMCAT,Apache,IIS
功能:存储数据,接收请求,发送响应,提供后台程序的运行环境,具备一定的安全性
技术:java php, .net , nodejs , python

③浏览器

产品:chrome,firefox,safari,opera,IE
功能:发送请求,接收响应,把数据解析成可视化的图形页面展示给用户看
技术:html js css

二. html快速入门

1. 什么是html

HyperText Markup language
超文本      标记    语言
超文本--有能力的文本
标记--让普通文本变为超文本的格式 <关键字>
语言--有语法

2. html的特点

1.必须以.html或者.htm为后缀
2.由浏览器解析执行(代码按照从上往下,从左往右的顺序执行)
3.用带有尖括号的标记,来表示超文本 <a></a>
4.可以调用js的脚本

3. html的基本语法

①标记

标签,元素,节点,对象
使用<>把关键字变成标签,具备了一些能力,功能
标记的分类
1.双标记(封闭类型标记)
<关键字>内容区域</关键字>
2.单标记(非封闭类型标记,空标记---因为没有内容区域)
<关键字>  或者  <关键字/>

②标记的嵌套

双标记的内容区域部分可以编写其它元素,形成功能的叠加或者结构的嵌套
发生嵌套的元素一定要添加缩进(2个空格),增加代码的可读性
缩进属于语义要求

③元素的属性和值

用来修饰当前元素,都写在开始的标签中
<关键字  属性1=值1  属性2=值2......>
属性的分类
1.通用属性,所有元素都生效的属性
  id 为元素添加唯一标识符,当前页面不能重复
  title 鼠标悬停时显示的文本
  class  css调用类选择器,使用的属性
  style  css设置内联样式,使用的属性
2.专用属性,只对某些元素生效的属性
3.自定义属性

④注释

不会被解析运行的代码
一般编写代码的解释和思路
<!--  -->
写注释的注意事项
1.注释一定不能写在标签的<>内部
2.注释不能嵌套注释

4. html文档结构

1.文档类型的定义
告诉浏览器,当前这篇html使用h5的语法来编写的,你解析运行的时候,用h5解析 
<!DOCTYPE html>
2.网页结构
 <html> 表示页面的开始和结束,一个html文件中有且只有一对,必须是根元素
	<head></head> 网页的头部,定义网页的全局信息
	<body></body> 网页的主体,可视区域
 </html>  
3. <head></head>是所有定义网页全局信息的容器
   <title></title> 页面的标题
   <meta />  定义页面的元数据   元数据就是对某一个事物的描述
         <meta charset="utf-8">
         <meta name="description" content="页面描述">
         <meta name="Keywords" content="页面关键字">
   <style></style> css 定义内部样式
   <script></script> js 定义js或者调用js文件
   <link/> css 引用外部样式
4. <body></body>
专有属性text="red"  设置文本颜色
       bgcolor="lightcyan"  设置背景颜色

三. 文本标记

1. 标题

<h1> </h1>
<h2> </h2>
<h3> </h3>
<h4> </h4>
<h5> </h5>
<h6> </h6>
特点:1.字号有变化,h1最大,h6最小
      2.字体加粗
      3.独占一行
      4.上下有垂直空间
专有属性:align:  设置文本的水平对齐方式
                 left(默认)/center/right

2. 段落paragraph

<p></p>
特点:独占一行,上下有垂直的空间
专属属性 align
注意:p标签中不允许嵌套块级元素

3. 水平分割线

<hr> 或者 <hr/>
功能:独占一行,页面上画出一行线
注意:属性值可以不带双引号,推荐加上双引号
      属性值是数值,如果省略单位,默认按px解析
专属属性  size 设置高度
          color 设置颜色
          width 设置的宽度,以px为单位的数字,%是父元素宽度的百分比
          align 设置水平对齐方式 left/center(默认值)/right

4. 空格折叠现象

浏览器在解析文本的时候
会把所有的连续的空格和回车,解析成一个空格展示
预格式化标签
<pre></pre>会把元素内容区域中的所有空格和回车保存住,在页面显示
单独成行
项目中很少使用,格式非常不好控制
换行<br>或者<br/>
特殊字符,实体
空格 &nbsp; 
<    &lt;   
>    &gt;   
©   &copy;
®   &reg;
¥    &yen;
×   &times;

5. 文本样式标签

推荐使用带语义的标签
推荐使用带语义的标签
<b></b><strong></strong>  粗体
<i></i><em></em>      斜体
<s></s><del></del>     删除线
<u></u>                 下划线
<sup></sup>            上标
<sub></sub>            下标

6. 分区元素

块分区<div></div> 做页面的结构布局时使用
       特点,没有样式,单独成行
       属性 align=””left/center/right
行分区<span></span> 同一行文本,如果有不同样式,使用span.修饰文本用的
       特点,没有样式,与其他文本共用一行

7. 块级元素和行内元素

块级元素行内元素行内块元素
独占一行与其他文本和其他行内元素还有行内块共用一行与其他文本和其他行内元素还有行内块共用一行
div p h1~h6 prespan b strong i em u del sinput
有align属性align属性失效

四. 图片与超链接

1. 图片的使用

<img src="图片资源路径/url">

2. url

Uniform  Resource  Locator
统一资源定位符--------------->简称路径
URL的分类
1.绝对路径
2.相对路径

①绝对路径

一个完整的资源路径地址
使用网络资源的时候,都使用绝对路径
网络资源的特点
优点:节省当前服务器的本地存储空间
缺点:资源不稳定
服务器本地资源不可能使用绝对路径,要使用相对路径

②相对路径

相对路径的参照物,是html本身
兄弟关系,直接调用兄弟资源的名称 src="资源名称"
兄弟的儿子  调用兄弟文件夹,使用/进入兄弟文件夹   src="兄弟文件夹/资源名称"
父级的兄弟  使用../进入父亲,直接写兄弟名称  src="../资源名称"

3.img的属性

src=""   引用资源路径
alt=""   资源加载失败时,显示的文本
width=””
height=”” 
注意,设置的宽高如果不符合图片原始的宽高比例,会出现图片的失真现象。一般宽高只设置一个,另外一个自动适应

4. 超链接

项目中,src还是href都不允许写空的
跳转到其它页面
<a href=""></a>
a标签的其它表现形式
<a href="1.zip">下载</a>
<a href="mailto:aaa@qq.com">发送邮件</a>
<a href="#">回到页面顶部</a>  如果开发的时候不知道要跳转的连接,先用#占位
<a href="javascript:show()">调用js</a>

5. 锚点

在页面中任意位置做一个记号
点击a标签,让页面跳转到这个记号,显示当前的内容
1.定义锚点
  html4.0 规定使用a标签定义锚点 <a name="锚点名称"></a>
  html5.0 使用任意元素的id当做锚点
2.跳转锚点,使用a标签跳转
  <a href="#锚点名称"> </a>

6. a标签的属性

href=""  资源路径
name=""  使用a标签定义锚点时,设置锚点名称
target=""  设置跳转页面的打开方式
           _self 默认值,在本页面打开
           _blank  在新的选项卡页面打开

五. 表格

1. 表格

原始目的就是为了展示数据
表格后来常用于做布局
现在由于表格加载速度非常慢,所以回顾原始功能,只用来显示数据了
学习中,偶尔还有表格来写布局
<table>
   <tr>            table row
     <td></td>    table data
   </tr>
</table>

2. 属性

①table

border="1"             设置表格边框
bordercolor="purple"   设置边框颜色
width="200"           设置宽度
height="200"          设置高度
bgcolor="pink"        设置背景颜色
align="left/center/right"  设置table本身的水平对齐方式。与块级元素设置的不同
cellspacing="0"        设置边框与边框之间的距离
cellpadding="20"      设置边框与文本之间的距离

②tr

align="right"   设置当前行文本水平对齐方式  left/center/right
valign="middle"  设置当前行文本垂直对齐方式  top/middle/bottom
bgcolor=""       设置当前行的背景色

③td

align="right"  设置当前行文本水平对齐方式  left/center/right
valign="top"  设置当前行文本垂直对齐方式  top/middle/bottom
bgcolor=""    设置当前单元格的背景色
width=""
height=""
colspan=""     列合并
rowspan=""    行合并

3. table是一种特殊的表现方式

1.某一列变宽时,不同行这一列都会一起变宽(不同行的同一列,宽度相同)
2.某一列变高时,这一行其它列都会一起变高(同一行的所有列的高度相同)
3.表格会把所有内容都一次性读取完,放到内存中
  再一次性渲染到页面上
4.表格的尺寸,如果设置的尺寸大,内容小,以设置尺寸为准
             如果设置的尺寸小,内容大,以内容为准
PS:浏览器对文本的解析,如果数字或者字符连续,不带空格,不换行
    浏览器会认为他是一个完整的单词,不会自动折行

4.不规则的表格

①跨列,列合并

colspan="n"  当前单元格向右合并n个单元格(n包括这个单元格本身)
              被合并的单元格要删除

②跨行,行合并

rowspan="n"  当前单元格向下合并n个单元格(n包括这个单元格本身)
              被合并的单元格要删除

5. 表格的可选标记(可用可不用)

①表格的标题

必须写在table开始标签的后面
<caption> </caption>

②行/列的标题

th可以替代td
td所有的属性th都可以使用
th的效果,文本加粗,文本居中

6. 表格的复杂应用

①行分组

页面中不会出现行分组的效果
行分组,把某干行,放在同一个组中,方便控制,进行统一管理
如果没有写任何行分组,浏览器会自动把所有tr放入tbody
<table>
   <thead></thead>
   <tbody></tbody>
   <tfoot></tfoot>
</table>

②表格嵌套

表格的所有嵌套都要放在td/th中

六. 列表

table是早期用于做布局,由于加载效率低,所以现在只用于做数据展示
列表现在除了做数据展示外,还做页面布局

1. 列表的组成

1.列表类型
	有序列表 <ol></ol>   order list
	无序列表 <ul></ul>   unorder list
2.列表项  <li></li>   list-item  

2. 属性

①有序列表

type=""  设置列表项的类型
          默认值是1,
          a  A   I   i
start=""  指定编号开始的位置

②无序列表

type="disc"  默认值,实心小圆点
      circle  空心圆
      square  实心小方块
      none   没有列表标识

3. 列表的嵌套

列表要求,所有被嵌套的内容,必须写在li中

4. 定义列表

定义一个名词或者一项事物,以及对这个名词事物的解释说明

七. 结构标记

使用div做布局,但是代码可读性非常差,,为了增加代码的可读性,h5推出了一套功能和div一模一样的标签
让元素拥有语义
<header></header>  定义网页的头部,或者某个区域的头部
<section></section>  定义网页的主体
<footer></footer>   定义网页的底部,或者某个区域的底部
<nav></nav>        定义导航
<aside></aside>     定义侧边栏
<article></article>    定义与文字相关的部分(评论,回帖)
自己写项目时,推荐使用

八. 表单***

1. form功能

1.提供了可视化的用户输入控件
2.自动收集整理数据,并发送请求(填写参数的控件,必须有name属性)
3.form没有接收响应的能力
  要使用ajax来发送请求,并接收响应,需要手动收集数据(不使用name)
总结:form和ajax二选一使用
      使用form,控件必须有name属性,来自动收集数据
      使用ajax,控件需要手动收集数据,不需要name属性,用id
使用场合:如果需要保存处理响应数据,用ajax
          如果不需要处理响应数据,用form

2. form的组成

前端,提供表单控件,与用户交互的可视化控件
后端,表单要提交的接口

3. 表单

<form></form>
1.action=""  定义表单提交是发送的动作(接口url)
             如果不写或者没有值,会把请求提交给本页面
2.method="" 定义表单提交的方法
  get  默认值,明文提交,提交的内容会显示在浏览器的地址栏。
       通过查询字符串(querystring)  后台 req.query 接收
       提交的数据有大小限制,最大2KB
       向服务器要数据的时候,使用get方法
  post 隐式提交,提交的内容不会在地址栏显示,
       通过请求主体传递参数  后台 req.body
       没有数据大小限制
3.enctype=" "  设置表单提交的数据的格式
  application/x-www-form-urlencoded 默认值
                     允许传递任意字符给服务器
  text/plain  允许传递普通字符给服务器
             普通字符:不许带有=  &  *  # 等符号
  multipart/form-data 可以传递文件+任意字符

4. 表单控件,在form标签中,能够与用户进行交互的可视化标签

1.input元素 基础的9种,h5新出的10种
2.textarea 多行文本域
3.select和option 下拉选择框
4.其它元素

①input 基础9种

1.文本框和密码框
type="text" 文本框 默认值(不写或者写错都会被解析成文本框)
type="password"
属性
maxlength="3" 设置输入的最大字符数
readonly  无值属性,只读,只能看不能改,可以提交
placeholder=""  提示占位符
2.按钮
type="submit" 提交按钮,只有放在form中才具备提交功能
type="button" 普通按钮,调用js
type="reset" 重置,恢复form表单的初始状态
属性:value设置按钮上的文本,而不会提交
<button>提交</button> submit
3.单选按钮/复选按钮
单选 type="radio"
多选 type="checkbox"
name属性除了作为控件的值以外,需要使用name属性来做分组
必须设置value值,不然提交的时候默认是on
属性,默认选中 checked 无值属性
4.文本选择框
type="file"
前提,form的属性method="post" enctype="multipart/form-data"
multiple 无值属性,多选
5.隐藏域
把需要提交,并不想让用户看到数据放入隐藏域中提交
type="hidden" 

②文本域

<textarea></textarea>
cols 设置每行输入的个数
row 设置输入多少行
不准确,而且给用户操作的空间巨大

③下拉选择框

<select  name="">
  <option></option>
  ......
</select>
属性
select  size="6"  默认1,下拉选择框
                  >1   滚动选择框  取值代表显示的行数
       multiple 多选
option  当option没有value时,select的value是选中option的内容区域
                 有value时,select的value是选中的option的value
         selected  默认选中

5 . 其它表单元素

①label

可以使用label替代form中span
与控件进行绑定
<label for="控件id">京东钱包</label>

②为控件分组

<fieldset> 分组
  <legend> </legend> 分组的标题
</fieldset>

③浮动框架(不是表单的内容)

在一个html中,引入其他的html
<iframe ></iframe>
src="00_home.html"   引用的html路径
frameborder="0"      设置框架边框为0
width="100%"         设置宽度  100%为父元素宽度的百分比
height="550"          设置高度
scrolling="no"         去除滚动条

6. h5新出的表单控件

①邮箱控件
<input type="email" name="m1">
提交时,验证是否有@,以及@前后是否有字符
②搜索类型的控件
<input type="search" name="s1">
提供一个快速删除内容的小叉叉
③url类型
<input type="url" name="u1">
提交时,验证内容开头为http:
④电话号码类型
<input type="tel" name="t1">
在移动端使用时,激活后,弹出虚拟键盘
⑤数字类型
<input type="number" name="n1">
只允许填入数字,有上下选择的小箭头
⑥范围类型
<input type="range" name="r1">
提供了一个可以选择数字的滑块
⑦颜色类型
<input type="color" name="c1">
提供了一个取色板
⑧日期类型
<input type="date" name="d1">
提供了一个日期选择的控件
⑨月份类型
<input type="month" name="o1">
提供了一个月份选择控件
⑩周类型
<input type="week" name="w1">
提供了一个周控件

7.补充

1.js获取 type=radio 值的方法

 
<ul> 
<li> 
<input type="radio" name="radio" value="前台支付 " id="radio" />前台支付 ——如需整晚保留,请预付房费。 
</li> 
<li> 
<input type="radio" name="radio" value="担保支付" id="radio" />担保支付 ——稍后客服人员会致电与您联系, 
并确认担保需要的信息。 
</li> 
</ul> 

 
var chkObjs=null; 

var obj=document.getElementsByName("radio")
for (var i=0;i<obj.length;i++){ //遍历Radio 
if(obj[i].checked){ 
chkObjs=obj[i].value; 
} 
} 
alert(chkObjs); 

2. js如何获取select下拉框的value以及文本内容

</HEAD>
 <BODY>
    
    书籍分类:
    <select id="s1" >
        <option value="1">教学类</option>
        <option value="2"> 技术类</option>
    </select>
</BODY>
</HTML>
window.onload = function(){
    
        //首先获得下拉框的节点对象;
        var select = document.getElementById("s1");
        
        //1.如何获得当前选中的值?:
        var value = select.value;
        
        //2.如何获得该下拉框所有的option的节点对象
        var options = select.options;
        //注意:得到的options是一个对象数组
        
        //3.如何获得第几个option的value值?比如我要获取第一option的value,可以这样:
        var value1 = options[0].value;
        //4.如何获得第几个option的文本内容?比如我要获取第一option的文本,可以这样:
        var text1 = options[0].text;
        
        //5.如何获得当前选中的option的索引?
        var index = select.selectedIndex;
        
        //6.如何获得当前选中的option的文本内容?
        //从第2个问题,我们已经获得所有的option的对象数组options了
        //又从第5个问题,我们获取到了当前选中的option的索引值
        //所以我们只要同options[index]下标的方法得到当前选中的option了
        var selectedText = options[index].text;
    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值