前端基础之html常用标签

前言

explore  what is the root of  web.web的本质是什么?

当互联网发展的不是很火热的时候,大家普遍使用的是C/S架构.例如我们下载的QQ、网易云乐音。

优势:可定制空间大,用户体验较好

劣势:需要额外下载客户端到你的设备(安全性)、客户端开发成功高、一旦添加新的新功能就需要客户端升级。(使用EF就是这种体验不断的更新客户端APP)

当浏览器发展比较成熟、普遍后出现了B/S架构。B指定是browser

优势:不需要开发客户端、用户设备只需要1个浏览器就ok

劣势:无法扩展更多的新功能

html是什么?

在B/S架构,server服务端和browser之间使用超文本传输(HTTP)协议进行交互。

HTTP协议规定了:

Browser应该怎么请求Server

Server应该使用什么数据格式到Browser

Browser应该怎么渲染.html文件

传输过程

经过TCP三次握手建立1个TCP连接,开始http

browser向server发起 post/get/put...请求

服务端响应浏览器的请求,发送html格式的网页代码给浏览器;

客户端的浏览器接受到html网页代码后,渲染出效果给用户看。

browser端和server端通过socket,循环这个请求和响应的过程,以此建立服务端于用户之间的交互;

browser和server之间的http传输结束,经过四次挥手结束下面TCP连接。

超文本标记语言(Hypertext Markup Language,HTML)通过标签语言来标记要显示的网页中的各个部分。一套规则,浏览器认识的规则。

ps:所以HTML不是编程语言,只是按照规定的格式描述你想要描述的内容,只有数据,没有算法逻辑。

当browser接收服务端发送来的html之后,

会按照从左到右 从上到下的 顺序渲染网页文件,然后根据标记符解释和显示内容。但需要注意的是,对于不同的浏览器,对同一标签可能会有不完全相同的解释(这就是browser兼容性问题),网页文件以.html 或 .htm结尾。

所以我们学习的前端内容:都是围绕着使用 html/CSS/js写一个漂亮的网页,当用户的浏览器 请求时我们时,响应这个漂亮的页面给用户的浏览器,再由浏览器渲染出效果呈现给用户;

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func homepage(response http.ResponseWriter, request *http.Request)  {
	data,err:=ioutil.ReadFile("./templates/homepage.html")
	if err != nil {
		fmt.Printf("Do not find such file:%s","./templates/homepage.html")
		return
	}
	number,err:=response.Write(data)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println("发送数据",number)

	
}

func main() {
	http.HandleFunc("/",homepage)
	//启动服务
	err:=http.ListenAndServe("127.0.0.1:8888",nil)
	if err != nil {
		fmt.Printf("请检查address是否合法?:",err)
		return
	}

}

  

html结构

<!DOCTYPE html>
<html lang="en">
<head>
    <!--字符编码  -->
    <meta charset="UTF-8">
    <!-- 标题-->
    <title>Title</title>
</head>
<body>

</body>
</html>
  • <!DOCTYPE html> 声明该html页面,使用的编写规范;
  • <html></html>是文档的开始标记和结束标记。此元素告诉浏览器其自身是一个 HTML 文档,在它们之间是文档的头部<head>和主体<body>。
  • <head></head>元素出现在文档的开头部分。<head>与</head>之间的内容不会在浏览器的文档窗口显示,但是其间的元素有特殊重要的意义。
  • <title></title>定义网页标题,在浏览器标题栏显示。 
  • <body></body>之间的文本是可见的网页主体内容

html标签的格式

标签的语法:

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

<标签名 属性1=“属性值1” 属性2=“属性值2”…… />

html的基本标签 

HTML标签根据其在浏览器中显示的特征分为:

块级标签:独占一行

内联标签:根据内容大小而定

div标签:没有任何标记效果,是一张白纸。

<!DOCTYPE>标签

<!DOCTYPE> 此标签可告知浏览器 该HTML文档使用哪种 HTML 或 XHTML 规范

作用:声明文档的解析类型(document.compatMode),避免浏览器的怪异模式。

document.compatMode:

  1. BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。
  2. CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。

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

 

<head>标签

用于描述和网页相关的源数据信息

<meta>标签

META标签用来描述一个HTML网页文档的属性,例如作者、日期和时间、网页描述、关键词、页面刷新等。 

<head>
    <!--字符编码-->
    <meta charset="UTF-8">
    <!--浏览器标签页显示的标题-->
    <title>IT运维平台</title>
    <!--刷新当前网页, 2秒钟之后跳转到https://www.cnblogs.com/sss4/p/6863361.html -->
   <!--<meta http-equiv="refresh" content="2;URL=https://www.cnblogs.com/sss4/p/6863361.html"> -->
    <!--兼容IE浏览器-->
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <!--在移动端打开以屏幕大小打开 -->
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1">
    <!--搜素引擎SEO关键词优化 -->
    <meta name="keywords" content="python,golang,html,css,javescript,上门,服务">
    <!--在搜素引擎排名之后的描述信息 -->
    <meta name="description" content="我来自........我擅长。。。。。。。">


</head>
meta标签
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
手机端网页

<body>标签

描述网页真正要渲染的内容

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

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

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

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

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

<em>: 文字变成斜体.

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

<br>:换行.

<hr>:水平线

特殊字符:
      &lt; &gt;&quot;&copy;&reg;

'''
复制代码

 

<div>和<span>

<div></div> : <div>只是一个块级元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现. 
<span></span>: <span>表示了内联行(行内元素),并无实际的意义,主要通过CSS样式为其赋予不同的表现.

块级元素与行内元素的区别
所谓块元素,是以另起一行开始渲染的元素,行内元素则不需另起一行。如果单独在网页中插入这两个元素,不会对页面产生任何的影响。
这两个元素是专门为定义CSS样式而生的。

图形标签: <img> 

复制代码
'''
src: 要显示图片的路径.

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

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

 图片的宽

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

'''
复制代码

超链接标签(锚标签): <a> </a> 该标签可以发生 get请求到服务端,很重要

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

<a href="" target="_blank" >click</a>

href属性指定目标网页地址。该地址可以有几种类型:

    绝对 URL - 指向另一个站点(比如 href="http://www.jd.com)
    相对 URL - 指当前站点中确切的路径(href="index.htm")
    锚 URL - 指向页面中的锚(href="#top")

'''
复制代码

列表标签

复制代码
'''
<ul>: 无序列表 [type属性:disc(实心圆点)(默认)、circle(空心圆圈)、square(实心方块)]

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

<dl>  定义列表

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

'''
复制代码

表格标签: <table>

表格概念
表格是一个二维数据空间,一个表格由若干行组成,一个行又有若干单元格组成,单元格里可以包含文字、列表、图案、表单、数字符号、预置文本和其它的表格等内容。
表格最重要的目的是显示表格类数据。表格类数据是指最适合组织为表格格式(即按行和列组织)的数据。
表格的基本结构:

复制代码
<table>
         <tr>
                <td>标题</td>
                <td>标题</td>
         </tr>
         
         <tr>
                <td>内容</td>
                <td>内容</td>
         </tr>
</table>
复制代码

属性:

复制代码
'''

<tr>: table row

<th>: table head cell

<td>: table data cell


属性:

    border: 表格边框.

    cellpadding: 内边距

    cellspacing: 外边距.

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

    rowspan:  单元格竖跨多少行

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

'''
复制代码

练习:

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------

表单标签 <form>

用于在前端 引导用户输入数据,把收集的数据组织成字典形式,传输到服务端。

表单标签内可以嵌套的标签:input系列标签,。

from标签属性:

<form    action="发送服务的路径  " method="post" 请求的方式>    

<input   type(属性)=‘text’ > (input  是  自闭合标签   ) (<form>(开始标签)+</form>(结束标签)=闭合标签) 

</form>

1、from之input 输入框标签: 

name属性是键; 输入内容是与之对应的值;

nane属性必须定义,注意checkbox类型;必须手动设置value属性;radio类型:必须共用1个name键;

发往服务端的数据类型:name:key, checkbox类型的input:name:[key1,key2,key3]

input标签系列的类型:

test类型:文本输入框

passwd类型:密码输入框

checkbox类型:多选框

radio类型:互斥框(只能选择1个value)

--------提交表单-------------------------

button类型: 一般配合js使用

submit类型:注意表单提交类型的input标签里面的value属性设置的是 提交按钮显示的字,而其他类型设置的是 键中的值

 

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>张根</title>
</head>
<body>

<form>
    <p>请输入用户名:<input type="text" name="username" ></p>
    <p>请输入密码:<input type="password" name="passwd" ></p>
    <p>文学:<input type="checkbox" name="爱好" value="somking"> 历史<input type="checkbox" value="fuck"></in></p>

    <p>性别 男 <input type="radio" name="sex"><input type="radio" name="sex"> 其他 <input type="radio" name="sex"> </p>
    <p><input type="submit" value="sub"> </p>
     <p><input type="button" value="button"> </p>
</form>
</body>
</html>
View Code

2、from之select 下拉框标签 

select特性:

select下拉框标签由 select标签+option标签+optgroup组成,select里面设置name键,option里面设置value值; 

select标签的属性:

name:设置键值对的键

size:默认选择个数

multiple:multiple 设置同时多选

option标签属性:

value属性:设置键值对的值

selected属性:设置这个下拉框 默认选中的选项

optgroup标签属性:

把多个option组织到1组,label="组名”

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>张根</title>
 6 </head>
 7 <body>
 8 <from>
 9     <select name="china" >
10         <optgroup label="唐县.齐家佐乡"></optgroup>
11         <option value="hb">管家佐村</option>
12         <option value="hn">齐家佐村</option>
13         <option value="zj">马家峪村</option>
14 
15 
16     </select>
View Code

3、from之textarea标签:多行文本输入框

name属性:键

rows:控制文本输入框占的行数

cols:控制文本输入框占的列数

<from>
    <select name="china" >
        <optgroup label="唐县.齐家佐乡"></optgroup>
        <option value="hb">管家佐村</option>
        <option value="hn">齐家佐村</option>
        <option value="zj">马家峪村</option>
    </select>

    <textarea name="jianjie" rows="4" cols="30">
     伟
     人
     故
     乡
 </textarea>
</from>
View Code

4、from之label>标签

用来和input标绑定,绑定后,点击输入框的范围里 其他区域 也可以输入内容了,让用户体验更好点。

说明:
1、 label 元素不会向用户呈现任何特殊效果。
2、<label> 标签的 for 属性值应当与相关元素的 id 属性值相同。

5、from之fieldset标签

用来和input标绑定,绑定后,把输入框 围起来。

'''

<fieldset>
    <legend>登录吧</legend>
    <input type="text">
</fieldset>

'''
View Code

6、susubmi和botton的区别

submit 默认有提交表单的功能

botton:(按钮)需要绑定事件

原文地址:https://www.cnblogs.com/sss4/p/6863361.html