12个可能你没见过,但非常实用的 HTML 标签

abbd3582b83250e3594a9a94f0a4ef0b.gif

作者 | 零一

来源 | 前端印象

今天给大家推荐几个冷门但非常实用的 HTML 标签,不只是语义化,它们都有自己的应用场景和特殊自带功能。

一、center

让你实现水平居中,用这个标签就对了,标签名也非常得语义化

<center>零一</center>

效果如下:

9d074f17c290e9b9ef1e2a3d52948980.png
水平居中

原理也很简单,其实就是这个标签自带了 text-align: center 的样式

二、abbr

abbr 全称是 abbreviations,意思是缩写。应用场景也很简单,为一些文章中的缩写增加注释。

以前在文章中对于缩写的解释经常会这么做:

DAU(Daily Active User),日活跃用户数 ......

那我们用 abbr 标签呢?

<abbr title="Daily Active User">DAU
</abbr>
<span>,日活跃用户数 ......</span>

展示的效果如下:

7ed747ed6387ca23da35aa5b6188c1a7.gif

这个标签就可以把全称隐藏掉,弱化信息量,让真正不知道该缩写的用户主动去获取缩写的具体意思,这个在 markdown 里经常会出现

三、mark

<mark/> 在 markdown 中也是很常用的,用于将包裹的文本高亮展示

<mark>高亮文本</mark>

效果如下:

7bc1fa33b0e363e45cc12a3ce5da70ee.png

如果全文统一高亮样式,可以专门对 mark 标签进行样式重置,这样就不用对你用的每个 div 加一个 highlight 的类名了,又不语义化,又徒增文档大小

四、sup、sub

<sup/><sub/>分别表示上标和下标,在 markdown 中出现得也很频繁,比如数学公式和引用

<div>3<sup>[2]</sup></div>
<div>4<sub>2</sub></div>

效果如下:

4599af27742ed55d06e402583573a1b5.png

上标和下标的样式原理也比较简单,主要就是利用了 vertical-aligntopsub 属性值,然后将字号缩小,不过有现成的标签,干嘛不用呢?

五、figure

figure 是用于包裹其它标签的内容的,然后再利用另一个标签 figcaption ,可以对包裹的内容进行一个文本描述,例如:

<figure><img src="/media/cc0-images/elephant-660-480.jpg"alt="大象"><figcaption>这是一张大象的照片</figcaption>
</figure>

效果如下:

da6b5a7e9134d6a01ddc1abbc6c88f24.png

那要是图片挂了呢?

309db9c33077b9e30e704608da5d7843.png

再友好点处理,我们把 img 标签的 alt 属性去掉

268abb2a30dd8cfda0424fd9296cac36.png

漂亮,终于把我一直厌烦的图裂icon给干掉了,样式还巨好看

当然不止能包裹 img 标签,其它任何都是可以的

嘿嘿,给大家在本文来个实战👇,下面这个可以点击,样式也是利用了 figure 这个标签

82896e95e96d86a19ee398923cad1832.png

我是figure标签产生的

六、progress

说到 <progress/> 这个标签就很有意思了,去年有段时间我做的业务里涉及到了进度条,当时是前同事做的,然后有一些性能问题,我就在研究如何优化,减少进度条改变带来的性能问题。

虽然最后问题时解决了,但是也有幸收到了张鑫旭大佬的评论,他告诉我 progress 这个标签就足够了,既有语义化,又有进度条的功能,性能还好,兼容性也很不错。后来经过一番尝试,还真是,当时是我孤陋寡闻了,也安利给大家

<!-- 进度条最大值为100,当前进度为60,即60% -->
<progress max="100" value="60"/>

浏览器自带的样式就已经很好看了,效果如下:

7a0b33fc670f73869aefe753c7930d22.png

业务中我们也就可以通过控制 value 属性,来改变进度条的进度了

七、area

area 这个标签也非常有意思,它的作用是为图片提供点击热区,可以自己规定一张图的哪些区域可点击,且点击后跳转的链接,也可以设置成点击下载文件,我们来举个例子:

<img src="example.png" width="100" height="100" alt="" usemap="#map"><map name="map"><area shape="rect" coords="0,0,100,50" alt="baidu" href="https://www.baidu.com"><area shape="rect" coords="0,50,100,100" alt="sougou" href="https://www.sogou.com/"></map>

area 一般要搭配 map 标签一起使用,每个 area 标签表示一个热区,例如上面代码中,我们定义了两个热区,热区形状都为rect(矩形),他们的热区分别是:

  • 坐标 (0,0) 到 坐标 (100,50) 的一个矩形

  • 坐标 (0,50) 坐标 (100,100) 的一个矩形

我们都知道,默认的坐标轴是这样的:

70069bebc93dfca9a2cd23aa72e847b4.png

因此,我们划分的两个热区就是:

809d09d6c88ce97c9ec5568028e0d87a.png

最后再来看一下我们的实际效果:

8e175156d867a0c2ec8f93ee8da66852.gif

i

八、details

details 字面意思是 "详情",在markdown里也经常用,用该标签包裹了的内容默认会被隐藏,只留下一个简述的文字,我们点击以后才会展示详细的内容

<details><p>我是一段被隐藏的内容</p>
</details>

效果如下:

93572447cbe5265898f66d6a0e2de8b9.gif

这还没有加任何一行的 js 代码,我们点击后,details 标签上会多一个 open 的属性,被隐藏的内容就展示出来了

默认情况下,简要文字为 "详情",想要修改这个文字,要搭配 summary 标签来使用

<details><summary>点击查看更多</summary><p>我是一段被隐藏的内容</p>
</details>

就搞定了

47aa4add6a925200dc4189f26e725d8e.png

九、dialog

浏览器自带弹窗方法 alertconfirmprompt,样式固定且每个浏览器不同,同时还会阻塞页面运行,除了这个还提供了一个 dialog 标签,它的使用方式有点类似于现在各大组件库的 Modal 组件了,浏览器还为该标签提供了原生的 dom 方法:showModalclose,可以直接控制弹窗的展示和隐藏

<dialog id="dialog"><input type="text"><button id="close">ok</button>
</dialog>
<button id="openBtn">打开弹框</button><script>const dialog = document.getElementById('dialog')const openBtn = document.getElementById('openBtn')const closeBtn = document.getElementById('close')openBtn.addEventListener('click', () => {// 打开弹框dialog.showModal()})closeBtn.addEventListener('click', () => {// 隐藏弹框dialog.close()})
</script>

效果如下:

f1446a6928b3029a088369d9fe12b09c.gif

细心的你有没有发现,这原生的弹框还自带背景蒙层,点击是关闭不掉的,但起码它不会阻塞页面

然后我们在弹窗展示时,也可以通过 esc 键来关闭弹窗

十、datalist

datalist 是用于给输入框提供可选值的一个列表标签,类似咱们常用的 Select 组件

我可以用其实现一个 "输入联想" 的功能

<label> 输入C开头的英文单词:</label>
<input list="c_words"/><datalist id="c_words"><option value="China"><option value="Click"><option value="Close"><option value="Const"><option value="Count">
</datalist>

来试一试:

41040ad289b5d541c8f4ed2a72e832d8.gif

刚点击时会把所有推荐的选项都列出来,然后根据后面输入的内容,会过滤掉不匹配了的选项,比如我输入 cl,会过滤掉不是 cl 开头的单词,最后只剩下 ClickClose

最后我发现,他这个下拉框有点好看啊?为啥这原生的 input 框默认样式那么丑,啥时候改改

十一、fieldset

fieldset 标签是用于分组管理 form 表单内的元素的,若 fieldset 设置了 disabled 属性,则被其包裹的所有表单元素都会被禁用置灰,且不会随着表单一起提交上去,是的就成了摆设

什么意思呢?看个例子:

<form action="/example"><fieldset disabled><legend>被禁用区域</legend><label>ID:</label><input type="text" name="id" value="1"><label>邮箱:</label><input type="text" name="email" value="1234567@163.com"></fieldset><label>名字:</label><input type="text" name="name"><button type="submit">提交</button>
</form>

这里我们把 ID邮箱 的表单包裹了起来,且设置了 disabled,只开放了一个 name 的输入控件,此时界面如下:

fca72fae43ad6a0f23dca558baf1357c.png

可以看到除了 name 输入框,其它的两个输入框都被禁用了,此时点提交会是什么样子呢?

6a71769b411a8361425d1a5362658bcc.png

嗯,只提交了 name 字段

十二、noscript

这个标签是在浏览器不支持或禁用了 javascript 时才展示的,大多用于对 js 强依赖的应用,比如现在大部分的 SPA 页面,一旦不支持 javascript,页面基本上什么内容都没了,此时可以靠这个标签做友好提示

一般我们不需要特地去使用,大多都是在打包过程中自动插入到 html 静态文件里去了的,例如:

// init.js
const root = document.getElementById('root')
const button = document.createElement('button')
button.innerText = '点击出弹窗'
root.appendChild(button)
<!-- index.html -->
<script defer src="./init.js"></script><noscript>不好意思,你的浏览器不支持或禁用了 JavaScript,请更换浏览器或启用 JavaScript
</noscript><div id="root"></div>

未禁用 javascript 时,页面时这样的:

0fef1b0af9beff7257aa522126057b2b.png

禁用了 javascript 时,是这样的:

9f5cedce238e58a5b0ba380a7a336115.png

最后

希望本文对你有所帮助,若有错误,欢迎指正,若你有更多有意思的想法,欢迎评论区讨论!

685708d19febbededee61cd77324d9c5.gif

往期推荐

如果让你来设计网络

Docker:从入门到实战过程全记录

没有操作系统程序可以运行起来吗?

如何在 Kubernetes Pod 内进行网络抓包

6454ec15c018ae9c9acacf470508f4e3.gif

点分享

779e62c6870934a7294e373ca16b3b10.gif

点收藏

c41a61d79d4b494bcde6eacf31834612.gif

点点赞

7f9f18aedc8dedc5b6f25b1c5116e95b.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双11特刊 | 全面云原生化,数据库实例独共享混部 最高降低30%成本

简介&#xff1a;2021年双十一是阿里巴巴集团的核心应用全面云化的第二年。今年在保证稳定性的前提下&#xff0c;主要探索如何利用云原生的技术优势&#xff0c;降低成本&#xff0c;提升资源利用率。在今年大促中&#xff0c;针对核心集群采用独享共享实例混部&#xff0c;统…

python复制列表元素_Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解...

Python学习教程&#xff1a;Python列表赋值&#xff0c;复制&#xff0c;深拷贝及5种浅拷贝详解概述在列表复制这个问题&#xff0c;看似简单的复制却有着许多的学问&#xff0c;尤其是对新手来说&#xff0c;理所当然的事情却并不如意&#xff0c;比如列表的赋值、复制、浅拷贝…

IPv6时代,中小企业该如何布局?

简介&#xff1a;IPv6要为全世界的每一粒沙子都分配一个IP&#xff0c;你的企业跟上了吗&#xff1f; 11月中旬&#xff0c;中央网信办等部门联合印发了《关于开展IPv6技术创新和融合应用试点工作的通知》&#xff0c;联合组织开展IPv6技术创新和融合应用试点工作&#xff0c;…

Gartner 发布新兴技术研究:深入洞悉元宇宙

供稿 | Gartner出品 | CSDN云计算根据Gartner预测&#xff0c;2026年全球30%的企业机构将拥有元宇宙产品和服务。元宇宙是一个由独立但相互连接的网络所组成的持久、沉浸式数字环境&#xff0c;但目前尚未确定这些网络将使用的通信协议。元宇宙能够实现持久、去中心化、可互操作…

android init.d脚本,◇添加init.d脚本支持教程贴◇

☆修改系统有风险&#xff0c;本人不承担任何后果&#xff01;&#xff01;☆【安卓2.3及以上系统通用】研究了好长时间终于找到了自己手动添加的方法,一种方法就是厨房,但没有boot.img是无法添加内核支持&#xff0c;第二种方法就是软件添加,然后再让它开机自动运行.经过我的研…

并发场景下的幂等问题——分布式锁详解

简介&#xff1a;本文从钉钉实人认证场景的一例数据重复问题出发&#xff0c;分析了其原因是因为并发导致幂等失效&#xff0c;引出幂等的概念。针对并发场景下的幂等问题&#xff0c;提出了一种实现幂等可行的方法论&#xff0c;结合通讯录加人业务场景对数据库幂等问题进行了…

前端vue里面点击加载更多_vue 原生添加滚动加载更多

vue中添加滚动加载更多&#xff0c;因为是单页面所以需要在跳出页面时候销毁滚动&#xff0c;要不会出现错乱。我们在mounted建立滚动&#xff0c;destroyed销毁滚动。mounted () {window.addEventListener(scroll, this.handleScroll)},destroyed () {window.removeEventListe…

双11特刊|十年磨一剑,云原生多模数据库Lindorm 2021双11总结

前言 2021 年&#xff0c;转眼 Lindorm 已经在阿里发展了十年的时间&#xff0c;从基于 HBase 深度改造的 Lindorm 1.0 版本&#xff0c;到全面重构&#xff0c;架构大幅升级的 Lindorm 2.0 版本&#xff1b;从单一的宽表引擎&#xff0c;到支持搜索、时序、文件等多种结构化数…

怎么样升级成为鸿蒙系统,手机升级成为鸿蒙系统第一手体验怎么样?-电脑自学网...

自从华为鸿蒙系统上线以来&#xff0c;除了6月2日发布会爆料出鸿蒙细节、功能之外&#xff0c;还给部分华为手机提供了鸿蒙系统的升级包。不知道大家有没有升级&#xff1f;其实很多小伙伴处于观望状态&#xff0c;因为新系统的缺点不可避免&#xff0c;升级了系统就再也回不去…

换个姿势看 hooks,灵感来源组合和 HOC 模式下逻辑视图分离新创意

作者 | &#x1f47d;来源 | 前端Sharing前言懂得 JSX 本质的同学都知道它只不过是一种语法糖&#xff0c;会被 babel 处理成 createElement 的形式&#xff0c;最后再变成常规的 js 对象。所以&#xff0c;我们就可以在 js 逻辑层面对 element 对象做处理&#xff0c;自定义 …

双11特刊 | 云数据库RDS如何顺滑应对流量洪峰

简介&#xff1a;从绿色低碳到硬核科技&#xff0c;看RDS如何用绿色科技助力2021“双11”&#xff1f; 双十一回顾 从平台到商家&#xff0c;再从物流到客户手中&#xff0c;云数据库RDS支撑着双11集团电商的在线业务。RDS首次对集团核心业务进行国产化技术演进试点&#xff…

python交叉编译的配置 脚本怎么写_如何写一个简单的脚本并配置

什么是脚本&#xff1a;脚本就是一个给计算机照着做的东西cd ~/desktop 回到桌面mkdir demo 创建一个demo的文件夹cd demo 进入demo这一系列命令的组合就是脚本&#xff0c;当我们运行脚本的时候&#xff0c;计算机就会按着我们输入的命令一步一步操作。找一个安全的目录下&…

双11专刊|云原生数据仓库AnalyticDB支撑双11,大幅提升分析实时性和用户体验

简介&#xff1a;2021年双十一刚刚落幕&#xff0c;已连续多年稳定支持双十一大促的云原生数据仓库AnalyticDB&#xff0c;今年双十一期间仍然一如既往的稳定。除了稳定顺滑的基本盘之外&#xff0c;AnalyticDB还有什么亮点呢&#xff1f;下面我们来一一揭秘。 一 前言 2021年…

html传输的数值表示的含义,数字传递游戏的意义与感悟_传数字游戏心得体会

在大学生入职培训期间&#xff0c;曾组织他们做了一场小游戏&#xff0c;游戏规则如下&#xff1a;1、80名学生平均分成8组&#xff0c;排成8列&#xff0c;统一面向讲台做好&#xff1b;2、主持人向每组的最后一名队员提供一个数字(数字一般为3位或4位数&#xff0c;不确定&am…

德勤2022技术趋势:IT自我颠覆、技术跨界融合创新

作者 | 宋慧 出品 | CSDN云计算 IT 技术&#xff0c;一直处于快速发展与变化中。 基于对前沿技术的观察分析与自身实践&#xff0c;国际机构德勤管理咨询每年发布对于未来 18-24 个月的的重要技术趋势。2021 年 CSDN 曾报道 德勤2021技术趋势&#xff1a;繁琐、点状的匠人AI时…

ios yarn 如何配置_vuejs axios安装配置与使用

1.安装服务npm install --save axios vue-axios2.在main.jsimport axios from axiosimport VueAxios from vue-axiosVue.use(VueAxios, axios)Vue.prototype.$http axios3.可以配置axios 域名前缀新建一个config文件|-- config.jsimport Env from ./env;let config {env: Env…

双11特刊|购物车实时显示到手价,看云原生内存数据库Tair如何提升用户体验?

阿里云自研内存数据库Tair诞生于2009年&#xff0c;是一种支持高并发低延迟访问的云原生内存数据库&#xff0c;完全兼容Redis&#xff0c;已历经多年双11大促考验&#xff0c;提供核心在线访问加速能力&#xff0c;显著提升系统吞吐量。 作为双11大促承载流量洪峰的利器&…

Dubbo-Admin 正式支持 3.0 服务治理

简介&#xff1a;Dubbo 相信大家并不陌生&#xff0c;是一款微服务开发框架&#xff0c;它提供了 RPC 通信与微服务治理两大关键能力。大家在日常开发中更多使用的是 Dubbo 提供的 RPC 通信这一部分能力&#xff0c;而对其提供的服务治理的能力使用相对少一些&#xff0c;本文的…

vue将文本渲染html,vue2.0 之文本渲染-v-html、v-text

vue2.0 之文本渲染-v-html、v-text1、index.html代码vuedemo2、main.js代码import Vue from ‘vue‘import App from ‘./App‘Vue.config.productionTip false/* eslint-disable no-new */new Vue({el: ‘#app‘,render: h > h(App)})render: h > h(App)是ES6的语法&am…

ajax post 没有返回_Ajax异步技术之三:jQuery中的ajax学习

jQuery中的Ajax学习&#xff1a;jQuery是js的一个轻量型框架&#xff0c;已经将js创建的操作进行了封装&#xff0c;而ajax也是js的一部分&#xff0c;所以jQuery也已经将ajax进行了封装。封装&#xff1a;$.get(url,data,fn) url:请求地址data:请求参数&#xff0c;参数格式为…