为什么textarea充满了神秘的白色空间?

我有一个这样的forms的简单的文本区域 :

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"> <?php if($siteLink_val) echo $siteLink_val; ?> </textarea> 

我不断在这个textarea获得额外的空白空间。 当我插入它时,我的光标就像在textarea的中间,而不是在开始? 什么是解释?

仔细看看你的代码。 其中已经有三个换行符,而</textarea>之前有</textarea>空白。 首先删除它们,以便标签之间不再有换行符。 它可能已经诀窍。

那么, <textarea></textarea>之间的所有内容都将用作textarea框的默认值。 在你的例子中有一些空白。 尝试消除所有这一切。

在你的textarea标签之后和之前打开(closures)你的PHP标签:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

基本上应该是

 <textarea>something here with no spaces in the begining</textarea> 

如果有一些预定义的空间可以说由于下面的代码格式

 <textarea>....... ....some_variable </textarea> 

由点表示的空格在每次递交时不断增加。

简而言之: <textarea>应该在它开始的同一行立即closures。


一般实践:这将在代码中添加用于缩进的换行符和空格。

 <textarea id="sitelink" name="sitelink"> </textarea> 

正确的做法

 <textarea id="sitelink" name="sitelink"></textarea> 

另一个解决方法是使用javascript:

 //jquery $('textarea#someid').html($('textarea#someid').html().trim()); //without jquery document.getElementById('someid').innerHTML = document.getElementById('someid').innerHTML.trim(); 

这就是我所做的。 删除代码中的空格和换行符会使行太长。

为了使它看起来更清洁一些,可以考虑使用三元运算符:

 <textarea><?=( $siteLink_val ? $siteLink_val : '' );?></textarea> 

textarea打开和closures标签之间的任何空间将被视为空白。 所以对于上面的代码,正确的方法是:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

请确保没有换行符或空格,这是为了确保没有空格或制表符,只需复制并粘贴此代码:)我已经为您修复

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo trim($siteLink_val);?></textarea> 

我反对与PHP代码混合的HTML代码。

不过试试这个:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"> <?php if($siteLink_val) echo trim($siteLink_val); ?> </textarea> 

文本区域显示了神秘的空间,因为标签中存在真实的空间。 <textarea> <php? echo $var; ?> </textarea> 删除标签之间的这些额外的空格将解决问题,如下所示: <textarea> <php? echo $var; ?> </textarea> <textarea><php? echo $var; ?></textarea>

一个解决scheme已经为我工作是添加风格white-space: normal; 到textarea,因为有时消除所有的空白是不可行的(例如,当你想要你的代码遵守你的编码准则,需要添加制表符,空格和换行符)

请注意textarea的默认值,至less在chrome中是: white-space: pre-wrap;

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink" ><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

移动…>下来为我工作。

我知道它晚了,但可能会帮助别人。

在需要文档缩进时使用。

 $('document').ready(function() { $('textarea').each(function(){ $(this).val($(this).val().trim()); } ); }); 

同样的问题

另外,当你说光标位于textarea的“中间”时,它让我觉得你也可以有额外的填充或文本alignment:在CSS中某处定义了center

首先确保你的$ siteLink_val没有返回空白值作为值。 默认情况下,<textarea>元素具有一个空值,所以如果由于某种原因而回显的variables具有空格,那么就有问题了。

为了使代码变得绝对清洁,我build议你可以做这样的事情,以便稍后有更多的灵活性。 我做了一个函数,如果variables不存在(如果你在原来的文章中是为了瞄准)而返回NULL,否则返回绝对值。 一旦你确定了你的variables的内容,试试这个:

 function build_siteLink_val() { if ( $siteLink_val ) { return $siteLink_val; } else { return ""; } } $output_siteLink_val = build_siteLink_val(); 

下面的代码在你的textarea现在将被读取:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?=$output_siteLink_val?></textarea> 

这是假设你的PHP安assembly置为短手variables调用,如缩短的“<?=?>”标签所示。 如果不能以这种方式输出,请记住用“<?php”作为前缀,然后用“?>”closures。

避免在<textarea>之间换行,因为它可能造成错误字符的可能性。

此外,请检查您的CSS,确保没有填充规则向内推送文本。

此外,您可以在textarea上指定一个cols和rows值,然后设置宽度和高度。 这些规则是相反的,会导致不一致的视觉效果。 坚持通过样式定义大小(我build议给元素一个类)或行/列。

此外:textarea标签在多行代码中显示新行,标签等的空格。

保持textarea代码里面没有额外的空格

此外,如果你看到额外的空白行有解决scheme的元语言:

 <textarea> for line in lines: echo line.replace('\n','\r') endfor </textarea> 

它会打印没有额外的空行,当然这取决于如果你的行以'\ n','\ r \ n'或''结尾 – 请适应

如果您仍然喜欢使用缩进,请在打开<?php标记之后执行此操作,如下所示:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php // <--- newline if($siteLink_val) echo $siteLink_val; // <--- indented, newline ?></textarea> 

Html元素可能是打开标签和closures标签

 <textarea> ...Your code </textarea> 

如果你想用<tagName/>使用一个标签