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

问题描述 投票:2回答:1

这通过了验证:

<!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的严格版本中呢?

html xhtml standards html-input
1个回答
0
投票

不再(官方)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年代末期或者在2000年代早期被监督,要么就是不太可能将size属性视为文本的大小而不是input元素应该被渲染的像素数量。如。如果它没有被忽视,它也可能是为了向后兼容的目的(某些浏览器可能没有size属性)。

如果您希望最大限度地提高编写客户端代码的能力,我强烈建议您转到XHTML5。这是使用XML解析器呈现的HTML5的更详细信息。我的个人资料中的网站是一个现场环境,如果您仍然在学习过程中深入了解,那么即使不是所有您想知道的也可以跳过更绿色的错误。


是的,size属性改变了input元素的宽度,并且本质上是表现性的。试图在必要时验证它或者我们应该保留它的问题是,如果你将size设置为3并输入字母l(如字母中),你将清楚地看到该字母比size设置的更多。只有等宽字体在所有字符(示例中为l和w)之间具有共享集合宽度,并且可以使用CSS实现。事实上,有很多line-height问题与字体虽然不太相关。在我看来,甚至size中存在HTML 5.2 specification属性的原因是它可能已被过度查看。我不确定W3C标准作者是否通过W3C获得报酬(大多数开源软件开发人员都没有付费),或者因为它可能得到很好的支持(可能是相当好用的属性),人们决定保留它。在一天结束时,我建议反对它的使用,因为它客观上没有任何目的。

© www.soinside.com 2019 - 2024. All rights reserved.