为什么firefox改变了对齐=" center"对齐="中间"?

时间:2017-08-27 02:03:55

标签: html firefox

我知道img.aligndeprecated甚至是过时的,仍然...... Firefox正在改变我的属性值。特别参见示例



const img = document.querySelector("img");
console.log("img.align:", img.align);

<img src="http://www.gravatar.com/avatar" align="center" >
&#13;
&#13;
&#13;

结果:

  • chrome:img.align: center
  • firefox:img.align: middle

知道为什么firefox会更改属性的值吗?是否有其他属性值firefox更改?

这对像

这样的代码有影响
document.querySelectorAll("img[align=center]")

在Firefox(仅)上失败,因此任何使用相同选择器的CSS都会失败;例如img[align=center] { ... }

可能相关:Can I add custom attribute to HTML tag?

2 个答案:

答案 0 :(得分:3)

  

知道为什么firefox会更改属性的值吗?

因为middle RFC 1866 (HTML 2.0)HTML 3.2HTML 4中定义的正确值,而不是centeralign元素上的img属性从未将center作为可能值,因为center历来总是指水平对齐(浮动),您可以&#39 ; t将图像浮动在一条线的中心。当时的其他实现,例如IE, 允许center作为可能的值,其含义与middle相同(参见Stefan的答案),等等我的猜测是Firefox正在提供互操作,同时仍然通过对值进行别名来遵守标准。

我不清楚为什么Chrome不会这样做。在任何情况下,出于渲染的目的,它似乎都将center视为middle。但是,如果重写Firefox的价值选择器的价值,我会考虑一个缺陷(尽管他们可能并不倾向于修复,因为该属性已经过时)。

真正的问题是MDN claims唯一可能的值为leftrightjustifycenter的原因。当然,DOM level 2 spec包含对align属性的更准确描述,但它并未列出可能的值,因为它们已经在HTML规范中列出。

答案 1 :(得分:1)

html specification不知道img标记的align属性的值 center (但对于其他标记)。但是,firefox可能会将 center 识别为值(而不是其他废话)并将其作为 middle 接受,因为firefox和其他可能的浏览器在他们生活中的某个时刻根据这rather ancient bug report