【问题标题】:Dropdown styling in yiiyii 中的下拉样式
【发布时间】:2014-01-04 20:12:57
【问题描述】:

我正在尝试为我的应用程序设置主题。对于活动下拉列表,在我的 CSS 中,调用了以下样式,

.inputs {
  width: 635px;
  float: left;
}

.inputs select[id="Model_attribute"]{
  float: left;
  padding: 9px 9px 9px;
  width: 278px;
  margin-left: 20px;
  margin-top: 23px;
  -webkit-border-radius: 7px;
  -moz-border-radius: 7px;
  border-radius: 7px;
  border:none;
}

以下是生成的html

<div class="inputs">
<select name="Model[attribute]" id="Model_attribute">
<option value="">Select an option</option>
<option value="26">Option 1</option>
<option value="28">Option 2/option>
</select>   
</div>

下面是视图文件

    <?php echo CHtml::activeDropDownList($model,'attribute', $model->getOptions(),array(
                 'prompt'=>$hname,
                'ajax' => array(
                'type'=>'POST',
                'id'=>'id',
                'url'=>MyController::createUrl('loadOptions'),
                'update'=>'#'.CHtml::activeId($model,'attribute2'),
 
              'data'=>array('attribute'=>'js:this.value'),
   )
        )); ?>

当我将它作为一个 html 文件进行测试时,样式被应用了,但是当我以我的原始形式调用它时,样式没有出现。我用萤火虫检查了它,但没有显示任何风格。请帮忙。提前致谢!

【问题讨论】:

  • 是样式没有出现还是相关的活动课程没有加起来?
  • 呃,你的意思是.inputs select#Model_attribute
  • 风格没有出现!它在作为 html 文件调用时应用。但不是当通过我的应用程序调用为 php 时。

标签: php jquery html css yii


【解决方案1】:

在 yii 中,您可以在 activeDropDownList 中指定类似以下内容

array('class'=>'yourCssClass')

然后在你的样式表中:

.yourCssClass{
   //any styles
}

这应该为你做。

注意:确保包含正确的样式表。尝试清除浏览器缓存/历史记录。

编辑:

您完成的下拉小部件将如下所示:

<?php echo CHtml::activeDropDownList($model,'attribute', $model->getOptions(),array(
      'prompt'=>$hname,
      'class'=>'yourCssClass',
      'ajax' => array(
      'type'=>'POST',
      'id'=>'id',
      'url'=>MyController::createUrl('loadOptions'),
      'update'=>'#'.CHtml::activeId($model,'attribute2'),
      'data'=>array('attribute'=>'js:this.value'),
   )
)); ?>

并对所有下拉列表重复相同的操作。如果样式相同,则使用相同的类,如果样式不同,则相应地使用不同的类。

希望这是有道理的。

【讨论】:

  • 我想把我的下拉菜单放在我的包装器中,即我的样式中的'inputs',并为我的下拉字段应用'select [id="Model_attribute"]'的样式。有很多“输入”中的其他字段。我该如何处理您的建议?
  • 最好的方法是按照 yii 标准,为您的每个下拉菜单添加样式到您现有的代码中。稍微修改一下。
  • 当我把它作为'class'=>'inputs'时,我会得到它的宽度为635px,但我需要的宽度只有278px ..但在'inputs'内。这怎么可能? :-(
  • 在您的样式表中指定类似.inputs{ width: 278px !important; } 的内容。基本上只是覆盖默认宽度。
  • 试过了..但没用!! :-(
【解决方案2】:

在您的视图中,您正在使用“属性”生成下拉菜单。在这里,Yii 将通过连接模型和模型字段(即“属性”)为该下拉菜单生成动态 ID。

EX:如果你的

          $model=new Country(); //Country is the lable here

现在 ID 将生成为

         <select id='Country_attribute' .......

         .........

         </select>

所以写下那个 ID 的样式

        #Country_attribute
        {
            //Style
        }

【讨论】:

  • 我知道 Hearaman..我只是这样做了..!我正在使用 Yii 生成的 id。当我将其发布为 qstn 时,我只是对其进行了编辑..!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
相关资源
最近更新 更多