我知道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: centerimg.align: middle知道为什么firefox会改变属性值吗?火狐还有其他属性值变化吗?
这对代码有影响,例如
document.querySelectorAll("img[align=center]")它只在Firefox上失败,任何使用相同选择器的CSS都会失败;例如,img[align=center] { ... }。
可能相关:我可以在HTML标记中添加自定义属性吗?
发布于 2017-08-27 04:58:00
知道为什么firefox会改变属性值吗?
因为middle是在RFC 1866 (HTML 2.0)、HTML 3.2和HTML 4中定义的正确值,而不是center。align元素上的img属性从未将center作为可能的值,因为center历史上总是引用水平对齐(浮动),并且不能将图像浮动在线的中心。当时的其他实现,如IE,确实允许center作为一个可能的值,其含义与middle相同(参见Stefan的答案),因此我的猜测是,火狐在提供互操作的同时,仍然遵守标准,将值混在一起。
我不清楚Chrome为什么不这么做。在任何情况下,为了呈现的目的,它似乎都将center视为middle。但是,如果通过重写值Firefox破坏了属性选择器,我会认为这是一个缺陷(尽管他们可能不愿意修复,因为属性已经过时了)。
真正的问题是为什么MDN索赔 (唯一可能的值是left、right、justify和center )。当然,DOM二级规范包含对align属性的更精确的描述,尽管它没有列出可能的值,因为它们已经在HTML中列出了。
https://stackoverflow.com/questions/45901117
复制相似问题