2012-04-02 81 views
2

我得到了680像素宽的textarea。 这需要做成流动,所以我使用百分比。一个像素的宽度为100%

百分比使得完美的100%宽度,但它似乎比它应该多渲染1个像素。

http://jsfiddle.net/XXshn/2/

+0

我实在不明白你的文本区域是如何液,因为它的父已得到固定宽度的最终文本区域也要去固定宽度。关于一个像素的差异是因为浏览器在评估以像素为单位的填充百分比后,他的欧文算法将十进制数字四舍五入。 – 2012-04-02 11:12:23

+0

在我创建的这个示例中,父级只是一个“固定”持有者。为什么他们甚至将数字舍去? – markvandencorput 2012-04-02 11:17:17

+1

94.10029498525074%680 px = 639.88.2006,但浏览器将其设置为639px而不是640px。你的百分比不能达到完美的百分比,因为除非你改变盒子模型,否则边界也被评估为宽度的一部分。 – 2012-04-02 11:21:06

回答

0

什么是错的:

textarea { 
border: 1px solid #333333; 
background: #ececec; 
margin: 0; 
outline: 0; 
height: 100px; 
padding: 20px; /* */ 
width: 640px; /* 680px - 2 * 20 */ 
resize: none; } 
+0

我需要它缩放时,例如放在一个较小的股利,因此需要百分比。 – markvandencorput 2012-04-02 11:07:09

+1

好的,所以你的问题是textarea上的边框,因为这是用px代替%表示的,当你改变外部div的大小时,它永远不会是正确的。 – 2012-04-02 11:23:25

+0

将边框从内部元素移动到外部元素:我在这里修改了您的示例:http://jsfiddle.net/b8yxP/ – 2012-04-02 11:26:27