内联 Style 简写属性的发现

简介: # 内联 Style 简写属性的发现 ## 开始 平时在使用内联样式简写属性的时候,可能没有考虑到浏览器解析的问题。问题不大,简写的好处是代码量少,但最近发现了一个有意思的内联简写属性的问题。 以下问题仅在内联样式里会出现,如果是通过 style 标签或 css 文件引入则不会有这样的问题。 ## 例子 ### background 设置一个元素的背景色为白色,

内联 Style 简写属性的发现

开始

平时在使用内联样式简写属性的时候,可能没有考虑到浏览器解析的问题。问题不大,简写的好处是代码量少,但最近发现了一个有意思的内联简写属性的问题。

以下问题仅在内联样式里会出现,如果是通过 style 标签或 css 文件引入则不会有这样的问题。

例子

background

设置一个元素的背景色为白色,比如这么写:

<div style="background: #fff;"></div>

你可能以为浏览器会这样输出:

<div style="background-color: #fff;"></div>

一下少了 6 个字节,而浏览器的真真实解析情况是:

screenshot.png

潜在的问题是:将会默认设置一些其他的属性到样式里,而通过 CSS 又很难恢复这种默认属性

验证

我们来验证一下这个问题:

使用属性简写的浏览器呈现:

Snip20161217_4.png

而非简写的呈现:

Snip20161217_5.png

上面例子里的 HTML 代码:

<div style="background: #fff;"></div>

那么:

$0.style.backgroundImage === '' // => false

而如果例子修改为:

<div style="background-color: #fff;"></div>

那么:

$0.style.backgroundImage === '' // => true

font 验证

另外一个例子是 font 属性,也会有这个问题:

Snip20161217_10.png

这个时候:

$0.style.fontWeight === ''  // => false

Snip20161217_11.png

结果:

$0.style.fontWeight === ''  // => true

结论

能看到通过 style 获取元素属性时会返回非预期结果,所以使用 CSS 处理这类样式,最好是只设置你需要的属性,尽量不要简写,除非你明确知道这个操作的结果

目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 运维
运维告警别乱飞了!AI智能报警案例解析
运维告警别乱飞了!AI智能报警案例解析
347 0
|
4月前
|
SQL
使用sql转换身份证15位-18位
使用sql转换身份证15位-18位
212 1
|
2月前
|
传感器 机器学习/深度学习 算法
基于PID优化和矢量控制装置的四旋翼无人机(Matlab&Simulink实现)
基于PID优化和矢量控制装置的四旋翼无人机(Matlab&Simulink实现)
214 0
|
4月前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
276 1
|
3月前
|
存储 持续交付 Docker
Docker:颠覆传统开发的轻量级容器革命
Docker:颠覆传统开发的轻量级容器革命
|
3月前
|
安全 机器人 数据安全/隐私保护
手机屏幕点击器,屏幕自动点击器,免费连点器(自动点击)【autojs】
完整UI界面:包含坐标录制、执行控制、参数设置等区域 坐标录制功能:实时捕捉屏幕点击位置并记录坐标
|
5月前
|
存储 人工智能 Unix
Linux常见指令汇总
最常见的就是 ll (为ls -l的省略)
196 0
|
分布式计算 NoSQL 大数据
阿里云大数据ACA及ACP复习题(11~20)
本人备考阿里云大数据考试时自行收集准备的题库,纯手工整理的,能够覆盖到今年7月份,应该是目前最新的,发成文章希望大家能一起学习,不要花冤枉钱去买题库背了,也希望大家能够顺利通关ACA和ACP考试。
|
JavaScript 前端开发 Linux
Vue.js + Electron 的跨平台桌面应用程序开发
本文介绍了 Vue.js 和 Electron 的基本特点和原理,并分析了它们在桌面应用程序开发中的优势和应用场景。在基于 Vue.js 和 Electron 的桌面应用程序开发实践中,本文详细介绍了项目的搭建和配置,包括环境的准备、项目的初始化和依赖的安装等步骤。然后,本文介绍了使用 Vue.js 进行界面设计和组件开发的方法,并提供了相关的示例代码和实现细节。接下来,本文探讨了 Electron 主进程和渲染进程的开发,包括窗口管理、文件系统访问和与底层系统交互等方面的内容。最后,本文对基于 Vue.js 和 Electron 的桌面应用程序开发做出了总结,并展望了未来的发展方向和应用前景
1177 2
|
域名解析 网络协议 关系型数据库
阿里云轻量服务器安装WordPress网站教程
阿里云轻量服务器安装WordPress网站教程,阿里云轻量应用服务器镜像可选WordPress应用,应用镜像可以自动安装WordPress程序及WP所依赖的Web安装环境,轻量服务器网来详细说下轻量服务器选择WordPress应用镜像创建成功后的操作流程使用方法:
948 0