简书地址:https://www.jianshu.com/p/03a23aa28a34

今天重新学习了一下HTML中标签的用法,补充并记录一下自己新学到的知识。

a中的href

href Contains a URL or a URL fragment that the hyperlink points to.

URLs are not restricted to Web (HTTP)-based documents, but can use any protocol supported by the browser. For example, file:ftp:, and mailto: work in most browsers.

href属性的值是URL,虽然我们一般用URL做基于http协议的网页的跳转,但它的写法上还有一些小细节。

<a href="http://www.qq.com">QQ1</a>
<a href="www.qq.com">QQ2</a>
<a href="//www.qq.com">QQ3</a>

上面是一个指向www.qq.com的a标签的三种写法,那么它们的效果有什么不一样呢?

第一条是最常规的方法,基于http协议,点击即可进入http://www.qq.com的页面。

第二条点击进去却不行了,显示文件不存在?



观察一下它打开的url发现是



也就是说浏览器把www.qq.com当成了当前目录下的文件打开了,而我的电脑上当前目录并不存在www.qq.com的文件,所以才会显示文件不存在。

打开第三个链接时出现了这个file文件的界面



观察一下打开的url



这是因为当href的url以//开头时,将使用当前页面的协议打开文件(因为根目录/不存在www.qq.com所以还是显示根目录的file文件)

当打开http-server后再试一下第三个链接



成功通过http://127.0.0.1:8083的http协议打开了//qq.com

再试一下第二个链接...

href还可以给url构造参数查询。

<a href="?name=hello">hello</a>

点击后会跳转到当前url后多了一个?name=hello的url并且生成了一个get请求

href还可以应用于JavaScript伪协议javascript:

 <a href="javasript:;">Click</a>

作用是生成一个什么事情也不做也没有请求产生的链接。(大雾

之所以不用href="#"是因为虽然它不会产生请求,但是会使页面跳动。不用href=""是因为他会生成get请求刷新页面。


##form标签
> The HTML element represents a document section that contains interactive controls for submitting information to a web server.

form标签主要是用来给服务器发送POST请求的,form里面至少需要一个submit才能发送请求。

form只支持发送POST和GET请求。如果没有更改method的话,它默认还是发送POST请求。

POST

form发送的POST请求中,Content-Type为x-www-form-urlencoded,它表示发送的POST请求的第四部分以键值对&相连的方式存储发送

username=123&password=asd
username=%E7%94%A8%E6%88%B7&password=%E5%AF%86%E7%A0%81

遇到中文后,会把汉字转为16位utf-8编码的3个字节每个字节间&相隔的方式存储。

GET

GET请求对于form来说无意义,当用form发送GET请求时,表单的内容将会作为查询参数发送GET请求。(可以给POST的action构造参数来发送查询参数请求)

submit和button的提交

一个form必须要有一个发送POST请求的按钮,主要的用法是下面三种

    <input type="submit" value="submit">
<button type="submit">submit</button>
<button>submit</button>

label

form中我们一般使用label搭配别标签使用以实现点击文子既可以激活。

    <input type="text" name="username" id="us">
<label for="us">用户</label>
<input type="checkbox" id="wm" name="fruit">
<label for="wm">西瓜</label>



这样点击用户即可开始输入,点击西瓜即可勾选。不过一般都是嵌套使用,节省了写id的烦恼

    <label>用户<input type="text" name="username"></label>
<label><input type="checkbox" name="fruit" value="wm">西瓜</label>

HTML 标签小细节的更多相关文章

  1. <P>标签小细节

    html标签对大小写不敏感. 注释:浏览器会自动地在段落的前后添加空行.(<p> 是块级元素) 提示:使用空的段落标记 <p></p> 去插入一个空行是个坏习惯.用 ...

  2. Oracle Sales Cloud:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段

    在上一篇 "管理沙盒(定制化)小细节1" 的随笔中,我们使用公式法在 "业务机会" 对象(单头)上建立了 "利润合计" 字段,并将它等于 & ...

  3. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

  4. Oracle Sales Cloud:报告和分析(BIEE)小细节1——创建双提示并建立关联(例如,部门和子部门提示)

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的客户商机管理系统,通过提供丰富的功能来帮助提高销售效率,更好地去了解客户,发现和追踪商机,为最终的销售成交 (d ...

  5. echarts的title和legend重合解决(各种小细节)

    一:关于title与legend重叠 1.重合样子 2.解决办法: legend:{ show: true, top:"6%",//与上方的距离 可百分比% 可像素px }, 3. ...

  6. react 移动端 兼容性问题和一些小细节

    react 移动端 兼容性问题和一些小细节 使用 ES6 的浏览器兼容性问题 react 对低版本的安卓webview 兼容性 iOS下 fixed与软键盘的问题 onClick 阻止冒泡 meta对 ...

  7. Oracle Sales Cloud:报告和分析(BIEE)小细节2——利用变量和过滤器传参(例如,根据提示展示不同部门的数据)

    在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联.那么,本篇随笔我们重点介绍利用建好的双提示进行传参. 在操作之前,我们来看一个报告和分析的具体需求: [1] 两个有关联的提示 ...

  8. php课程---Json格式规范需要注意的小细节

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...

  9. ASP.NET MVC 自定义路由中几个需要注意的小细节

    本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定 ...

随机推荐

  1. Java进阶(二十四)Java List集合add与set方法原理简介

    Java List集合add与set方法原理简介 add方法 add方法用于向集合列表中添加对象. 语法1 用于在列表的尾部插入指定元素.如果List集合对象由于调用add方法而发生更改,则返回 tr ...

  2. 【算法导论】B树

          一棵B树T是具有如下性质的有根树(设根为root): 1.每个节点x有一下域: (a)num,当前存储在节点x的关键字个数,关键字以非降序存放,因此key[i]<=key[i+1]& ...

  3. 敏捷测试(5)--基于story的敏捷基础知识

    基于story的敏捷基础知识----需求管理(二) (1)定期发布 定期发布上线,把整个项目划分为一个个迭代,每个迭代时间大小固定(基本固定),迭代结束时上线交付一次. (2)迭代规划 迭代规划相当于 ...

  4. Salesforce开发入门

    云计算风起云涌,已成势不可挡之势.公司好多项目都依托于云平台了,网络安全采用了zscaler,人力资源系统用的workday,我们case系统也用了salesforce,我自己也在用运行于Google ...

  5. 【65】Mybatis详解

    Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果.MyBatis能够 ...

  6. Unix/Linux中的fork函数

    fork函数介绍 一个现有进程可以调用fork函数创建一个新进程.该函数定义如下: #include <unistd.h> pid_t fork(void); // 返回:若成功则在子进程 ...

  7. droid invalidate和postinvalidate的区别

    Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...

  8. Material Design5.x动画实现解析篇一

    Material Design设计语言动画篇共推出六种类型的动画效果: 1.Touch feedback(触摸反馈) 2.Reveal effect(揭露效果) 3.Activity transiti ...

  9. XMPP系列(二)----用户注册和用户登录功能

    1.创建一个新工程 2.导入XMPP框架 最新的XMPP框架下载地址:https://github.com/robbiehanson/XMPPFramework 将XMPP的几个文件夹拖进工程中,需要 ...

  10. android 实现淘宝收益图的折线

    实现的效果我一会贴上,我先说下原理,我们知道要实现在canvas上画线,不就是要搞一个paint嘛,然后首先肯定要设置下paint的属性,那么画文字呢,不就是Textpaint吗, 对,就是这么简单, ...