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;统…

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

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

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

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

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

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

双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…

双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时…

双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…

如何成为真正的数字化企业,锐捷网络发布数字原力觉醒计划

编辑 | 宋慧 出品 | CSDN 云计算 什么样的企业可称为数字化企业&#xff1f; 因为疫情等各类不确定因素&#xff0c;数字化的浪潮正深刻改变着企业。所有企业都需考虑转型、创新、增长&#xff0c;这三个问题。深耕中国企业级市场多年的IT技术厂商锐捷网络&#xff0c;以“点线…

2021中国数字服务大会 | 阿里云混合云新一代运维演进与实践

简介&#xff1a;12月3日&#xff0c;2021中国数字服务大会顺利召开&#xff0c;大会以“数字服务、跨界融合、协同创新”为主题&#xff0c;邀请产学研界嘉宾&#xff0c;举办行业与学术论坛&#xff0c;共话数字服务的挑战和机遇。阿里云作为云厂商代表应邀参会&#xff0c;并…

冲压模板自动标注LISP_干货满满!超实用冲压模具资料,加薪必看!

一般的冲压模具都是由&#xff1a;上下托板、上下垫脚、上下模座&#xff1a;一般用A3、Q235等“软料”做成&#xff0c;起支撑整个模具、方便架模、落料等作用。上、下模板&#xff1a;上、下模板起固定刀口、入块、入子、顶料销等作用&#xff0c;外定位、内定位、浮升引导销…

安谋科技四周年献礼,提前完成五年规划目标

自2018年4月正式独立运营以来&#xff0c;安谋科技一直以服务中国的科技产业、建设中国本土的研发能力、赋能中国本土半导体生态为核心使命。值此公司成立四周年之际&#xff0c;安谋科技宣布已提前超额完成了合资公司落地深圳时设立的五年规划目标。 回顾四年来走过的历程&am…

开源微服务编排框架:Netflix Conductor

简介&#xff1a;本文主要介绍netflix conductor的基本概念和主要运行机制。 作者 | 夜阳 来源 | 阿里技术公众号 本文主要介绍netflix conductor的基本概念和主要运行机制。 一 简介 netflix conductor是基于JAVA语言编写的开源流程引擎&#xff0c;用于架构基于微服务的流…

直播回顾:如何对付臭名昭著的 IO 夯?诊断利器来了 | 龙蜥技术

简介&#xff1a;听到IO夯总是让人头疼&#xff0c;那有没有可以分析IO夯问题的利器&#xff1f; 编者按&#xff1a;sysAK&#xff08;system analyse kit&#xff09;&#xff0c;是龙蜥社区&#xff08;OpenAnolis&#xff09;系统运维 SIG 下面的一个开源项目&#xff0c;…