• python之路14:HTML


    概述

    HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记)。相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器根据标记语言的规则去解释它。

    浏览器负责将标签翻译成用户“看得懂”的格式,呈现给用户!(例:djangomoan模版引擎) 

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 __author__ = 'BillyLV'
     4 
     5 import socket
     6 
     7 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     8 sock.bind(("127.0.0.1", 8080))
     9 sock.listen(5)
    10 while True:
    11     print("waiting........")
    12     conn, addr = sock.accept()
    13     data = conn.recv(8192)
    14     print("data", data.decode("utf8"))
    15     with open("index.html", "r") as f:
    16         response = f.read()  # 把html放在一个文档里面读出来
    17     conn.send(("HTTP/1.1 200 OK
    
    %s" % response).encode("utf8"))
    WEB

    HTML文档结构树

    html

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 
     9 </body>
    10 </html>

     <head>和</head>之间的内容,是元信息和网站的标题 元信息一般是不显示出来的,但是记录了你这个HTML文件的很多有用的信息
    <body>和</body>之间的内容,是浏览器呈现出来的,用户看到的页面效果。也就是说这里是网页的主体。也就是body的身体之意
    <html></html>是说明这个是一个网页。告诉浏览器这个网页的开始和结束。它包含了之后的两个元素:<head>和</head>|<body>和</body>

    Doctype

    Doctype告诉浏览器使用什么样的html或xhtml规范来解析html文档

    有和无的区别
    1. BackCompat:标准兼容模式未开启(或叫怪异模式[Quirks mode]、混杂模式)
    2. CSS1Compat:标准兼容模式已开启(或叫严格模式[Standards mode/Strict mode])

    这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat,这也就是恶魔的开始 -- 浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。如果你的页面添加了那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。

    有,用什么?

    Doctype告诉浏览器使用什么样的html或xhtml规范来解析html文档, dtd文件则包含了标记、attributes 、properties、约束规则。

    Meta(metadata information)

    提供有关页面的元信息,例:页面编码、刷新、跳转、针对搜索引擎和更新频度的描述和关键词

    1、页面编码

    <meta charset="UTF-8"> #指定编码类型为UTF-8

    2、刷新和跳转

    <meta http-equiv="refresh" content="5"> #指定每5秒刷新一次

    <meta charset="UTF-8" http-equiv="refresh" Content="1;Url=https://www.cnblogs.com/BillyLV/" />#指定1秒之后跳转页面至另一个网页

    3、关键字

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

    <meta name="keywords" content="博客,BillyLV">

    4、描述

    例如cnblog里的就是一个描述:

    <meta name="description" content="博客园是一个面向开发者的知识分享社区。博客园的使命是帮助开发者用代码改变世界。">

    5、X-UA-Compatible

    X-UA-Compatible  这个是IE8特有的,知道即可,因为做前端的同学都很害怕IE因为他们问题比较多各个版本问题很诡异,当IE8的时候微软想把各个版本的统一,那么这个参数就出现了,他为了向下兼容,如下的代码如果使用IE8的时候他会以IE7的模式运行。

    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

    Title

    网页头部信息

    <title>Hello HTML</title>

    Link

    网页头部的图标

    <link rel="shortcut icon" href="favicon.ico">  

    导入css

    < link rel="stylesheet" type="text/css" href="css/common.css" >

    Style

    在页面中写样式

    例如:
    < style type="text/css" > 
    .bb{ 
           
       } 
    < /style> 

    Script

    引进文件

    < script type="text/javascript" src="http://www.googletagservices.com/tag/js/gpt.js"> </script >

    写js代码 

    < script type="text/javascript" > ... </script >

    body

    标签一般分为两种:块级标签(占用整行)和 行内标签(占用它所使用的实际大小)

    块级标签:div、h1-h6、p 等

    行内标签:a、span、select 、br、img等

    特殊符号

    更多见:https://www.cnblogs.com/web-d/archive/2010/04/16/1713298.html

    常用标签:

    p 和 br

    <p></p>标签:段落标签,每一对p标签为一段,默认段落之间是有间隔的!

    <br/>标签:换行标签;有一个<p>1<br/>2</p>为一个换行

    a

     target="_blank" 表示在新的页面打开, href表示跳转

    <a target="_blank" href="https://www.cnblogs.com/billylv">博客</a>

    锚的作用是类似于读书时候的书签,当你点击这个“锚”=“书签”,的时候就跳转到指定的位置,代码如下

     1 <!DOCTYPE html>
     2 <!-- 类似html这种格式,标签,html标签 <html>fasdfasdf</html># 标签内部的属性-->
     3 <html lang="en">
     4 <head>
     5     <meta charset="UTF-8" http-equiv="refresh" Content="3;Url=http://www.cnblogs.com/billylv" />
     6     <!-- utf8编码,3秒后跳转到指定的网页 -->
     7     <title>Hello HTML</title>
     8     <!-- 网页标题 -->
     9 </head>
    10 <body>
    11 <p>博客</p>
    12 <p>billylv</p>
    13 <p>1<br/>2</p>
    14 <a target="_blank" href="http://www.cnblogs.com/billylv">博客</a>
    15 &emsp;&nbsp;
    16 <p></p>
    17 <a href="#a2">
    18         书签
    19     </a>
    20     <!--在标签里,ID是这个标签的唯一的值,我们在做锚的时候指定他的ID即可-->
    21     <!--<a href="#a2"> 上面的代码href="#要跳转的标签"-->
    22     <div id="a1" style="height:700px;">
    23         mark_1
    24     </div>
    25 
    26     <div id="a2" style="height:700px;">
    27         mark_2
    28     </div>
    29 </body>
    30 </html>

    即标题标签,代码如下

        <h1>H1</h1>
        <h2>H2</h2>
        <h3>H3</h3>
        <h4>H4</h4>
        <h5>H5</h5>
        <h6>H6</h6>

    显示效果如下:

    select

       
     1 <select>
     2     <option value="1">上海</option>
     3     <option value="2">北京</option>
     4     <option value="3" selected="selected">武汉</option>
     5     <!-- selected="selected"设置为默认-->
     6 </select>
     7 <select multiple="multiple" size="5">
     8     <!--multiple多选,size显示个数-->
     9     <option>上海</option>
    10     <option>北京</option>
    11     <option>广州</option>
    12     <option>山东</option>
    13 </select>
    14 <select>
    15     <optgroup label="河北省">
    16         <!--分组-->
    17         <option>石家庄</option>
    18         <option>邯郸</option>
    19     </optgroup>
    20     <optgroup label="山西省">
    21         <option>太原</option>
    22         <option>平遥</option>
    23     </optgroup>
    24 </select>
    select

    input

     1 <input type="checkbox"/>
     2 <input type="checkbox"/>
     3 <input type="checkbox" checked="checked"/>
     4 <!-- checked="checked"为默认选择-->
     5 
     6 <!--可以多选 -->
     7 <input type="radio"/>
     8 <input type="radio"/>
     9 <input type="radio"/>
    10 <hr/>
    11 <!--name="gender"代表只能单选-->
    12 <input type="radio" name="gender"/>
    13 <input type="radio" name="gender"/>
    14 <input type="radio" name="gender"/>
    15 <hr/>
    16 <!--标准的输入框-->
    17 <input type="text"/>
    18 <!--密码的输入框(输入的内容是保密的)-->
    19 <input type="password"/>
    20 <input type="button" value="按钮"/>
    21 <input type="submit" value="提交"/>
    22 <input type="file"/>
    23 <!--file提交文件-->
    24 <textarea style="height: 100px; 100px;"></textarea>
    25 <!--多行文本框-->
    input

    form

     1 <form>
     2     <p>用户名:<input type="text"/></p>
     3     <p>密码:<input type="password"/></p>
     4     <input type="submit" value="提交"/>
     5     <!--submit是用来提交当前的表单的,可以有多个表单,会写入表单内-->
     6 </form>
     7 
     8 <form action="www.baidu.com" method="get">
     9     <!--这里action是告诉html提交到那里-->
    10     <!--method是通过什么方法去action指定的地址-->
    11     <p>
    12         用户名:<input type="text" name="username"/>
    13         <!--这里的name="username" 这里当咱们指定的action接收到的数据之后先会找到是否有这个name标签-->
    14         <!--然后把这里的用户的输入复制给name为一个字典key:value模式-->
    15     </p>
    16     <p>
    17         密码:<input type="password" name="password"/>
    18         <!--这里的name="password" 这里当咱们指定的action接收到的数据之后先会找到是否有这个name标签-->
    19         <!--然后把这里的用户的输入复制给name为一个字典key:value模式-->
    20     </p>
    21     <p>
    22         部门:<select name="department">
    23         <option value="1">CTO</option>
    24         <option value="2">CEO</option>
    25         <!--这里在选择之后,会把选择的value值赋予给name,当用户点击提交后就会提交到后台-->
    26     </select>
    27     </p>
    28     <input type="submit" value="提交"/>
    29 </form>
    form表单

    Label

     1 <div>
     2     <h5>Label标签</h5>
     3     姓名:<input type="text"/>
     4     婚否:<input type="checkbox"/>
     5     <!--只能点进框体里去,否则就不能输入或选择-->
     6 </div>
     7 
     8 <div>
     9     <label for="name_1">
    10         姓名:
    11         <input id="name_1" type="text"/>
    12     </label>
    13 
    14     <label for="name_2">
    15         婚否:<input id="name_2" type="checkbox"/>
    16     </label>
    17     <!--选择文字的时候也会进入到相应的框体-->
    18 </div>
    label标签

    ul/ol/dl

     1 <!--ul列表在前面自动加“点”-->
     2 <ul>
     3     <li>line1</li>
     4     <li>line2</li>
     5     <li>line3</li>
     6 </ul>
     7 
     8 <!--ol列表在前面自动加“数字”-->
     9 <ol>
    10     <li>line1</li>
    11     <li>line2</li>
    12     <li>line3</li>
    13 </ol>
    14 
    15 <!--dl列表自动分组-->
    16 <dl>
    17     <dt>河北省</dt>
    18     <!--dt是标签,dd是标签里的内容-->
    19     <dd>石家庄</dd>
    20     <dd>衡水市</dd>
    21     <dt>山东省</dt>
    22     <!--dt是标签,dd是标签里的内容-->
    23     <dd>济南市</dd>
    24     <dd>烟台市</dd>
    25 </dl>
    列表

    table

     1 <table border="1">
     2     <!--border这里是加上边框-->
     3     <tr>
     4         <td>1</td>
     5         <td>2</td>
     6         <td>3</td>
     7     </tr>
     8     <!--一个tr是1行,一个td是一列,一行里可能有很多列。如果想加多个行就加多个tr即可-->
     9     <tr>
    10         <td>1</td>
    11         <td>2</td>
    12         <td>3</td>
    13     </tr>
    14 </table>
    15 
    16 合并单元格
    17 <table border="1">
    18     <!--border这里是加上边框-->
    19     <tr>
    20         <td colspan="3">1</td>
    21         <!--这里colspan,就告诉html解析的时候占3个格-->
    22     </tr>
    23     <!--一个tr是1行,一个td是一列,一行里可能有很多列。如果想加多个行就加多个tr即可-->
    24     <tr>
    25         <td rowspan="2">1</td>
    26         <td>2</td>
    27         <td>3</td>
    28     </tr>
    29     <tr>
    30         <td>2</td>
    31         <td>3</td>
    32     </tr>
    33 </table>
    34 <table border="1">
    35     <!--border这里是加上边框-->
    36     <thead>
    37     <!--表头-->
    38     <tr>
    39         <th>表1</th>
    40         <th>表2</th>
    41         <th>表3</th>
    42     </tr>
    43     </thead>
    44     <tbody>
    45     <tr>
    46         <td>1</td>
    47         <td>2</td>
    48         <td>3</td>
    49     </tr>
    50     <tr>
    51         <td>1</td>
    52         <td>2</td>
    53         <td>3</td>
    54     </tr>
    55     <tr>
    56         <td>1</td>
    57         <td>2</td>
    58         <td>3</td>
    59     </tr>
    60     </tbody>
    61 </table>
    表格

    fieldset

    1 <fieldset>
    2     <legend>协议</legend>
    3     请仔细阅读协议内容:
    4 </fieldset>
    字段集

    参考: 

    http://www.cnblogs.com/alex3714

    http://www.cnblogs.com/wupeiqi

    internet&python books

    PS:如侵权,联我删。

  • 相关阅读:
    springboot + driud连接池踩的坑____新手学习
    tomcat的安装
    无限极分类
    javascript ECMAscript 和node.js commonJs之间的关系
    变量名,引用和地址
    java中闭包的理解
    thinkphp 模型的curd
    thinkphp之migration 迁移文件的使用
    验证ArrayList是线程不安全的集合
    一个java小程序,盗取插入的U盘中的数据。
  • 原文地址:https://www.cnblogs.com/BillyLV/p/11073236.html
Copyright © 2020-2023  润新知