根据W3C规范...
contenteditable 属性是一个枚举属性,其关键字为空字符串,true和false。空字符串和true关键字映射到true状态。
我发现的所有示例和文档都代表了#34;空字符串"如下:
<div contenteditable="">...</div>
我想知道以下是否同样有效(跨浏览器)为了更清晰,更简洁的代码:
<div contenteditable>...</div>
工作正常 - 至少在当前版本的Firefox和Chrome上。我只是想知道它是否是有效且可靠的跨浏览器。我的想法是它可以与readonly,disabled,selected等表单属性相媲美 - 这些属性通常可靠地使用而不分配值。
SOLUTION:
Marc B从W3C规范中指出了以下内容:
请注意,空属性语法完全等同于将空字符串指定为属性的值。
...这基本上确认了布尔属性/属性的缺失值和空值的可互换性,这意味着上面的两个代码片段都是有效的,并且(应该)在浏览器中相同地处理。感谢所有回答的人!
答案 0 :(得分:1)
根据W3C specs:
在以下示例中,disabled属性以空属性语法给出:
<input disabled>
请注意,空属性语法完全等同于将空字符串指定为属性的值,如以下示例所示。
<input disabled="">
现在,这就是W3C所说的内容,然后是浏览器阅读的内容。您可以确定Internet Explorer将翻译/读取它作为&#34; argle bargle screw the specs woofle&#34;并做自己的事情,可能是治疗&#34;残疾&#34; as&#34; do_the_stupidest_possible_thing_repeatedly = true&#34;。
答案 1 :(得分:1)
根据WHATWG遗漏的值应该导致inherit
,而不是空字符串true
。作为不同的价值观,我会说它不安全。
但是如果你想要清晰的代码,为什么不写true
,因为你需要提出这个问题,你甚至不能阅读自己的代码。我不得不同时查看&#34;&#34;和属性的缺失值默认值,这不是我所说的清楚。
答案 2 :(得分:0)
这是来自Mozilla的有用的link,可以准确回答您的问题。
提取:
根据MDN,设置为true时的contentEditable
属性或空字符串表示该元素是可编辑的。因为contentEditable
属性是枚举的而不是布尔值,如果省略它,它将从父元素继承。
支持IE6,Chrome 11,Firefox 3.0(Gecko 1.9),Opera 10.6和Safari 3.2。