Html 如何在浏览器中实现文本元素的像素完美定位和间距?
现在,我们正试图在Mac和Windows上的Safari/Chrome/Firefox/IE上实现Html 如何在浏览器中实现文本元素的像素完美定位和间距?,html,cross-browser,text-rendering,pixel-perfect,Html,Cross Browser,Text Rendering,Pixel Perfect,现在,我们正试图在Mac和Windows上的Safari/Chrome/Firefox/IE上实现textarea元素的一致格式。我认为这可能是一个兔子洞,因为它们的任何组合都可能以稍微不同的方式产生格式——可能一个组合在div中添加了一些不同于其他组合的填充,另一个组合在div中打断多行文本的方式不同于其他组合,以此类推 我们可以使用HTML5的画布,而不是使用textarea(或div)元素实现像素级的完美定位吗?还是使用Raphael JavaScript库?或者其他的JS库 主要来说,所
textarea
元素的一致格式。我认为这可能是一个兔子洞,因为它们的任何组合都可能以稍微不同的方式产生格式——可能一个组合在div中添加了一些不同于其他组合的填充,另一个组合在div中打断多行文本的方式不同于其他组合,以此类推
我们可以使用HTML5的画布
,而不是使用textarea
(或div
)元素实现像素级的完美定位吗?还是使用Raphael JavaScript库?或者其他的JS库
主要来说,所谓像素完美,我的意思是任何任意文本都应该在上述任何浏览器中以完全相同的方式呈现(特别是在换行和填充方面)
(目前我更倾向于避免使用基于Flash的解决方案,除非这是唯一的解决方案……一个解决方案是从头开始css吗?给每件事一个已知的默认值 例如,我像这样启动css文件,因此我总是知道会发生什么:
*{
margin:0;
padding:0;
}
这就是你要找的吗?类似地,您可以将“*”更改为“textarea”。一个解决方案是从头开始css吗?给每件事一个已知的默认值 例如,我像这样启动css文件,因此我总是知道会发生什么:
*{
margin:0;
padding:0;
}
这就是你要找的吗?类似地,您可以将“*”更改为“textarea”。我不确定这是否可行,但是您可能需要了解的一件事是使用firefox的web developer工具栏或chrome的web developer插件。有一个选项可以禁用浏览器默认样式。选中此项,然后设置所有内容的样式。边框、边框类型、所有边距、填充、背景色等。然后重新启用浏览器默认样式,并确保其外观相同。如果没有,清洗、冲洗并重复
此外,如果字体起作用,您将不得不将它们嵌入页面,因为某些操作系统可能没有安装特定的字体。我不确定这是否可行,但是您可能需要了解的一件事是使用firefox的web developer工具栏或chrome的web developer插件。有一个选项可以禁用浏览器默认样式。选中此项,然后设置所有内容的样式。边框、边框类型、所有边距、填充、背景色等。然后重新启用浏览器默认样式,并确保其外观相同。如果没有,清洗、冲洗并重复
此外,如果字体起作用,您将不得不将它们嵌入页面,因为某些操作系统可能没有安装特定的字体。PDF存在的一个主要原因是浏览器的布局与像素不同,但PDF是。除此之外,即使字体在不同操作系统/浏览器之间也不能保证相同
即便如此,如果你不让浏览器定位任何东西,并且你自己做像素级的定位,你仍然不一定有相同的字体可以使用。如果你让浏览器定位任何东西,那么你可以有变化。PDF存在的一个主要原因是浏览器不是关于像素相同的布局,而是PDF。除此之外,即使字体在不同操作系统/浏览器之间也不能保证相同
即便如此,如果你不让浏览器定位任何东西,并且你自己做像素级的定位,你仍然不一定有相同的字体可以使用。如果你让浏览器定位任何东西,那么你可以有变化。我认为这几乎是不可能的 我还想说,没有理由在所有浏览器中都使用像素完美,因为绝大多数访问者只使用一个浏览器查看您的网站。而那些在多个浏览器中访问你的网站的人(比如在工作和家中)不太可能注意到缺少几个像素或边框颜色略有不同的元素 我们应该关注的是,内容在每个浏览器中看起来都很好
这就是说,这里有一个很棒的
textarea
技巧列表:我认为这几乎是不可能的
我还想说,没有理由在所有浏览器中都使用像素完美,因为绝大多数访问者只使用一个浏览器查看您的网站。而那些在多个浏览器中访问你的网站的人(比如在工作和家中)不太可能注意到缺少几个像素或边框颜色略有不同的元素
我们应该关注的是,内容在每个浏览器中看起来都很好
这就是说,这里有一个很棒的
textarea
技巧列表:将文本发送到服务器,让服务器渲染图像,显示图像。瞧。将文本发送到服务器,让服务器渲染图像,显示图像。瞧。在画布可用的地方,您可以实现“近乎像素的完美定位”——不同的Borwser/版本访问/解释字体/样式的方式不同。。。“真正的像素完美”只有通过基于Flash或Silverlight的解决方案才有可能实现…@Pumbaa80是的,在这种情况下,确实如此。你那精辟的评论既无知又不受欢迎。你一定是在开玩笑。为什么你的情况会有所不同?一代又一代的Web开发人员都在努力实现您的要求,但都失败了。Canvas和SVG没有区别,因为“问题”是字体渲染。唯一可行的“解决方案”是使用Flash或代替文本,这使得web开发看起来很可笑。@Pumbaa80正如你所说,几代web开发人员都在努力创建交互式网页。然后时代变了。在画布可用的地方,你可以实现“近乎像素的完美定位”——不同的Borwser/版本访问/解释字体/样式的方式不同