为什么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/>
使用一个标签