我知道它img.align
已被弃用,甚至过时了……Firefox正在更改我的属性的值。特别是看例子
const img = document.querySelector("img");
console.log("img.align:", img.align);
<img src="http://www.gravatar.com/avatar" align="center" >
结果:
img.align: center
img.align: middle
知道为什么Firefox会更改属性的值吗?Firefox还有其他属性值更改吗?
这对类似的代码有影响
document.querySelectorAll("img[align=center]")
在Firefox上失败(仅),使用相同选择器的所有CSS也会失败;img[align=center] { ... }
, 例如。
可能相关:是否可以向HTML标签添加自定义属性?
知道为什么Firefox会更改属性的值吗?
因为middle
是RFC 1866(HTML 2.0),HTML 3.2和HTML 4(不是)中定义的正确值center
。在align
该属性上的img
元件从未center
作为一个可能的值,因为center
在历史上一直被称为水平对齐(浮动),并且不能在一个线的中心浮动的图像。当时的其他实现(例如IE)确实允许center
使用可能的值,其含义与含义相同middle
(请参阅Stefan的答案),因此我的猜测是Firefox在提供互操作性的同时仍通过对值进行别名来遵守标准。
对于我来说,目前尚不清楚为什么Chrome无法做到这一点。在任何情况下,似乎都将其center
视为middle
渲染目的。但是,如果通过重写值Firefox破坏了属性选择器,我会认为这是一个缺陷(尽管由于属性已过时,它们可能不愿修复)。
真正的问题是,为什么MDN索赔,唯一可能的值是left
,right
,justify
,和center
。在DOM Level 2规范,当然也包含了更准确的描述align
属性,尽管没有列出可能的值,因为他们是在HTML规范已经列出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句