我有以下代码行:
echo $form->input('terms', array('type' => 'checkbox', 'label' => 'I have read and accept the <a target="_blank" href="/terms">Terms</a>.'));
我想在此复选框上使用自定义样式。我怎么能在cakephp中做到这一点?
问题是出现在复选框中的错误消息未与其他输入文本字段正确对齐。所以我想对齐错误消息文本,所以我需要自定义样式或其他方式来解决它。我在浏览器调试器中获得了div术语字段,当我在那里更改它有效时,但我不知道如何在cakephp中更改div?当我看到.ctp文件没有div时,我将如何更改它。我是cakephp的新手,所以请详细回复我。
答案 0 :(得分:2)
只需设置'label'=>false
和/或'div'=>false
,然后以您认为合适的任何方式手动编写HTML,CSS等。
此处有更多信息:CakePHP Book - Form Helper。
答案 1 :(得分:1)
您可以通过向数组中添加'class' => 'name'
来在字段上放置自定义类,CakePHP会将该类放在输入上。
echo $form->input(
'terms',
array(
'type' => 'checkbox',
'class' => 'some-class-name',
'label' => 'I have read and accept the <a target="_blank" href="/terms">Terms</a>.'
));
产地:
<div class="input checkbox">
<input type="hidden" name="" id="" value="0">
<input type="checkbox" name="" class="some-class-name" value="1" id="">
<label for="">I have read and accept the <a target="_blank" href="/terms">Terms</a>.</label>
</div>
您可以使用'style' => 'some:style;'
echo $form->input(
'terms',
array(
'type' => 'checkbox',
'style' => 'width:200px;',
'label' => 'I have read and accept the <a target="_blank" href="/terms">Terms</a>.'
));
产地:
<div class="input checkbox">
<input type="hidden" name="" id="" value="0">
<input type="checkbox" name="" style="width:200px;" value="1" id="">
<label for="">I have read and accept the <a target="_blank" href="/terms">Terms</a>.</label>
</div>
您还可以在输入分组的<div>
以及与<label>
相关联的<input>
上应用自定义样式或类。
echo $form->input(
'terms',
array(
'type' => 'checkbox',
'label' => array(
'text' => 'I have read and accept the <a target="_blank" href="/terms">Terms</a>.',
'style' => 'width:200px;',
'class' => 'class-for-label'
),
'div' => array(
'style' => 'width:200px;',
'class' => 'class-for-div'
)
));
产地:
<div class="class-for-div" style="width:200px;">
<input type="hidden" name="" id="" value="0">
<input type="checkbox" name="" value="1" id="">
<label for="" style="width:200px;" class="class-for-label">I have read and accept the <a target="_blank" href="/terms">Terms</a>.</label>
</div>
最后,正如@dave建议的那样,您可以将<div>
或<label>
设置为false
并插入您自己的自定义HTML来删除它。
echo '<div class="input checkbox">';
echo $form->input(
'terms',
array(
'type' => 'checkbox',
'label' => false,
'div' => false
));
echo '<label>I have read and accept the <a target="_blank" href="/terms">Terms</a>.</label>';
echo '</div>';
产地:
<div class="input checkbox">
<input type="hidden" name="" id="" value="0">
<input type="checkbox" name="" value="1" id="">
<label>I have read and accept the <a target="_blank" href="/terms">Terms</a>.</label>
</div>
(我删除了一些元素属性,因为它们特定于数据库,使用的表格和模型)