为什么HTML/XHTML中允许输入大小属性是严格的?
这通过了验证:为什么HTML/XHTML中允许输入大小属性是严格的?,html,xhtml,standards,html-input,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> <
<!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版本。但是有两种不同的解析器: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
属性被认为是文本的大小,而不是输入
元素应该呈现的像素数。如果没有忽略它,也可能是为了向后兼容(如果没有size
属性,某些浏览器可能无法工作)
如果您希望最大限度地提高编写客户端代码的能力,我强烈建议您使用XHTML5。这是使用XML解析器呈现的更详细的HTML5。我个人资料中的网站是一个活生生的环境,如果你仍在深入学习过程中,它可以展示你想要知道的很多(如果不是全部的话),从而跳过更环保的错误
是的,
size
属性更改input
元素的宽度,本质上是表示性的。如果您将size
设置为3
并键入字母l(如letter),您将清楚地看到比size
设置为更多的字母。只有单空格字体在所有字符(示例中为l和w)之间具有共享的设置宽度,这可以通过CSS实现。事实上,字体有很多行高问题,尽管在这里不太相关。可能在我看来,size
属性存在于偶数中的原因是它可能被过度关注了。我不确定W3C标准的作者是否通过W3C获得报酬(大多数开源软件开发人员在示例中都没有得到报酬),或者可能是因为这是一个可能得到很好支持(并且可能使用得相当好)的属性,所以人们决定保留它。一天结束时,我建议不要使用它,因为它在客观上毫无用处。只是意识到我没有回答这个问题。首先,解析器浏览器使用什么来处理任何事情?我在这里谈论的是有效性/验证。其次,好的,XHTML 1.0 Strict可能不再是官方的,但我认为这不会改变它存在的事实,也不会改变软件(包括浏览器和验证器)如何处理声明为XHTML 1.0 Strict的数据(如果它选择支持该类型)。@Stewart I添加了最后一段。如果我遗漏了什么,请告诉我。你说“也许因为它可能是一个很受支持的属性(并且可能使用得相当好)”,但(例如,
)肯定也是如此。此外,根据size
是如何定义的,我想浏览器应该做的是以所用字体中最宽字符宽度的倍数来呈现。但是看起来并不是这样的。你怎么说它可以用CSS实现,但只能用单空间字体?是否有一个CSS单位在使用单空格字体时定义为与大小
单位相同,但在使用比例字体时定义不相同?@Stewart单空格字体对每个字符使用完全相同的宽度;其他内容(AFAIK)使用特定于所用字符的宽度。浏览器不会试图进行调整,因为最初甚至没有输入任何内容,即使输入了,开发人员也要关注更高的优先级。这类代码很可能是在微软用InternetExplorer垄断互联网的时候实现的,此外,在浏览器方面取得实际进展的人都专注于改进CSS支持。