HTML介绍

技术分享,侵删。

原文链接:https://www.cnblogs.com/yuanchenqi/articles/5976755.html


HTML介绍

前端概述 

 

复制代码

import socket

def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('localhost',8089))
    sock.listen(5)

    while True:
        connection, address = sock.accept()
        buf = connection.recv(1024)

        connection.sendall(bytes("HTTP/1.1 201 OK\r\n\r\n","utf8"))

        connection.sendall(bytes("<h1>Hello,World</h1>","utf8"))

        connection.close()

if __name__ == '__main__':

    main()

复制代码

html css 以及js的关系

HTML的学习

HTML 是什么?

htyper text markup language  即超文本标记语言

超文本: 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。

标记语言: 标记(标签)构成的语言.

 

网页==HTML文档,由浏览器解析,用来展示的

静态网页:静态的资源,如xxx.html

动态网页:html代码是由某种开发语言根据用户请求动态生成的

html文档树形结构图:

                      

 

什么是标签

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

标签的属性

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

<!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的标准解析渲染页面。

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

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

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

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

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

head标签

<meta>

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

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

 <!DOCTYPE html>
 <html lang="zh-cn">
 <head>
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1" />
 <meta name="referrer" content="origin" />
 <title>HTML介绍 - Yuan先生 - 博客园</title>
 <meta property="og:description" content="前端概述 html css 以及js的关系 HTML的学习 HTML 是什么? htyper text markup language 即超文本标记语言 超文本: 就是指页面内可以包含图片、链接,甚至" />
 <link type="text/css" rel="stylesheet" href="/bundles/blog-common.css?v=svlZeZMvc3He7PqOD4T7SOuQn0_kIfLBYiy3idqd35Y1"/>
 <link id="MainCss" type="text/css" rel="stylesheet" href="/skins/summerGarden/bundle-summerGarden.css?v=R6EW1cwbYc7SqZ5y0CMKPNjYaFnIdEGDIwRo4NL-lHw1"/>
 <link type="text/css" rel="stylesheet" href="/blog/customcss/262677.css?v=uTRTahVBjVwerqbmuH55G1%2bIShg%3d"/>
 <link id="mobile-style" media="only screen and (max-width: 767px)" type="text/css" rel="stylesheet" href="/skins/summerGarden/bundle-summerGarden-mobile.css?v=0rD5dztz_pRczoCFf4jzWyb4-oTf_yCZ8ttZxIagC2s1"/>
 <link title="RSS" type="application/rss+xml" rel="alternate" href="https://www.cnblogs.com/yuanchenqi/rss"/>
 <link title="RSD" type="application/rsd+xml" rel="EditURI" href="https://www.cnblogs.com/yuanchenqi/rsd.xml"/>
 <link type="application/wlwmanifest+xml" rel="wlwmanifest" href="https://www.cnblogs.com/yuanchenqi/wlwmanifest.xml"/>
 <script src="//common.cnblogs.com/scripts/jquery-2.2.0.min.js"></script>
 <script>var currentBlogId=262677;var currentBlogApp='yuanchenqi',cb_enable_mathjax=false;var isLogined=false;</script>
 <script src="/bundles/blog-common.js?v=OFBZTzkHKauV7mtIFLF9jlqrX-sesK9-mY9KjurLrq01" type="text/javascript"></script>
 </head>
 <body>
 <a name="top"></a>
  
  
 <!--done-->
 <div id="home">
 <div id="header">
 <div id="blogTitle">
 <a id="lnkBlogLogo" href="https://www.cnblogs.com/yuanchenqi/"><img id="blogLogo" src="/Skins/custom/images/logo.gif" alt="返回主页" /></a>
  
 <!--done-->
 <h1><a id="Header1_HeaderTitle" class="headermaintitle" href="https://www.cnblogs.com/yuanchenqi/">Yuan先生</a></h1>
 <h2></h2>
  
  
  
  
 </div><!--end: blogTitle 博客的标题和副标题 -->
 <div id="navigator">
  
 <ul id="navList">
 <li></li>
 <li></li>
 <li><a href="http://news.cnblogs.com/">新闻</a></li>
 <li></li>
 <li></li>
 <li><a id="blog_nav_admin" class="menu" rel="nofollow" href="https://i.cnblogs.com/">管理</a></li>
 <li>
 </li>
 </ul>
  
  
 <div class="blogStats">
  
  
  
 </div><!--end: blogStats -->
 </div><!--end: navigator 博客导航栏 -->
 </div><!--end: header 头部 -->
  
 <div id="main">
 <div id="mainContent">
 <div class="forFlow">
  
 <div id="post_detail">
 <!--done-->
 <div id="topics">
 <div class = "post">
 <h1 class = "postTitle">
 <a id="cb_post_title_url" class="postTitle2" href="https://www.cnblogs.com/yuanchenqi/articles/5976755.html">HTML介绍</a>
 </h1>
 <div class="clear"></div>
 <div class="postBody">
 <div id="cnblogs_post_body" class="blogpost-body"><h2>前端概述&nbsp;</h2>
 <p>&nbsp;</p>
 <p><img src="https://i-blog.csdnimg.cn/blog_migrate/17bc7a3c6f383b94afd4bb9ffa322c1a.png" alt="" width="407" height="215" /></p>
 <div class="cnblogs_code">
 <pre><span style="color: #000000;">import socket
  
 def main():
 sock </span>=<span style="color: #000000;"> socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 sock.bind((</span>'localhost',8089<span style="color: #000000;">))
 sock.listen(</span>5<span style="color: #000000;">)
  
 </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> True:
 connection, address </span>=<span style="color: #000000;"> sock.accept()
 buf </span>= connection.recv(1024<span style="color: #000000;">)
  
 connection.sendall(bytes(</span>"HTTP/1.1 201 OK\r\n\r\n","utf8"<span style="color: #000000;">))
  
 connection.sendall(bytes(</span>"&lt;h1&gt;Hello,World&lt;/h1&gt;","utf8"<span style="color: #000000;">))
  
 connection.close()
  
 </span><span style="color: #0000ff;">if</span> __name__ == '__main__'<span style="color: #000000;">:
  
 main()</span></pre>
 </div>
 <h3>html css 以及js的关系</h3>
 <p><img src="https://i-blog.csdnimg.cn/blog_migrate/e330e59a3b42bc3dba83f4ed964d578e.jpeg" alt="" width="498" height="253" /></p>
 <h2>HTML的学习</h2>
 <h3>HTML 是什么?</h3>
 <p>htyper text markup language &nbsp;即超文本标记语言</p>
 <p>超文本: 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。</p>
 <p>标记语言: 标记(标签)构成的语言.</p>
 <p>&nbsp;</p>
 <p>网页==HTML文档,由浏览器解析,用来展示的</p>
 <p>静态网页:静态的资源,如xxx.html</p>
 <p>动态网页:html代码是由某种开发语言根据用户请求动态生成的</p>
 <p><strong>html文档树形结构图:</strong></p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/84ad161c2f4049bc0fa4302b5a11e92e.png" alt="" width="479" height="249" /></p>
 <p>&nbsp;</p>
 <h3>什么是标签</h3>
 <ul>
 <li>是由一对尖括号包裹的单词构成 例如: &lt;html&gt; *所有标签中的单词不可能以数字开头.</li>
 <li>标签不区分大小写.&lt;html&gt; 和 &lt;HTML&gt;. 推荐使用小写.</li>
 <li>标签分为两部分: 开始标签&lt;a&gt; 和 结束标签&lt;/a&gt;. 两个标签之间的部分 我们叫做标签体.</li>
 <li>有些标签功能比较简单.使用一个标签即可.这种标签叫做自闭和标签.例如: &lt;br/&gt; &lt;hr/&gt; &lt;input /&gt; &lt;img /&gt;</li>
 <li>标签可以嵌套.但是不能交叉嵌套. &lt;a&gt;&lt;b&gt;&lt;/a&gt;&lt;/b&gt;</li>
 </ul>
 <h3>标签的属性</h3>
 <ul>
 <li>通常是以键值对形式出现的. 例如 name="alex"</li>
 <li>属性只能出现在开始标签 或 自闭和标签中.</li>
 <li>属性名字全部小写. *属性值必须使用双引号或单引号包裹 例如&nbsp;name="alex"</li>
 <li>如果属性值和属性名完全一样.直接写属性名即可. 例如 readonly</li>
 </ul>
 <h3>&lt;!DOCTYPE html&gt;标签</h3>
 <p>&nbsp; &nbsp; &nbsp; 由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同。在<br />W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility <br />Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars<br />mode),这就是二者最简单的区别。<br />&nbsp; &nbsp; &nbsp; W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出来以前,<br />很多页面都是根据旧的渲染方法编写的,如果用的标准来渲染,将导致页面显示异常。为保持浏览器渲染的兼容性,使以<br />前的页面能够正常浏览,浏览器都保留了旧的渲染方法(如:微软的IE)。这样浏览器渲染上就产生了Quircks mode<br />和Standars mode,两种渲染方法共存在一个浏览器上。</p>
 <div class="cnblogs_code">
 <pre><span style="color: #000000;">window.top.document.compatMode:
 </span><span style="color: #008000;">//</span><span style="color: #008000;">BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。 </span><span style="color: #008000;">
 //</span><span style="color: #008000;">CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。</span></pre>
 </div>
 <p>&nbsp; &nbsp; &nbsp; &nbsp;这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat,</p>
 <p>这也就是恶魔的开始 -- 浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。</p>
 <p>&nbsp; &nbsp; 如果你的页面添加了&lt;!DOCTYPE html&gt;那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的</p>
 <p>标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。</p>
 <p>这就是&lt;!DOCTYPE html&gt;的作用。</p>
 <h3>head标签</h3>
 <p><strong><span style="color: #800080;">&lt;meta&gt;</span></strong></p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。</p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; 1: name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。&nbsp; &nbsp; &nbsp;</p>
 <div class="cnblogs_Highlighter">
 <pre class="brush:python;gutter:true;">&lt;meta name="keywords" content="meta总结,html meta,meta属性,meta跳转"&gt;
  
 &lt;meta name="description" content="老男孩培训机构是由一个老的男孩创建的"&gt;</pre>
 </div>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; 2: http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;content中的内容其实就是各个参数的变量值。&nbsp; &nbsp;</p>
 <div class="cnblogs_Highlighter">
 <pre class="brush:python;gutter:true;"> &lt;meta http-equiv="Refresh" content="2;URL=https://www.baidu.com"&gt; //(注意后面的引号,分别在秒数的前面和网址的后面)
  
 &lt;meta http-equiv="content-Type" charset=UTF8"&gt;
  
 &lt;meta http-equiv = "X-UA-Compatible" content = "IE=EmulateIE7" /&gt;&nbsp;</pre>
 </div>
 <p>&nbsp;</p>
 <p>&nbsp;注意:X-UA-Compatible</p>
 <div class="cnblogs_code" οnclick="cnblogs_code_show('810bfb0a-4425-459b-b471-ea2726879d34')"><img id="code_img_closed_810bfb0a-4425-459b-b471-ea2726879d34" class="code_img_closed" src="https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif" alt="" /><img id="code_img_opened_810bfb0a-4425-459b-b471-ea2726879d34" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('810bfb0a-4425-459b-b471-ea2726879d34',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="" />
 <div id="cnblogs_code_open_810bfb0a-4425-459b-b471-ea2726879d34" class="cnblogs_code_hide">
 <pre><span style="color: #000000;">每个主要版本IE新增的功能都是为了让浏览器更容易使用、增加安全性及更支持业界标准。以这些作为IE的特色,其中
 一个风险就是旧版本网站无法正确的显示。
  
 为了将这个风险降到最低,IE6允许网页开发人员选择IE编译和显示他们网页的方式。</span>"Quirks mode"<span style="color: #000000;">为预设,这会
 使页面以旧版本浏览器的视点显示,</span>"Standards mode"(也称为"strict mode"<span style="color: #000000;">)特点是支持业界标准最为完善。
 然而要利用这个增强的支持功能,网页必须包含恰当的</span>&lt;!DOCTYPE&gt;<span style="color: #000000;">指令。
  
 若一个网页没有包含</span>&lt;!DOCTYPE&gt;指令,IE6会将它以quirks mode显示。若网页包含有效的&lt;!DOCTYPE&gt;<span style="color: #000000;">指令但浏
 览器无法辨识,IE6会将它以IE6 standards mode显示。因为少数网站已经包含</span>&lt;!DOCTYPE&gt;<span style="color: #000000;">指令,兼容性模式的
 切换相当成功。这使网页开发人员能选择将他们的网页转移为standards mode的最佳时机。
  
 随著时间经过,更多网站开始使用standards mode。它们也开始使用IE6的特性和功能来检测IE。举例来说,IE6
 不支持universal selector(即css之全局选择器 </span>*<span style="color: #000000;"> {}),一些网站便使用它来针对IE做特定的对应。
  
 当 IE7增加了对全域选择器的支持,那些依赖IE6特点的网站便无法侦测出这个新版本的浏览器。因此那些针对IE的
 特定对应无法应用于IE7,造成这些网站便无法如他们预期的显示。由于</span>&lt;!DOCTYPE&gt;<span style="color: #000000;">只支持两种兼容性模式,受到影
 响的网站拥有者被迫更新他们的网站使其能支持IE7。
  
 IE8 比之前的任何版本浏览器都更支持业界标准,因此针对旧版本浏览器设计的网页可能无法如预期般呈现。为了帮
 助减轻所有问题,IE8引入文件兼容性的概念,使你能选择你的网页设计要对应的特定IE版本。文件兼容性在IE8增加
 了一些新的模式,这些模式能告诉浏览器如何解析和编译一个网页。若你的网页无法在 ie8正确的显示,你可以更新
 你的网站使它支持最新的网页标准(优先选项)或在你的页面上新增一个meta元素用于告诉IE8如何依照旧版本浏览器
 编译你的页面。
  
 这能让你选择将你的网站更新支持IE8新特点的时机。
  
 当 Internet Explorer </span>8 遇到未包含 X-UA-Compatible 标头的网页时,它将使用 &lt;!DOCTYPE&gt;<span style="color: #000000;"> 指令来确
 定如何显示该网页。 如果该指令丢失或未指定基于标准的文档类型,则 Internet Explorer </span>8<span style="color: #000000;"> 将以 IE5 模式
 (Quirks 模式)显示该网页。</span></pre>
 </div>
 <span class="cnblogs_code_collapse">View Code</span></div>
 <p><strong><span style="color: #800080;">&nbsp;非meta标签</span></strong></p>
 <div class="cnblogs_code">
 <pre> &lt;title&gt;oldboy&lt;/title&gt;
 &lt;link rel="icon" href="http://www.jd.com/favicon.ico"&gt;
 &lt;link rel="stylesheet" href="css.css"&gt;
 &lt;script src="hello.js"&gt;&lt;/script&gt; </pre>
 </div>
 <h3>body标签</h3>
 <h4>一 基本标签(<strong>块级标签和内联标签</strong>)</h4>
 <div class="cnblogs_code">
 <pre>&lt;hn&gt;: n的取值范围是1~6<span style="color: #000000;">; 从大到小. 用来表示标题.
  
 </span>&lt;p&gt;<span style="color: #000000;">: 段落标签. 包裹的内容被换行.并且也上下内容之间有一行空白.
  
 </span>&lt;b&gt; &lt;strong&gt;<span style="color: #000000;">: 加粗标签.
  
 </span>&lt;strike&gt;<span style="color: #000000;">: 为文字加上一条中线.
  
 </span>&lt;em&gt;<span style="color: #000000;">: 文字变成斜体.
  
 </span>&lt;sup&gt;和&lt;sub&gt;<span style="color: #000000;">: 上角标 和 下角表.
  
 </span>&lt;br&gt;<span style="color: #000000;">:换行.
  
 </span>&lt;hr&gt;<span style="color: #000000;">:水平线
 <br /></span>&lt;div&gt;&lt;span&gt;</pre>
 </div>
 <p>块级标签:&lt;p&gt;&lt;h1&gt;&lt;table&gt;&lt;ol&gt;&lt;ul&gt;&lt;form&gt;&lt;div&gt;</p>
 <p>内联标签:&lt;a&gt;&lt;input&gt;&lt;img&gt;&lt;sub&gt;&lt;sup&gt;&lt;textarea<span class="s1">&gt;&lt;span&gt;</span></p>
 <p><span class="s1" style="color: #800080;">block(块)元素的特点</span></p>
 <p class="s1" style="margin-left: 30px;"><span class="s1">&nbsp;总是在新行上开始;<br class="_mce_tagged_br" />&nbsp;宽度缺省是它的容器的100%,除非设定一个宽度。<br class="_mce_tagged_br" />&nbsp;它可以容纳内联元素和其他块元素</span></p>
 <p><span class="s1"><span style="color: #800080;">inline元素的特点</span></span></p>
 <p style="margin-left: 30px;"><span class="s1">和其他元素都在一行上;<br />宽度就是它的文字或图片的宽度,不可改变<br />内联元素只能容纳文本或者其他内联元素<br /></span></p>
 <p><span style="color: #800080;">特殊字符</span></p>
 <p>&nbsp; &nbsp; &nbsp;&nbsp;&amp;lt; &amp;gt;&amp;quot;&amp;copy;&amp;reg;</p>
 <h4>二&nbsp;图形标签: &lt;img&gt;&nbsp;</h4>
 <div class="cnblogs_code">
 <pre><span style="color: #000000;">src: 要显示图片的路径.
  
 alt: 图片没有加载成功时的提示.
  
 title: 鼠标悬浮时的提示信息.
  
 width: 图片的宽
  
 height:图片的高 (宽高两个属性只用一个会自动等比缩放.)</span></pre>
 </div>
 <h4>三&nbsp;超链接标签(锚标签)&lt;a&gt;</h4>
 <div class="cnblogs_code">
 <pre>href:要连接的资源路径 格式如下: href=<span style="color: #800000;">"</span><span style="color: #800000;">http://www.baidu.com</span><span style="color: #800000;">"</span><span style="color: #000000;">
  
 target: _blank : 在新的窗口打开超链接. 框架名称: 在指定框架中打开连接内容.
  
 name: 定义一个页面的书签.
  
 用于跳转 href : </span><span style="color: #008000;">#</span><span style="color: #008000;">id.(锚)<br /> </span></pre>
 </div>
 <h4>四 列表标签:</h4>
 <div class="cnblogs_code">
 <pre>&lt;ul&gt;<span style="color: #000000;">: 无序列表
  
 </span>&lt;ol&gt;<span style="color: #000000;">: 有序列表
 </span>&lt;li&gt;<span style="color: #000000;">:列表中的每一项.<br />
 </span>&lt;dl&gt;<span style="color: #000000;"> 定义列表
  
 </span>&lt;dt&gt;<span style="color: #000000;"> 列表标题
 </span>&lt;dd&gt; 列表项</pre>
 </div>
 <h4>五&nbsp;表格标签: &lt;table&gt;</h4>
 <div class="cnblogs_code">
 <pre><span style="color: #000000;">border: 表格边框.
  
 cellpadding: 内边距
  
 cellspacing: 外边距.
  
 width: 像素 百分比.(最好通过css来设置长宽)
  
 </span>&lt;tr&gt;<span style="color: #000000;">: table row
  
 </span>&lt;th&gt;<span style="color: #000000;">: table head cell
  
 </span>&lt;td&gt;<span style="color: #000000;">: table data cell
  
 rowspan: 单元格竖跨多少行
  
 colspan: 单元格横跨多少列(即合并单元格)
  
 </span>&lt;th&gt;: table header &lt;tbody&gt;(不常用): 为表格进行分区.</pre>
 </div>
 <h4>六 表单标签&lt;form&gt;</h4>
 <p>&nbsp; &nbsp; &nbsp; 表单用于向服务器传输数据。</p>
 <p>&nbsp; &nbsp; &nbsp; 表单能够包含&nbsp;<a title="HTML &lt;input&gt; 标签" href="http://www.w3school.com.cn/tags/tag_input.asp">input 元素</a>,比如文本字段、复选框、单选框、提交按钮等等。</p>
 <p>&nbsp; &nbsp; &nbsp; 表单还可以包含<a title="HTML &lt;textarea&gt; 标签" href="http://www.w3school.com.cn/tags/tag_textarea.asp">textarea</a>、select、<a title="HTML &lt;fieldset&gt; 标签" href="http://www.w3school.com.cn/tags/tag_fieldset.asp">fieldset</a>和&nbsp;<a title="HTML &lt;label&gt; 标签" href="http://www.w3school.com.cn/tags/tag_label.asp">label 元素</a>。</p>
 <p><strong>1.表单属性</strong></p>
 <p>  HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。表单标签, 要提交的所有内容都应该在该标签中.</p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; action: 表单提交到哪. 一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web</p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; method: 表单的提交方式 post/get 默认取值 就是 get(信封)</p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get: 1.提交的键值对.放在地址栏中url后面. 2.安全性相对较差. 3.对提交内容的长度有限制.</p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; post:1.提交的键值对 不在地址栏. 2.安全性相对较高. 3.对提交内容的长度理论上无限制.</p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get/post是常见的两种请求方式.</p>
 <p><strong>2.表单元素</strong></p>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong><span style="color: #800080;">&lt;input&gt; &nbsp;标签的属性和对应值</span></strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</p>
 <div class="cnblogs_code">
 <pre><span style="color: #000000;">type: text 文本输入框
  
 password 密码输入框
  
 radio 单选框
  
 checkbox 多选框
  
 submit 提交按钮
  
 button 按钮(需要配合js使用.) button和submit的区别?
  
 file 提交文件:form表单需要加上属性enctype</span>=<span style="color: #800000;">"</span><span style="color: #800000;">multipart/form-data</span><span style="color: #800000;">"</span><span style="color: #000000;">
  
 name: 表单提交项的键.注意和id属性的区别:name属性是和服务器通信时使用的名称;而id属性是浏览器端使用的名称,该属性主要是为了方便客<br /> 户端编程,而在css和javascript中使用的</span></pre>
 <pre><span style="color: #000000;"> value: 表单提交项的值.</span>对于不同的输入类型,value 属性的用法也不同:</pre>
 <div class="cnblogs_Highlighter">
 <pre class="brush:python;gutter:true;">type="button", "reset", "submit" - 定义按钮上的显示的文本
  
 type="text", "password", "hidden" - 定义输入字段的初始值
  
 type="checkbox", "radio", "image" - 定义与输入相关联的值  </pre>
 </div>
 <pre><span style="color: #000000;"> checked: radio 和 checkbox 默认被选中
  
 readonly: 只读. text 和 password
  
 disabled: 对所用input都好使.</span></pre>
 </div>
 <p>上传文件注意两点:</p>
 <p>&nbsp;1 请求方式必须是post</p>
 <p>&nbsp;2 enctype="multipart/form-data"</p>
 <div class="cnblogs_code" οnclick="cnblogs_code_show('6256095d-e28f-40f0-96a5-920c0291e28d')"><img id="code_img_closed_6256095d-e28f-40f0-96a5-920c0291e28d" class="code_img_closed" src="https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif" alt="" /><img id="code_img_opened_6256095d-e28f-40f0-96a5-920c0291e28d" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('6256095d-e28f-40f0-96a5-920c0291e28d',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="" />
 <div id="cnblogs_code_open_6256095d-e28f-40f0-96a5-920c0291e28d" class="cnblogs_code_hide">
 <pre><span style="color: #0000ff;">def</span><span style="color: #000000;"> index(request):
 </span><span style="color: #0000ff;">print</span><span style="color: #000000;"> request.POST
 </span><span style="color: #0000ff;">print</span><span style="color: #000000;"> request.GET
 </span><span style="color: #0000ff;">print</span><span style="color: #000000;"> request.FILES
 </span><span style="color: #0000ff;">for</span> item <span style="color: #0000ff;">in</span><span style="color: #000000;"> request.FILES:
 fileObj </span>=<span style="color: #000000;"> request.FILES.get(item)
 f </span>= open(fileObj.name, <span style="color: #800000;">'</span><span style="color: #800000;">wb</span><span style="color: #800000;">'</span><span style="color: #000000;">)
 iter_file </span>=<span style="color: #000000;"> fileObj.chunks()
 </span><span style="color: #0000ff;">for</span> line <span style="color: #0000ff;">in</span><span style="color: #000000;"> iter_file:
 f.write(line)
 f.close()
 </span><span style="color: #0000ff;">return</span> HttpResponse(<span style="color: #800000;">'</span><span style="color: #800000;">ok</span><span style="color: #800000;">'</span>)</pre>
 </div>
 <span class="cnblogs_code_collapse">上传文件</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div>
 <p>&nbsp; &nbsp; &nbsp;<strong><span style="color: #800080;">&nbsp; &nbsp; &nbsp;&lt;select&gt; 下拉选标签属性</span></strong></p>
 <div class="cnblogs_code">
 <pre><span style="color: #000000;"> name:表单提交项的键.
  
 size:选项个数
  
 multiple:multiple
  
 </span>&lt;option&gt;<span style="color: #000000;"> 下拉选中的每一项 属性:
  
 value:表单提交项的值. selected: selected下拉选默认被选中
  
 </span>&lt;optgroup&gt;为每一项加上分组</pre>
 </div>
 <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong><span style="color: #800080;">&lt;textarea&gt; 文本域</span></strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</p>
 <div class="cnblogs_code">
 <pre><span style="color: #000000;">name: 表单提交项的键.<br />
 cols: 文本域默认有多少列<br />
 rows: 文本域默认有多少行</span></pre>
 </div>
 <p style="margin-left: 30px;"><strong><span style="color: #800080;">&nbsp; &nbsp; &lt;label&gt;</span></strong><span class="s1">&nbsp; &nbsp;&nbsp;</span></p>
 <div class="cnblogs_Highlighter">
 <pre class="brush:python;gutter:true;"> &lt;label for="www"&gt;姓名&lt;/label&gt;
 &lt;input id="www" type="text"&gt;</pre>
 </div>
 <p class="p1" style="margin-left: 30px;"><span class="s1">&nbsp; &nbsp; <strong><span style="color: #800080;">&lt;fieldset&gt;</span></strong></span></p>
 <div class="cnblogs_Highlighter">
 <pre class="brush:python;gutter:true;">&lt;fieldset&gt;
 &lt;legend&gt;登录吧&lt;/legend&gt;
 &lt;input type="text"&gt;
 &lt;/fieldset&gt;
 </pre>
 </div>
 <p>  </p>
 <p style="margin-left: 120px;">&nbsp;</p>
 <p style="margin-left: 120px;">&nbsp;</p>
 <p>&nbsp;</p></div><div id="MySignature"></div>
 <div class="clear"></div>
 <div id="blog_post_info_block">
 <div id="BlogPostCategory"></div>
 <div id="EntryTag"></div>
 <div id="blog_post_info">
 </div>
 <div class="clear"></div>
 <div id="post_next_prev"></div>
 </div>
  
  
 </div>
 <div class = "postDesc">posted @ <span id="post-date">2016-10-19 12:02</span> <a href='https://www.cnblogs.com/yuanchenqi/'>Yuan先生</a> 阅读(<span id="post_view_count">...</span>) 评论(<span id="post_comment_count">...</span>) &nbsp;<a href="https://i.cnblogs.com/EditArticles.aspx?postid=5976755" rel="nofollow">编辑</a> <a href="#" οnclick="AddToWz(5976755);return false;">收藏</a></div>
 </div>
 <script type="text/javascript">var allowComments=false,cb_blogId=262677,cb_entryId=5976755,cb_blogApp=currentBlogApp,cb_blogUserGuid='6d0ad0ce-3cb7-e511-9fc1-ac853d9f53cc',cb_entryCreatedDate='2016/10/19 12:02:00';loadViewCount(cb_entryId);var cb_postType=2;var isMarkdown=false;</script>
  
 </div><!--end: topics 文章、评论容器-->
 </div><a name="!comments"></a><div id="blog-comments-placeholder"></div><script type="text/javascript">var commentManager = new blogCommentManager();commentManager.renderComments(0);</script>
 <div id='comment_form' class='commentform'>
 <a name='commentform'></a>
 <div id='divCommentShow'></div>
 <div id='comment_nav'><span id='span_refresh_tips'></span><a href='javascript:void(0);' οnclick='return RefreshCommentList();' id='lnk_RefreshComments' runat='server' clientidmode='Static'>刷新评论</a><a href='#' οnclick='return RefreshPage();'>刷新页面</a><a href='#top'>返回顶部</a></div>
 <div id='comment_form_container'></div>
 <div class='ad_text_commentbox' id='ad_text_under_commentbox'></div>
 <div id='ad_t2'></div>
 <div id='opt_under_post'></div>
 <script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
 <script>
 var googletag = googletag || {};
 googletag.cmd = googletag.cmd || [];
 </script>
 <script>
 googletag.cmd.push(function() {
 googletag.defineSlot('/1090369/C1', [300, 250], 'div-gpt-ad-1546353474406-0').addService(googletag.pubads());
 googletag.defineSlot('/1090369/C2', [468, 60], 'div-gpt-ad-1539008685004-0').addService(googletag.pubads());
 googletag.pubads().enableSingleRequest();
 googletag.enableServices();
 });
 </script>
 <div id='cnblogs_c1' class='c_ad_block'>
 <div id='div-gpt-ad-1546353474406-0' style='height:250px; width:300px;'></div>
 </div>
 <div id='under_post_news'></div>
 <div id='cnblogs_c2' class='c_ad_block'>
 <div id='div-gpt-ad-1539008685004-0' style='height:60px; width:468px;'></div>
 </div>
 <div id='under_post_kb'></div>
 <div id='HistoryToday' class='c_ad_block'></div>
 <script type='text/javascript'>
 if(enablePostBottom()) {
 codeHighlight();
 fixPostBody();
 setTimeout(function () { incrementViewCount(cb_entryId); }, 50);
 deliverT2();
 deliverC1();
 deliverC2();
 loadNewsAndKb();
 loadBlogSignature();
 LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
 GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate, cb_postType);
 loadOptUnderPost();
 GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);
 }
 </script>
 </div>
  
  
 </div><!--end: forFlow -->
 </div><!--end: mainContent 主体内容容器-->
  
 <div id="sideBar">
 <div id="sideBarMain">
  
 <div id="calendar"><div id="blog-calendar" style="display:none"></div><script type="text/javascript">loadBlogDefaultCalendar();</script></div>
  
 <DIV id="leftcontentcontainer">
 <div id="blog-sidecolumn"></div><script type="text/javascript">loadBlogSideColumn();</script>
 </DIV>
  
 </div><!--end: sideBarMain -->
 </div><!--end: sideBar 侧边栏容器 -->
 <div class="clear"></div>
 </div><!--end: main -->
 <div class="clear"></div>
 <div id="footer">
  
 <!--done-->
 Copyright &copy;2019 Yuan先生
 </div><!--end: footer -->
 </div><!--end: home 自定义的最大容器 -->
  
 <!--PageEndHtml Block Begin-->
 <script language="javascript" type="text/javascript">
 //生成目录索引列表
 function GenerateContentList()
 {
 var jquery_h1_list = $('#cnblogs_post_body h1').not('.catListTitle').not('#blogTitle h1');//如果你的章节标题不是h4,只需要将这里的h4换掉即可
 if(jquery_h1_list.length>0)
 {
 var content = '<a name="_labelTop"></a>';
 content += '<div id="navCategory">';
 content += '<p style="font-size:25px;color:#EE1289;"><i>知识预览</i></p>';
 content += '<ul id="sortChapter">';
 for(var i =0;i<jquery_h1_list.length;i++)
 {
 var go_to_top = '<div style="text-align: right"><a href="#_labelTop">回到顶部</a><a name="_label' + i + '"></a></div>';
 $(jquery_h1_list[i]).before(go_to_top);
 var li_content = '<li><a href="#_label' + i + '"style="color: #003366;text-decoration:none;font-size:18px">' + $(jquery_h1_list[i]).text() + '</a></li>';
 content += li_content;
 }
 content += '</ul>';
 content += '</div>';
 if($('#cnblogs_post_body').length != 0 )
 {
 $($('#cnblogs_post_body')[0]).prepend(content);
 }
 }
 }
 GenerateContentList();
  
  
  
  
 $('#Header1_HeaderTitle').attr('href','https://i.cnblogs.com/EditArticles.aspx')
  
 </script>
 <!--PageEndHtml Block End-->
 </body>
 </html>
  

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

1

2

3

4

5

<meta http-equiv="Refresh" content="2;URL=https://www.baidu.com"//(注意后面的引号,分别在秒数的前面和网址的后面)

 

<meta http-equiv="content-Type" charset=UTF8">

 

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

 

 注意:X-UA-Compatible

 View Code

 非meta标签

    <title>oldboy</title>
    <link rel="icon" href="http://www.jd.com/favicon.ico">
    <link rel="stylesheet" href="css.css">
    <script src="hello.js"></script> 

body标签

一 基本标签(块级标签和内联标签

复制代码

<hn>: n的取值范围是1~6; 从大到小. 用来表示标题.

<p>: 段落标签. 包裹的内容被换行.并且也上下内容之间有一行空白.

<b> <strong>: 加粗标签.

<strike>: 为文字加上一条中线.

<em>: 文字变成斜体.

<sup>和<sub>: 上角标 和 下角表.

<br>:换行.

<hr>:水平线

<div><span>

复制代码

块级标签:<p><h1><table><ol><ul><form><div>

内联标签:<a><input><img><sub><sup><textarea><span>

block(块)元素的特点

 总是在新行上开始;
 宽度缺省是它的容器的100%,除非设定一个宽度。
 它可以容纳内联元素和其他块元素

inline元素的特点

和其他元素都在一行上;
宽度就是它的文字或图片的宽度,不可改变
内联元素只能容纳文本或者其他内联元素

特殊字符

      &lt; &gt;&quot;&copy;&reg;

二 图形标签: <img> 

复制代码

src: 要显示图片的路径.

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

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

width: 图片的宽

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

复制代码

三 超链接标签(锚标签)<a>

复制代码

href:要连接的资源路径 格式如下: href="http://www.baidu.com" 

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

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

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

复制代码

四 列表标签:

复制代码

<ul>: 无序列表

<ol>: 有序列表
         <li>:列表中的每一项.

<dl>  定义列表

         <dt> 列表标题
         <dd> 列表项

复制代码

五 表格标签: <table>

复制代码

border: 表格边框.

cellpadding: 内边距

cellspacing: 外边距.

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

<tr>: table row

         <th>: table head cell

         <td>: table data cell

rowspan:  单元格竖跨多少行

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

<th>: table header <tbody>(不常用): 为表格进行分区.

复制代码

六 表单标签<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"   

 name:    表单提交项的键.注意和id属性的区别:name属性是和服务器通信时使用的名称;而id属性是浏览器端使用的名称,该属性主要是为了方便客
          户端编程,而在css和javascript中使用的
 value:   表单提交项的值.对于不同的输入类型,value 属性的用法也不同:

1

2

3

4

5

type="button""reset""submit" - 定义按钮上的显示的文本

 

type="text""password""hidden" - 定义输入字段的初始值

 

type="checkbox""radio""image" - 定义与输入相关联的值  

 checked:  radio 和 checkbox 默认被选中

 readonly: 只读. text 和 password

 disabled: 对所用input都好使.

复制代码

上传文件注意两点:

 1 请求方式必须是post

 2 enctype="multipart/form-data"

 上传文件                 

          <select> 下拉选标签属性

复制代码

          name:表单提交项的键.

          size:选项个数

          multiple:multiple 

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

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

                 <optgroup>为每一项加上分组

复制代码

          <textarea> 文本域              

name:    表单提交项的键.

cols:    文本域默认有多少列

rows:    文本域默认有多少行

    <label>    

1

2

<label for="www">姓名</label>

<input id="www" type="text">

    <fieldset>

1

2

3

4

<fieldset>

    <legend>登录吧</legend>

    <input type="text">

</fieldset>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值