写点什么

前端开发者们值得了解的 11 项前端技巧

  • 2020-10-24
  • 本文字数:2175 字

    阅读完需:约 7 分钟

前端开发者们值得了解的 11 项前端技巧

不容错过的 11 项 HTML/JS/CSS 技巧。


通过以下 HTML/CSS/JavaScript 相关技巧,希望能帮助大家填补一点点关于前端开发方面的知识空白。

1.Datalist

元素这项 HTML 元素的使用频率极低,今天我们就要为它正名!


< datalist>标签用于为< input>元素提供一项“自动补全”功能。在键入过程中,您会看到如下图所示的预定义下拉菜单及选项。



示例:


<input**list="animals"**name="animal" id="animal"><datalist**id="animals"**><option value="Cat"><option value="Dog"><option value="Chicken"><option value="Cow"><option value="Pig"></datalist>
复制代码


列出的属性(参见上方粗体)必须等于的 id,因为需要将二者捆绑使用。

2. 带有复选框的可点击标签

如果大家希望使用带有复选框的可点击标签,最常见的作法可能是将 label 元素与“for”属性结合使用,详见以下代码。


<input type="checkbox" name="checkbox" id="checkbox_id" value="value"><label for="checkbox_id">I agree</label>
复制代码


实际上,您完全可以将 label 元素直接放在复选框旁边以达成相同的效果。这样,我们就能点击“I agree”并轻松选中该复选框!


示例:


<label><input type="checkbox" name="checkbox" id="checkbox_id" value="value"></label>
复制代码

3. 子选择器

这可能是本份清单中知名度最高的技巧了,但大多数朋友并没有意识到它的强大力量。


子选择器用于匹配某一指定元素的全部子元素。它能够给出两项元素之间的关系。


示例:


/* 1st <li> element */li:first-child{    color: red;}
/* Last <li> element */li:last-child{ color: green;}
// Select All <li> elements but The First Three */li:nth-child(n+4) { color: yellow;}
/* Select only the first 3 <li>elemets*/li:nth-child(-n+3) { color: green;}
/* Styles are elements that are not a <p> */.my-class:not(p) { display: none;}
复制代码

4. 写作模式

写作模式是一项鲜为人知,但却极为强大的 CSS 属性。


您可以借此让文本以垂直形式排列:



垂直文本


完成此操作的代码非常简单。


writing-mode: vertical-rl;
复制代码


完整示例:


<style>.sideway {    writing-mode: vertical-rl;}.normal {    width: 5%;    float: left;}</style><p class="normal">    Hi some paragraph text</p><p class="sideway">    Hey I'm somesidwaytext</p>
复制代码


其中 writing-mode 属性还包含五个具体选项。


writing-mode: horizontal-tb;writing-mode: vertical-rl;writing-mode: vertical-lr;writing-mode: sideways-rl;writing-mode: sideways-lr;
复制代码

5.calc() 函数

calc()CSS 函数允许您在指定 CSS 属性值的前提下执行计算。


大家在 calc() 中用得最多的功能,应该就是混合单位了,例如将百分比与像素相混合。这项任务无法由预处理器完成,只能在渲染过程中执行。


示例:


width:calc(5px + 100px);width:calc(6em * 8);width:calc(100% - 50px);
复制代码

6.Math.round 与 Math.floor 备选项

这项技巧虽然有点难度,但效果也相当出色。


Math.floor() 您可以使用 0|:


**0|**743.4343 // returns 743Math.floor(743.4343) // returns 743
复制代码


Math.round() 您可以使用 +.5|0:


812.777**+.5|0**// returns 813Math.round(812.777) // returns 813
复制代码

7.Console.table

不少朋友可能已经听说并使用过 console.log(),但对于 console.table() 恐怕还比较陌生。它的作用是接收一个数组或者一个对象,从而以非常整洁的方式在控制台视图内显示一份表格!


数组示例:


let car1 ={ name: "Audi", model : "A4" }let car2 = { name : "Volvo", model : "XC90" }let car3 = { name : "Ford", model : "Fusion" }console.table([car1, car2, car3]);
复制代码



console.table()

8.Console.time

另一项非常实用的控制台方法。console.time() 会启动一个计时器,以参数作为标签,而后使用具有相同标签名称的 console.timeEnd(),使控制台以毫秒为单位输出以 console.time() 及 console.timeEnd() 调用为起点的时间。



console.time()


示例:


// Starts the timerconsole.time("MyTimer");// Ends the timer and outputs the time in millisecondsconsole.timeEnd("MyTimer");
复制代码

9. In 操作符

“In”操作符能够检查数组中是否存在索引,并返回 true 或 false 结果。


示例:


let cars = ['Audi', 'BMW', 'Mini', 'Bentley', 'Porsche'];0 in cars // returns true3 in cars // returns true6 in cars // returns false
复制代码


您也可以借此检查对象中是否存在某项属性。


示例:


constperson ={firstName: "Dave", surname: "Smith", age: 34 };'firstName' in person // returns true'surname' in person // returns true'age' in person // returns true'gendar' in person // returns false
复制代码

10. 将 Chrome 作为文本编辑器

这是一项偶然的发现:如果大家在 Chrome 浏览器的网址栏中输入以下内容,然后按下回车,浏览器就会变成记事本形式。


data:text/html, <html contenteditable>
复制代码

11. 在 if 代码块中,去掉多个语句之间的大括号

if (1 === 1)alert("Alert 1"), alert("Alert 2");
复制代码

总结

虽然这 11 项技巧未必都很实用,但至少也算是各具价值,而且大多没能在实际前端开发中得到重视。肯定还有更多重要技巧等待我们挖掘,期待听到大家的分享与推荐!


原文链接:


https://medium.com/javascript-in-plain-english/11-frontend-tricks-that-most-frontend-developers-dont-know-about-68dc48199ed6


2020-10-24 07:007099

评论 3 条评论

发布
用户头像
第 11 条,不要用。
2020-10-28 18:11
回复
用户头像
您完全可以将 label 元素直接放在复选框旁边以达成相同的效果 ==> 您完全可以将 label 元素包围复选框以达成相同的效果
2020-10-24 17:24
回复
哈哈哈
2020-10-28 09:11
回复
没有更多了
发现更多内容

Radio Silence for mac(简单好用的防火墙) v3.2版

Mac相关知识分享

Disruptor在撮合引擎的实践|得物技术

得物技术

Java Disruptor 高性能 技术分享 企业号2024年7月PK榜

数据库的连接、创建会话与模型

EquatorCoco

Python 数据库 sql

Spring的三种依赖注入的方式

不在线第一只蜗牛

Java spring 依赖注入

TouchDesigner Pro for mac(可视化原型渲染设计) v2023.11760版

Mac相关知识分享

视觉编程软件

半个月6次面试,终于进百度HR面了

王中阳Go

Go 百度 面试 面经

AI 驱动的数据中心变革与前景

GPU算力

mac冒险游戏:死亡细胞Dead Cells for mac 下载

你的猪会飞吗

mac下载 mac单机游戏

如何有效提升 API 接口的安全性?

左诗右码

后端

分享一次海量数据平滑迁移实战

京东零售技术

大数据 企业号2024年7月PK榜

SPL-404:如何彻底改变Solana上的NFT与DeFi

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

一文为你深度解析LLaMA2模型架构

华为云开发者联盟

人工智能 华为云 transformers 华为云开发者联盟 企业号2024年7月PK榜

智源十大行业高质量数据集开放申请,经验证可显著提升模型行业能力!

智源研究院

软件测试学习笔记丨JUnit5动态测试的生命周期

测试人

软件测试

测试人生 | 手工转测试开发成功秘籍揭秘:从裁员到入职18k+,收获4个Offer,道阻且长不怯步

测吧(北京)科技有限公司

测试

一图看懂华为云CodeArts API 7大特性,带你玩转一站式API

华为云开发者联盟

软件开发 API 华为云 华为云开发者联盟 企业号2024年7月PK榜

Premiere Pro 2023 for Mac(pr2023) v23.6中文版

Mac相关知识分享

视频编辑软件

数智化配补调:零售品牌增长新引擎

第七在线

堡垒机试用选哪家?可以试用多久?咨询电话多少?

行云管家

网络安全 堡垒机 堡垒机试用

Navicat Premium Essentials for Mac(数据库管理软件)

Mac相关知识分享

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

字节跳动数据平台

大数据 数据中台 数据治理 数据安全 数据研发

快手开源 I2V-Adapter,即插即用、轻量级模块让静态图像秒变动态视频

快手技术

鸿蒙应用实践:利用扣子API开发起床文案生成器

幂简集成

AI API

企业任务调度解决方案:Airflow vs TASKCTL深度剖析

敏捷调度TASKCTL

airflow ETL任务 任务调度 TASKCTL IT自动化运维

Mac海洋冒险游戏推荐:潜水员戴夫Dave The Diver 中文安装包

你的猪会飞吗

Mac游戏下载 Mac游戏推荐

一览 Anoma 上的有趣应用概念

TechubNews

原厂商是什么意思?云管平台原厂商有哪些企业?

行云管家

云计算 云管平台 原厂商

Llama-2 vs. Llama-3:利用微型基准测试(井字游戏)评估大模型

Baihai IDP

程序员 AI LLMs 大模型评估 企业号 7 月 PK 榜

油猴Safari浏览器插件:Tampermonkey for Mac 下载

你的猪会飞吗

mac软件下载 浏览器脚本插件

现代女性心理健康:数业智能心大陆解读应对策略

心大陆多智能体

人工智能 智能体 AI大模型 心理健康 数字心理

前端开发者们值得了解的 11 项前端技巧_架构_Daniel Anderson_InfoQ精选文章