前端之HTML

1010-1011 前端之html

浏览器

浏览器也是一个客户端

# 这是一个服务器,我们通过浏览器就可以访问的到服务器发送的"hello"
import socket
soc = socket.socket()
soc.bind(('127.0.0.1',8080))
soc.listen(5)
while True:
    conn,addr = soc.accept()
    data = conn.recv(1024)
    conn.send(b"HTTP//1.1 200 ok

")  # 必须要加上这一句,不然浏览器不认识
    conn.send(b"hello")
    conn.close()

浏览器不通过服务器也可以渲染文本

什么是HTML

HTML全称Hyper Text Markup Language,超文本标记语言,是一种描述性的标记语言。

  • 超文本:音频、视频、图片
  • 标记:<英文单词或者字母>称为标记,一个HTML页面都是由各种标记组成。

HTML的作用

负责描述文档语义的语言

编写html的规范

1、所有标记元素都要正确的嵌套,不能交叉嵌套,例如:<h1><a></a></h1>

2、所有标记都必须小写

3、所有标记都必须关闭

  • 双标签:<b></b>
  • 单标签:<img src="URL"/>

4、所有属性值必须加引号。eg:<h1 id="head"></h1>'

5、所有属性必须有值。eg:<a href="01.html" target="_blank">首页</a>

HTML结构

用pycharm新建一个HTML文件,文件会自动生成如下的一个HTML模板

<!DOCTYPE html>
<!--文档声明头,告诉浏览器它应该用什么版本的html去解析以下代码-->

<html lang="en">
<!--文档的开始标记和结束标记,lang="en"表示用英语或者其他国家的语言,在它们之间是文档的头部(head)和主体(body)-->
<head>
<!--定义了HTML文档的开头部分,不会再浏览器的文档窗口显示-->
    <meta charset="UTF-8">
    <!--HTML的编码格式-->
    <title>Title</title>
    <!--网页标题,在浏览器标题栏显示-->
</head>
<body>
<!--文本主体,他们之间的文本是可见的网页主题内容-->

</body>
</html>

常用标签

head内常用标签

基本标签

标签 意义
<title></title> 定义网页标题
<style></style> 定义内部样式表
<script></script> 定义JS代码或引入外部JS文件
<link/> 引入外部样式表文件
<meta/> 定义网页原信息

meta标签

<meta http-equiv="refresh" content="2;URL = https://www.cnblogs.com/yanjiayi098-001/">
<!--2秒过后跳到 https://www.cnblogs.com/yanjiayi098-001 网页-->

<meta name="keywords" content="meta总结,html meta,meta属性,meta跳转">
<!--对网页并没有什么影响,就是给网页关键字,便于搜索引擎机器人查找信息和分类信息用的-->

<meta name="description" content="老男孩教育Python学院">
<!--这个也没有什么影响,就是给网页一个描述,便于搜索引擎机器人查找信息和分类信息用的-->

<meta http-equiv="content-Type" charset=UTF8">
<!--指定文档的编码类型-->
                                             
<meta http-equiv="x-ua-compatible" content="IE = edge">
<!--告诉IE以最高级模式渲染文档-->

body内常用标签

1、加粗标签

<b></b>

2 、斜体标签

<i></i>

3、下划线标签

<u></u>

4、标题标签

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

5、换行标签

<br>换行</br>

6、水平线标签

<hr></hr>

7、段落标签

<p>段落</p>

8、图片标签(重点) -->其中的属性

<img src="C:/Users/Lenovo/Desktop/图片的路径" alt="图片未加载成功时的提示" title="鼠标悬浮时的提示信息">

9、链接标签(重点)

a标签又叫做超链接标签

所谓的超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序

<a href="网页地址" target="在哪个网页跳转"></a>

属性:href:指定目标网页地址;该地址可以有几种类型:
		绝对URL - 指向另一个站点(比如 href="http://www.jd.com)
		相对URL - 指当前站点中确切的路径(href="index.htm")
		锚URL - 指向页面中的锚(href="#top")
	 href="#b1"表示b1是id属性,#b1表示回到id属性为b1的这个位置;
 	 href="body内常用标签.html"表示会跳到body内常用标签.html这个网页;			 	  target="_blank"表示重新打开一个网页进行跳转;
 	 target="_self"表示就在当前网页进行跳转

eg:
<a href="https://www.cnblogs.com/yanjiayi098-001/" target="_blank">点我会跳转哦!</a>
<!--target="_blank"表示重新打开一个网页进行跳转-->

<a href="https://www.cnblogs.com/yanjiayi098-001/" target="_self">点我会跳转哦!</a>
<!--target="_self"表示就在当前网页进行跳转-->

<a href="https://www.cnblogs.com/yanjiayi098-001/">点我会跳转哦!</a>
<!--默认target="_self"-->

<a href="#b1">点我回到加粗</a>
<!--b1是id属性,#b1表示回到id属性为b1的这个位置,这个位置就是<b id = "b1">加粗</b> -->

<a href="body内常用标签.html">点我转到这个网页哦!</a>
<!--他会跳到 body内常用标签.html 网页-->

10、无序列表标签(重点)

<ul type="disc"></ul>

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

type属性:

  • type="disc"(实心圆点,默认值)
  • type="circle"(空心圆圈)
  • type="square"(实心方块)
  • type="none"(无样式)

11、有序列表标签(重点)

<ol type="1" start="3"></ol>

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

属性:type属性:1:数字列表,默认值;A:大写字母;a:小写字母;Ⅰ:大写罗马;i:小写罗马

​ start属性:start="3" 表示只能写数字,表示从第3个开始

12、标题列表标签

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

13、表格标签(重点)

<table>
	<thead>  <!--表头-->
    	<tr>  <!--行-->
        	<th>表内的标题</th>
        </tr>
    </thead>
    <tbody>  <!--表标题下的内容-->
    	<tr>
        	<td>数据</td>  <!--表内的内容-->
        </tr>
    </tbody>
</table>
属性:
在<table>中设置
	border:表格边距
	cellpadding:内边距
    cellspacing:外边距
    像素 百分比
在<td>中设置
	rowspan:单元格竖跨多少行(上下合并单元格)
	colspan:单元格横跨多少行(左右合并单元格)
   

特殊字符

html中特殊符号
空格:&nbsp;
>:&gt;
<:&lt;
&:&amp;
¥:&yen;
版权:&copy;
注册:&reg;

块级标签(div标签)和行内(内联)标签(span标签)

div标签:
<div>
    <!--块级标签,无意义,通过CSS样式为其赋予不同的表现-->
</div>


span标签:
<span>
    <!--内联标签,无意义,通过CSS样式为其赋予不同的表现-->
</span>

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

块级标签:另起一行开始渲染元素
内联标签:不需要另起一行
如果单独在网页中插入这两个元素,不会对页面产生任何的影响,他们是专门为定义CSS样式而生的

注意

1、块级标签可以嵌套内联标签或者某些块级标签

2、内联标签不能嵌套块级标签

3、p标签不能嵌套块级标签,也不能嵌套p标签

form表单(很重点)

form表单功能

  • 表单用于向服务器传输数据,从而实现用户与Web服务器的交互
  • 表单能够包含input系列标签,比如文本字段、复选框、单选框、提交按钮等
  • 表单还可以包含textarea、select、fieldset和label标签

form表单属性

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

表单元素

表单工作原理

访问者在浏览有表单的网页时,可填写必需的信息,然后按某个按钮提交。这些信息通过Internet传送到服务器上。
服务器上专门的程序对这些数据进行处理,如果有错误会返回错误信息,并要求纠正错误。当数据完整无误后,服务器反馈一个输入完成的信息。

input标签

<input/>元素会根据不同的type属性,变化为多种形态

  <form>
        姓名:<input value="呵呵" >小可爱<br>
        昵称:<input value="哈哈" readonly=""><br>
        名字:<input type="text" value="name" disabled=""><br>
        密码:<input type="password" value="pwd" size="50"><br>
        性别:<input type="radio" name="gender" value="male" checked="">男 
              <input type="radio" name="gender" value="female" >女<br>
        爱好:<input type="checkbox" name="love" value="sing">唱
              <input type="checkbox" name="love" value="jump">跳
              <input type="checkbox" name="love" value="rap">rap
    </form>
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" />

属性说明:

1)type="属性值"文本类型。属性值可以是:

  • text默认

  • password密码类型

  • radio单选按钮,名字相同的按钮作为一组进行单选(单选按钮,天生是不能互斥的,如果想互斥,必须要有相同的name属性。name就是“名字”。
    )。非常像以前的收音机,按下去一个按钮,其他的就抬起来了。所以叫做radio。

  • checkbox多选按钮,名字相同的按钮作为一组进行选择。

  • checked:将单选按钮或多选按钮默认处于选中状态。当<input>标签的type="radio"时,可以用这个属性。属性值也是checked,可以省略。

  • hidden隐藏框,在表单中包含不希望用户看见的信息

  • button普通按钮,结合js代码进行使用。

  • submit提交按钮,传送当前表单的数据给服务器或其他程序处理。这个按钮不需要写value自动就会有“提交”文字。这个按钮真的有提交功能。点击按钮后,这个表单就会被提交到form标签的action属性中指定的那个页面中去。

  • reset重置按钮,清空当前表单的内容,并设置为最初的默认值

  • image图片按钮,和提交按钮的功能完全一致,只不过图片按钮可以显示图片。

  • file文件选择框。
    提示:

    如果要限制上传文件的类型,需要配合JS来实现验证。

    对上传文件的安全检查:一是扩展名的检查,二是文件数据内容的检查。

2)value="内容":文本框里的默认内容(已经被填好了的)

3)size="50":表示文本框内可以显示五十个字符。一个英文或一个中文都算一个字符。
注意size属性值的单位不是像素哦

4)readonly:文本框只读,不能编辑。因为它的属性值也是readonly,所以属性值可以不写。
用了这个属性之后,在google浏览器中,光标点不进去;在IE浏览器中,光标可以点进去,但是文字不能编辑。

5)disabled:文本框只读,不能编辑,光标点不进去。属性值可以不写。

select标签(下拉标签)

<form>
    <select name="city" id="city">
        <option value="1">北京</option>
     <option value="2">上海</option>
     <option value="3">广州</option>
     <option value="4">深圳</option>
    </select>
</form>

属性说明:

  • multiple:布尔属性,设置后为多选,否则默认单选
  • disabled:禁用
  • selected:默认选中该项
  • value:定义提交时的选项值

label标签(非重点)

定义:<label> 标签为 input 元素定义标注(标记)。
说明:

  1. label 元素不会向用户呈现任何特殊效果。
  2. <label> 标签的 for 属性值应当与相关元素的 id 属性值相同。
<form action="">
  <label for="username">用户名</label>
  <input type="text" id="username" name="username">
    <!--与在<input/>前直接写用户名:作用一样-->
</form>

textarea多行文本框

<textarea name="memo" id="memo" cols="30" rows="10">默认内容</textarea>

属性说明:

  • name:名称
  • cols:列数
  • rows:行数

表单的语义化举例

我们在注册一个网站的信息的时候,有一部分是必填信息,有一部分是选填信息,这个时候可以利用表单的语义化。

<form>
    <fieldset>
    <legend>必填信息</legend>
    姓名:<input value="呵呵">逗比
    <br>
    昵称:<input value="哈哈哈说的就是你" readonly="">
    <br>
    名字:<input type="text" value="name" disabled="">
    <br>
    密码:<input type="password" value="pwd" size="50">
    <br>
    性别:<input type="radio" name="gender" value="male">男
          <input type="radio" name="gender" value="female">女
    邮箱:<input type="email" name="user_email">
         <!--type="email" name="user_email"在提交时会提醒你,必须要符合邮箱的规范-->   
    </fieldset>
    
    <fieldset>
    <legend>其他信息</legend>
    爱好:<input type="checkbox" name="love" value="eat">吃饭
          <input type="checkbox" name="love" value="sleep">睡觉
          <input type="checkbox" name="love" value="buy">买买买
    </fieldset>
</form>

HTML标签总结

1、块级标签:块级大多为结构性标记

  • 总是从新的一行开始
  • 高度、宽度都是可控的
  • 宽度没有设置时,默认为100%
  • 块级标签中可以嵌套行内标签和某些块级标签
  <h1>...</h1>  标题一级

  <h2>...</h2>  标题二级

  <h3>...</h3>  标题三级

  <h4>...</h4>  标题四级

  <h5>...</h5>  标题五级

  <h6>...</h6>  标题六级

  <hr>  水平分割线

  <p>...</p>  段落

  <ul>...</ul>  无序列表

  <ol>...</ol>  有序列表

  <dl>...</dl>  定义列表

  <table>...</table>  表格

  <form>...</form>  表单

  <div>...</div>

2、行内标签:行内大多为描述性标记

  • 和其他元素都在一行
  • 高度、宽度以及内边距都是不可控的
  • 宽高就是内容的高度,不可以改变
  • 行内标签只能嵌套行内标签,不能嵌套块级标签

==p标签不能嵌套块级标签,也不能嵌套p标签

<span>...</span>

  <a>...</a>  链接

  <br>  换行

  <b>...</b>  加粗

  <strong>...</strong>  加粗

  <img >  图片

  <i>...</i>  斜体

  <em>...</em>  斜体

  <del>...</del>  删除线

  <u>...</u>  下划线

  <input>...</input>  文本框

  <textarea>...</textarea>  多行文本

  <select>...</select>  下拉列表
原文地址:https://www.cnblogs.com/zhuangyl23/p/11656794.html