一、HTML初识

 1.什么是HTML?

HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记)。

 2、网页的组成

我们平时看到的网页一般由3个部分组成:

  • HTML(Hypertext Markup Language)
  • CSS(Cascade Style Sheets)
  • JavaScript

上面3个分别可以理解为:视图、表现、行为(HTML可以理解为一个动画小人,CSS为它穿上美丽的衣服,JavaScript让它变的可以跳舞)

 3、html文档树形结构图:

 

4、什么是标签

  • 是由一对尖括号包裹的单词构成 例如: <html> *所有标签中的单词不可能以数字开头.
  • 标签不区分大小写.<html> 和 <HTML>. 推荐使用小写.
  • 标签分为两部分: 开始标签<a> 和 结束标签</a>. 两个标签之间的部分 我们叫做标签体.
  • 有些标签功能比较简单.使用一个标签即可.这种标签叫做自闭和标签.例如: <br/> <hr/> <input /> <img />
  • 标签可以嵌套.但是不能交叉嵌套. <a><b></a></b>

5、标签的属性

  • 通常是以键值对形式出现的. 例如 name="alex"
  • 属性只能出现在开始标签 或 自闭和标签中.
  • 属性名字全部小写. *属性值必须使用双引号或单引号包裹 例如 name="alex"
  • 如果属性值和属性名完全一样.直接写属性名即可. 例如 readonly

6、<!DOCTYPE html>标签

 由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同。在
W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility 
Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars
mode),这就是二者最简单的区别。
      W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出来以前,
很多页面都是根据旧的渲染方法编写的,如果用的标准来渲染,将导致页面显示异常。为保持浏览器渲染的兼容性,使以
前的页面能够正常浏览,浏览器都保留了旧的渲染方法(如:微软的IE)。这样浏览器渲染上就产生了Quircks mode
和Standars mode,两种渲染方法共存在一个浏览器上。

window.top.document.compatMode:
//BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。 
//CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。
<script>

alert(window.top.document.compatMode) 查看当前浏览器渲染模式
</script>

  这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat,

这也就是恶魔的开始 -- 浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。

    如果你的页面添加了<!DOCTYPE html>那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的

标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。

这就是<!DOCTYPE html>的作用。

7、head标签

 <meta>标签

#meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。
<meta charset="UTF-8">

1、name属性

主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。

<meta name="keywords" content="老男孩">    <!-- 关键字设定 -->
<meta name="description" content="描述性内容:这是一个测试页面">       <!-- 描述网站或者页面 -->

 关键字的作用:一般是让爬虫之类的收录程序,当他们在爬你的网站的时候,如果你有关键字,那么他们会优先把关键字收录到他们的记录中,比如搜狗:如果他们收录之后,他们搜索你的关键字的时候,就能找到咱们的网站。

 2、http-equiv属性

顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content, content中的内容其实就是各个参数的变量值。 

<meta http-equiv="Refresh" content="2;Url=http://www.fuzegame.com">   <!-- 设置关键字,刷新时间和页面跳转  设置页面每2秒刷新一次 Url是指页面刷新2秒后,跳转到指定的Url -->

 3.兼容

<meta http-equiv="x-ua-compatible " content="IE=EmulateIE7">

 title标签

<title>test</title>    <!-- 网页头部标题 -->

 stytle标签

一般建议css放在head中不管是引用还是直接在当前页面定义css,因为页面加载自上而下

<style>
        div {
            color: rebeccapurple;
            background-color:cadetblue ;

        }

      span {
          color:green ;
          background-color: yellow;

      }

      #div1{
          height:500px;
          background-color: yellow;
      }
         #div2{
          height:500px;
          background-color:green;
      }
 #div3{
          height:500px;
          background-color: black;
      }


    </style>
style标签

 link标签

<link rel="icon" href="//www.jd.com/favicon.ico"

8、body标签

body标签存放网页的内容

1.基本标签(块级标签和内联标签)

 块级标签: 

  • 每个块级元素都从新的一行开始,并且其后的元素也另起一行
  • 元素的高度、宽度、行高以及顶和底边距都可设置
  • 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度

 内联标签:根据实际使用的大小展示

  • 和其他元素都在一行上
  • 元素的高度、宽度、行高及顶部和底部边距不可设置;
  • 元素的宽度就是它包含的文字或图片的宽度,不可改变。

div标签(块级标签)

<div style="color: rebeccapurple;background-color: antiquewhite;width: 50%;text-align: center;">
    hello world
</div>

 h标签(块级标签)

    <h1>h标签是块级标签 字体从大到小表示标题</h1>
    <h2>2</h2>
    <h3>3</h3>
    <h4>4</h4>
    <h5>5</h5>
    <h6>6</h6>

p 标签(块级标签)

<p> p标签  换行跟隔行 </p>

span标签(内联标签) span标签width和heigth设置是无效的

<span>span 是内联标签(行级标签 in-line)</span>

img 图形标签

<img src="1.jpg" width="150px" height="60" alt="hehe" title="鼠标放上显示">

src: 要显示图片的路径.

alt: 图片没有加载成功时的提示.

title: 鼠标悬浮时的提示信息.

width: 图片的宽

height:图片的高 (宽高两个属性只用一个会自动等比缩放.)

<a>超链接标签(锚)

它有两个作用:跳转和锚点[跳转或者设定锚点]

<a href="http://www.fuzegame.com" target="_blank">超链接标签</a>
href:要连接的资源路径 格式如下: href="http://www.baidu.com" 

target: _blank : 在新的窗口打开超链接. 框架名称: 在指定框架中打开连接内容.

name: 定义一个页面的书签.

用于跳转 href : #id.(锚)

<a href="#div1">第一章</a>

<a href="#div2">第二章</a>
<a href="#div3">第三章</a>


<div id="div1">第一章</div>
<div id="div2">第二章</div>
<div id="div3">第三章</div>

其他标签

<b>给字体加粗</b> 
<br/>   换行
<em>变成斜体</em> 
<strike>划除</strike>
<del>delete 跟strike一样效果</del>
2<sub>3下角标</sub> 
2<sup>3上角标</sup>
&nbsp;代表空格
&copy;   符号
&lt;大于
&gt;小于

列表标签

1、无序列表:

unordered list  无序列表

<ul>
    <li>111</li>
    <li>222</li>
    <li>333</li>
</ul>

2、有序列表:

ordered list  有序列表
<ol>
    <li>111</li>
    <li>222</li>
    <li>333</li>
</ol>

3、定义列表:

<dl>
    <dt>第一章</dt>
    <dd>111</dd>
    <dd>222</dd>
    <dd>333</dd>

    <dt>第二章</dt>
    <dd>111</dd>
    <dd>222</dd>
    <dd>333</dd>
    
</dl>

table标签

<table border="1" cellpadding="1px" cellspacing="0">
#border属性:表格边框 cellpadding属性:内边距 cellspacing属性:外边距 <tr> <td>第一行,第一列</td> <td>第一行,第二列</td> <td>第一行,第三列</td> </tr> <tr> <td>第二行,第一列</td> <td>第二行,第二列</td> <td>第二行,第三列</td> </tr> </table>

<table border="1">

        <thead>
        
            <tr>
                 <th>表头1</th>
                 <th>表头2</th>
                 <th>表头3</th>
                 <th>表头4</th>
            </tr>
        
        </thead>

    <tbody>

        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
        </tr>
    
         <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
         </tr>


    </tbody>

</table>
table表格

form表单标签

 表单用于向服务器传输数据。 

      表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。

      表单还可以包含textarea、select、fieldset和 label 元素

1、表单属性

  HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。表单标签, 要提交的所有内容都应该在该标签中.

            action: 表单提交到哪. 一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web

            method: 表单的提交方式 post/get 默认取值 就是 get(信封)

                          get: 1.提交的键值对.放在地址栏中url后面. 2.安全性相对较差. 3.对提交内容的长度有限制.

                          post:1.提交的键值对 不在地址栏. 2.安全性相对较高. 3.对提交内容的长度理论上无限制.

                          get/post是常见的两种请求方式.

2、表单元素

           <input>  标签的属性和对应值     

type:  text 文本输入框

       password 密码输入框

       radio 单选框

       checkbox 多选框  

       submit 提交按钮            

       button 按钮(需要配合js使用.) button和submit的区别?

       file 提交文件:form表单需要加上属性enctype="multipart/form-data"   
<form action="127.0.0.1:3306/index" method="get" enctype="multipart/form-data">
<p>用户名:<input type="text" name="username" readonly></p> # readonly属性: 只读
<p>密码:<input type="password" name="password"></p> <p><input type="submit" value="点我"></p> 性别:&nbsp;男<input type="radio" name="sex">

<input type="radio" name="sex"> <p>互斥name属性值必须一致</p> <!--name属性是给服务器看的--> <p>爱好:&nbsp;足球<input type="checkbox" name="hobby" value="1" checked> #checked属性:默认勾选 排球<input type="checkbox" name="hobby" value="2"> 篮球<input type="checkbox" name="hobby" value="3"> </p> <p>上传文件<input type="file"></p> <p><input type="reset">重置清空</p> </form>

 上传文件注意两点:

 1 请求方式必须是post

 2 enctype="multipart/form-data" 

        file_obj=request.FILES.get('files')

        f = open(file_obj.name,'wb')
        iter_file=file_obj.chunks()

        for line in iter_file:

            f.write(line)
        f.close()

 select下拉标签 

 name:表单提交项的键.

          size:选项个数

          multiple:multiple 

                 <option> 下拉选中的每一项 属性:

                       value:表单提交项的值.   selected: selected下拉选默认被选中

                 <optgroup>为每一项加上分组
 籍贯:<select name="city" multiple size="2">

    <optgroup label="广东省">
        <option value="sz">深圳</option>
        <option value="gz">广州</option>
        <option value="hz">惠州</option>
        <option value="zs">中山</option>
    </optgroup>
     <optgroup label="北京市">
        <option value="sz">海淀</option>
        <option value="gz">朝阳</option>
        <option value="hz">房山</option>
        <option value="zs">通州</option>
    </optgroup>
    

    </select>

<textarea> 文本域

name:    表单提交项的键.

cols:    文本域默认有多少列

rows:    文本域默认有多少行

<p><textarea cols="30" rows="10" name="t1">自我简介</textarea></p>

 <label>标签

<label for="www">姓名</label>
<input id="www" type="text">