2013-05-05 135 views
0

有下面的PHP代码:额外空间部件

<div class="row"> 
<div class="captcha"> 
<? $this->widget('CCaptcha', array('showRefreshButton'=>false)); ?> 
</div><?php echo $form->textField($model, 'verifyCode', array('class'=>'resume-form-input')); ?> 
<?php echo CHtml::submitButton('Done', array('class'=>'button-style')); ?> 
</div> 

正如你可以看到,这个“行”中包含的验证码控件,文本字段,提交按钮。但是这段代码看起来不好。如果我按照以下方式格式化:

<div class="row"> 
<div class="captcha"> 
<? $this->widget('CCaptcha', array('showRefreshButton'=>false)); ?> 
</div> 
<?php echo $form->textField($model, 'verifyCode', array('class'=>'resume-form-input')); ?> 
<?php echo CHtml::submitButton('Done', array('class'=>'button-style')); ?> 
</div> 

我在文本字段前有一个额外的空间。什么是问题?

回答

0

没有看到呈现的输出,我猜想是因为默认情况下input的行为类似于display: inlineinline-block元素。这意味着渲染像换行符这样的空格。把它包内的另一个<div/>

<div class="row"> 
    <div class="captcha"> 
     <? $this->widget('CCaptcha', array('showRefreshButton'=>false)); ?> 
    </div> 
    <div> 
     <?php echo $form->textField($model, 'verifyCode', array('class'=>'resume-form-input')); ?> 
     <?php echo CHtml::submitButton('Done', array('class'=>'button-style')); ?> 
    </div> 
</div> 

不知道你怎么想这显示,这很难说,但它听起来就像你想申请float: left既内<div/> S或至少div.captcha

.captcha { 
    float: left; 
} 

Here is a demo.(我假设渲染代码看起来类似的东西)

如果你也想摆脱文本F之间的空间然后给他们一个float: left,就像this Fiddle一样。

+0

是的,“captcha”显示为“inline-block”元素。我想要有一个图像的行,输入文本和按钮。它的工作原理,但我有这个空间的问题。 – user2218845 2013-05-05 20:36:03

+0

好吧,从'.captcha'中移除'display:inline-block',像在我的回答中一样添加'float:left',并将输入区域封装在另一个div中。 – 2013-05-05 21:50:51