前端-HTML

一、HTML简介

1.浅谈WEB服务

  WEB的本质其实就是一个socket服务端,其工作流程为:

  1)浏览器发送请求(请求通过HTTP/HTTPS协议进行传输)

  2)服务端接收请求并做出相应的响应,将相应的HTTP请求的数据发送给浏览器

  3)浏览器渲染页面

2.什么是HTML

  全称:超文本标记语言(Hypertext Markup Language,HTML)

  HTML是一种编辑网页的标记语言,它的本质是浏览器识别和显示HTML文件的规则,开发人员根据这套规则来设计网页,而值得注意的是不同的浏览器对同一个HTML标签有不同的解释,因此存在兼容性问题

  网页文件的扩展名:.html或者.htm

  HTML发展史参考:

http://www.cnblogs.com/linhaifeng/articles/8973878.html

3.HTML的文档结构<!DOCTYPE html> <!--声明为HTML5文件-->

<html lang="en">                     <!--与</html>编辑文档的开始和结束,是HTML页面的根元素,两者之间包含文档的头部(head)和主体(body)-->
<head>                               <!--与</head>定义文档的开头部分,它们之间的内容不会在浏览器的文档窗口显示,包含文档的元(meta)数据-->
    <meta charset="UTF-8">           <!--声明浏览器使用的编码格式,不一样会乱码-->
    <title>Title</title>             <!--定义网页标题,在浏览器标题栏显示-->
</head>
<body>                               <!--与</body>组成文档的主体,是网页显示的主要内容-->
</body>
</html>  
                

二、HTML应用

1.HTML的格式

  1)由文档结构中看出,标签由尖括号包围

  2)闭合标签是成对出现的,比如:<body></body>等,第一个标签是开始,第二个标签是结束,结束标签由斜线

  3)非闭合标签是单独出现的,比如<br/>等

  4)标签内可加入若干个属性也可不加属性

    语法:

      <标签名 属性1=“属性值1” 属性2=“属性值2”……>内容部分</标签名>

    几个重要的属性:

      id     定义标签的唯一ID,HTML文档树中唯一

      class  为html元素定义一个或多个类名(classname)(CSS样式类名)

      style   规定元素的行内样式(CSS样式)

2.<!DOCTYPE>标签

  该声明必须位于HTML的第一行,位于HTML标签之前,它声明的不是HTML标签,而是指示浏览器使用哪个HTML版本进行解释和编写HTML语句      

3.常用标签

  1)Meta标签

    定义网页元信息,提供网页的元信息,针对搜索引擎和更新频度的描述和关键字。该标签位于文档的头部,不包含任何内容,所提供的信息是用户不可见的

    包含两个属性,分别是http-equiv和name属性,不同的属性又有不同的参数值以实实现不同的网页功能

    I)http-equiv属性

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

<!--3秒后跳转到对应的URL,注意引号-->
<meta http-equiv="refresh" content="3;URL=https://www.oldboyedu.com">
<!--指定编码格式-->
<meta http-equiv="content-Type" charset=UTF8">
<!--告诉IE以最高级模式渲染文档-->
<meta http-equiv="x-ua-compatible" content="IE=edge">

    II)name属性

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

<meta name="keywords" content="meta总结,html meta,meta属性,meta跳转">
<meta name="description" content="Python全栈学习">

  2)body内常用标签

<b>加粗</b>
<i>斜体</i>
<u>下划线</u>
<s>删除</s>
<p>段落标签</p>

<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>
<h4>标题4</h4>
<h5>标题5</h5>
<h6>标题6</h6>

<br/>    <!--换行-->

<hr>     <!--水平线-->

  3)div标签和span标签

    I)div标签用来定义一个块级标签,并无实际的意义,只要通过CSS样式为其赋予不同的表现

    II)span标签用来定义内联(行内)元素,并无实际意义,只要通过CSS样式为其赋予不同的表现

  块级标签和行内标签的区别:

    块元素是以另起一行开始渲染的元素,行内元素则不需要另起一行。如果单独在网页中插入两个元素。不会对页面产生影响,这两个元素转为CSS样式而生

  注意:

    标签嵌套中,通常块级元素可以包含内联元素或者某些块级元素,但是内联元素不能包含块级元素,只能包含其它内联元素

    p标签不能包含块级标签  

  4)img标签

<img src="图片的路径" alt="图片加载失败时的提示" title="鼠标悬浮时提示信息" width="宽" height="高(宽高两个属性只用一个会自动等比缩放)">

  5)a标签

    超链接标签,称为:锚

    所谓超链接指的是从一个网页指向另一个目标的连接关系,这个目标可以是一个URL也可以是一个网页上的不同的位置,还可以是照片、程序、邮箱地址、文件等

<a href="http://www.taobao.com" target="_blank" >点击跳转到淘宝</a>
什么是URL?
URL是统一资源定位器(Uniform Resource Locator)的缩写,也被称为网页地址,是因特网上标准的资源的地址
URL举例
http://www.sohu.com/stu/intro.html
http://222.172.123.33/stu/intro.html

URL地址由4部分组成
第1部分:为协议:http://、ftp://等 
第2部分:为站点地址:可以是域名或IP地址
第3部分:为页面在站点中的目录:stu
第4部分:为页面名称,例如 index.html
各部分之间用“/”符号隔开
补充知识:URL

    I)href属性指定目标网页的地址,该地址可以有以下几种类型:

      绝对URL,指向另外一个站点,例如:href="https:baidu.com"

      相对站点,指向当前站点中的某个确切的路径,例如:href="index.htm"

      锚URL,指向页面中的锚,例如href="#header"

    II)target

      _blank,表示在新页面中打开目标网页

      _set,表示在当前标签中打开目标网页

  6)列表标签

    I)ul无序列表

<ul type="disc">
  <li>第一项</li>
  <li>第二项</li>
</ul>

    type属性:

      disc,实心圆,默认值

      circle,空心圆圈

      square,实心方块

      none,无样式

    II)有序列表

<ol type="1" start="2">
  <li>第一项</li>
  <li>第二项</li>
</ol>

    type属性:

      1 数字列表,默认值

      A 大写字母

      a 小写字母

      Ⅰ大写罗马

      ⅰ小写罗马

    III)标题列表

<dl>
  <dt>标题1</dt>
  <dd>内容1</dd>
  <dt>标题2</dt>
  <dd>内容1</dd>
  <dd>内容2</dd>
</dl>

  7)表格标签

    表格是一个二维数据空间,一个表格由若干单元格组成,一个行有若干单元格组成,单元格可以包含文字、列表、团表单、数字符号,预配置文本和其它的表格等内容

<table boder="1">
  <thead>
  <tr>
    <th>学号</th>
    <th>姓名</th>
    <th>班级</th>
  </tr>
  </thead>
  <tbody>
  <tr>
    <td>1801</td>
    <td>zh</td>
    <td>python全栈</td>
  </tr>
  <tr>
    <td>1802</td>
    <td>ch</td>
    <td>Go语言</td>
  </tr>
  </tbody>
</table>

  可选属性:

    border    表格边框.

    cellpadding  内边距

    cellspacing  外边距.

    width      像素 百分比.(最好通过css来设置长宽)

    rowspan      单元格竖跨多少行

    colspan      单元格横跨多少列(即合并单元格)

  8)form表单标签

    I )表单的作用

    表单用于向服务端传输数据用的,从而实现客户端与服务端的交互。表单能够包含input邪系列标签,比如文本字段、复选框、单选框、提交按钮等,还可包含textaera、select等标签

    2)表单的属性

   属性                            描述
accept-charset            规定在被提交表单中使用的字符集(默认:页面字符集)
action                    规定向何处提交表单的地址(URL)(提交页面)
autocomplete              规定浏览器应该自动完成表单(默认:开启)
enctype                   规定被提交数据的编码(默认:url-encoded)
method                    规定在提交表单时所用的 HTTP 方法(默认:GET)
name                      规定识别表单的名称(对于 DOM 使用:document.forms.name)
novalidate                规定浏览器不验证表单
target                    规定action属性中地址的目标(默认:_self) 

  9)input标签

    input根据设置不同的属性,变化出多种形态

type属性值      表现形式           对应代码
  text        单行输入文本     <input type=text" />
  password    密码输入框       <input type="password"  />
  date        日期输入框       <input type="date" />
  checkbox    复选框          <input type="checkbox" checked="checked"  />
  radio       单选框          <input type="radio"  />
  submit      提交按钮         <input type="submit" value="提交" />
  reset       重置按钮         <input type="reset" value="重置"  />
  button      普通按钮         <input type="button" value="普通按钮"  />
  hidden      隐藏输入框       <input type="hidden"  />
  file        文本选择框       <input type="file"  />

    可选属性:

      name,表单提交时的“键”,注意和id的区别

      value,表单提交时对应项的值

      type="button", "reset", "submit"时,为按钮上显示的文本内容

      type="text","password","hidden"时,为输入框的初始值

      type="checkbox", "radio", "file",为输入相关联的值

      checked,radio和checkbox默认被选中的项

      readonly,text和password设置只读

      disabled,所有input均适用

  10)select标签

    用于实现下拉选项

    可选属性:

      multiple,布尔属性,设置后为多选,否则默认单选

      disabled,禁用

      selected,默认选中该项

      value,定义提交时的选项值

  11)label标签

    用于为input元素定义标记,label元素不会像用户呈现任何特殊效果,内部的for属性应当与相关元素的id属性值相同

  12)textarea多行文本标签

    用于设置多行文本输入框

    可选属性:

      name,名称

      rows,行数

      cols,列数

      disabled,禁用

练习:

  提交form表单前先启动服务端

import tornado.ioloop
import tornado.web


class Main_Handler(tornado.web.RequestHandler):
    def get(self):
        user = self.get_argument('user')
        password = self.get_argument('password')
        if user == 'zhang' and password == '123':
            self.write('认证成功')
        else:
            self.write('认证失败')

    def post(self):
        user = self.get_argument('user',None)
        password = self.get_argument('password',None)

        print(user,password)
        self.write('POST')


application = tornado.web.Application([
    (r'/index',Main_Handler)
])

if __name__ == '__main__':
    application.listen(8081)
    tornado.ioloop.IOLoop.instance().start()
练习:登录界面(服务端)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <from action="http://127.0.0.1:8081" method="get">
        <fieldset>
            <legend>注册页面</legend>
            <p>
                用户名:
                <!--type 指定输入的类型:文本、密码等
                    name 指定提交的内容的key,相当于字典中的key
                -->
                <input type="text" name="username" placeholder="请输入用户名">
                密码:
                <input type="password" name="password" placeholder="请输入密码">
            </p>
            <p>
                性别:
                <!--radio 单选框-->
                <input type="radio" name="gender" value="male" id="ml"><label for="ml">男</label>
                <input type="radio" name="gender" value="female" id="fl"><label for="fl">女</label>
            </p>
            <p>
                爱好:
                <!--checked 设置默认选项-->
                <input type="checkbox" name="hobbies" value="basketball" id="bb"><label for="bb">篮球</label>
                <input type="checkbox" name="hobbies" value="football" checked id="fb"><label for="fb">足球</label>
                <input type="checkbox" name="hobbies" value="pingpang" checked id="pp"><label for="pp">乒乓球</label>
            </p>
            <p>
                  城市:
                <select name="city" id="" style=" 200px">
                    <optgroup label="一线城市">
                        <option value="BJ">北京</option>
                        <option value="SH">上海</option>
                        <option value="SZ" selected="selected">深圳</option>
                        <option value="GZ">广州</option>
                    </optgroup>
                    <optgroup label="二线城市">
                        <option value="JN">济南</option>
                        <option value="SZ">苏州</option>
                        <option value="NJ" selected="selected">南京</option>
                        <option value="CD">成都</option>
                    </optgroup>

                </select>
            </p>
            <p>
                <input type="submit" value="注册">
                <!--<input type="button" value="注册" onclick="alert(123)">-->
                <input type="reset" value="重置" >
            </p>
        </fieldset>
    </from>

</body>
</html>
练习:登录界面(客户端页面)

注意:

  关于标签嵌套:通常块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。

  p标签不能包含块级标签。

补充:

  1.注释方法

<!--注释内容-->

  2.HTML中的特殊字符

空格    &nbsp;
版权 &copy; > &gt; < &lt; & &amp; ¥ &yen;

  

            

原文地址:https://www.cnblogs.com/mdzzbojo/p/9130714.html