【问题标题】:How to access and style singel html-tag within html.twig如何在 html.twig 中访问和设置单个 html-tag 的样式
【发布时间】:2016-10-20 01:52:22
【问题描述】:

我正在尝试在 html.twig 文件中使用引导程序。 情况: 我在 html.twig 中有这个代码行:

{{ form_row(form.gender) }}

这是 php 中“form.gender”的定义

 ->add('gender', ChoiceType::class, array(
                'choices' => array(
                    'form.register.children.gender.choice.male' => 'm',
                    'form.register.children.gender.choice.female' => 'f'
                ),
                'multiple' => true,
                'expanded' => true,
            ))

从此代码行将生成大 html 区域:

<div>
  <label class="required">Gender:</label>
  <div id="new_entry_gender">
    <input id="new_entry_gender_0"                
           name="catalog_new_entry[gender][]"      
           value="m" 
           type="checkbox">
    <label for="catalog_new_entry_gender_0">Male</label>


    <input id="new_entry_gender_1" 
           name="catalog_new_entry[gender][]"     
           value="f" 
           type="checkbox">
    <label for="catalog_new_entry_gender_1">Female</label>
  </div>
</div>

我想对任何单一的 html 标记使用引导类,例如:标签、输入 但我只有一行:

{{ form_row(form.gender) }}

当我上面只有一行时,我如何访问任何单个 html 标记(用于样式)? 谢谢 谢谢

【问题讨论】:

    标签: html css symfony twig symfony-forms


    【解决方案1】:

    如果 html 代码是自动生成的,请尝试为自动生成的类/id 名称定义 css。

    通过从引导程序复制 css 来定义自动生成的类名/id css,对应于该特定 html 元素的 css。

    例如:为您自动生成的 div 元素 的 id (new_entry_gender) 定义 css

    通过在 boostrap 中复制类名 form-group 的属性。

    这可能有效。

    或者你也可以使用 jQuery 把你的脚本写成

    • 按 id 选择自动生成的项目
    • 在 Jquery 中使用 .addClass() 将 boostrap 类名称添加到项目中

    【讨论】:

    • 谢谢 :) 例如,我正在使用来自引导程序的类,如下所示:&lt;label class="label label-pill label-default" for="catalog_new_entry_entryText"&gt;Entry&lt;/label&gt; 所以我创建了自己的 css 文件,我将其包含在我的 html 中。在自己的 css 文件中,我包含引导类:@import url("./bootstrap.css"); label{ label; label-pill; label-default } ,但它不起作用。我想通过一些 id´s、classes 或 html-tags 在自己的 css 文件中设置一些 bootstrap-classes,这些文件将包含在 html 中。我怎样才能做到这一点?
    【解决方案2】:

    首先,渲染每个表单field section individually,例如,使用这个:

    <div>
        {{ form_label(form.gender) }}
        {{ form_errors(form.gender) }}
        {{ form_widget(form.gender) }}
    </div>
    

    代替

    {{ form_row(form.gender) }}
    

    那么你可以简单地使用Form Variables:

    {# render a widget, but add a "foo" class to it #}
    {{ form_widget(form.gender, { 'attr': {'class': 'foo'} }) }}
    

    对于单个字段的高级自定义,您可以查看doc here

    希望有帮助

    【讨论】:

    • 我不知道,当我只说:{{ form_row(form.entryText, { 'attr': {' class': 'label label-default label-pill'} }) }} 我必须在 html.twig 中准确地在某个 html-tag 上导航,而这些 html-tag 不会在 html.twig 上呈现
    • 嗨@RomaKap 我更新了我的答案,更好地解释了这个过程。让我知道现在是否更清楚
    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多