为什么HTML / XHTML Strict中允许输入大小属性?

时间:2017-09-16 18:51:11

标签: html xhtml standards html-input

通过验证:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Test</title></head>
<body>
<form action="get">
<p><input type="text" size="10" /></p>
</form>
</body>
</html>

与HTML 4.01 Strict或XHTML 1.1中的等效项一样。

size属性似乎纯粹是我的表现。那么为什么W3C会把它放在(X)HTML的严格版本中呢?

1 个答案:

答案 0 :(得分:0)

不再(官方)严格的&#34; HTML版本。然而,有两种不同的解析器:HTML解析器(松散)和XML解析器(严格)。要使浏览器使用XML解析器,请使用以下PHP代码:

<?php
if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml'))
{
 $mime = 'application/xhtml+xml; charset=UTF-8';
}
else {$mime = 'text/html; charset=UTF-8';}//Unless IE6 or lower
//IE6 or lower should only use 'text/html'.
header('Content-Type: '.$mime);
?>

我相信这部分要么在20世纪90年代末期或者在21世纪初被监督,如果size属性不太可能被认为是文本而不是input元素应该呈现为的像素数。如果它不被忽视,也可能出于向后兼容的目的(某些浏览器可能没有size属性)。

如果您希望最大限度地提高编写客户端代码的能力,我强烈建议您迁移到XHTML5。这是使用XML解析器呈现的HTML5的更详细信息。我的个人资料中的网站是一个现场环境,如果您还在学习过程的深层次,那么如果不是您想要了解的全部 就可以跳过更绿的错误。< / p>

是的,size属性会更改input元素的宽度,并且本质上是表现性的。如果您将size设置为3并输入字母l(如 l etter中),则尝试对其进你会清楚地看到比size设置的更多的那封信。只有等宽字体在所有字符(示例中为l和w)之间具有共享集合宽度,并且可以使用CSS实现。事实上,字体存在很多line-height问题,尽管这里的相关性较低。在我看来,偶数HTML 5.2 specification中存在size属性的原因是它可能已被过度查看。我不确定W3C标准作者是否通过W3C付费(大多数开源软件开发人员没有付费)或者可能因为它可能得到很好的支持(并且可能使用得很好)决定保留它。在一天结束时,我建议反对它的使用,因为它客观上没有任何目的。