如何显示带图标的YUI分割按钮?

时间:2011-03-04 20:36:19

标签: javascript yui

我在应用中使用了一些YUI split buttons,现在我想在按钮的左侧显示一个任意小图标。我跟着常规YUI push buttons的示例CSS,我可以看到我的图标,但是小分割器图像然后消失了。即使没有垂直条和下拉图标,该按钮似乎表现得像分割器一样。这似乎是因为拆分按钮也使用CSS背景图像网址。那么,在YUI分割按钮上显示我自己的图标的最佳方式是什么?

这是我的示例代码。

CSS:

.yui-button#splitbutton1 button,
.yui-button#regularbutton button
{
  padding-left: 2em;
  background: url(http://developer.yahoo.com/yui/examples/button/assets/add.gif) 0.5em     50% no-repeat;
}

HTML:

<div>
  <input type="button" id="regularbutton" value="My regular button">
</div>

<div>
  <input type="button" id="splitbutton1" value="My first split button">    
  <select id="splitbutton1menu">
    <option>Option 1</option>
    <option>Option 2</option>
  </select>
</div>

<div>
  <input type="button" id="splitbutton2" value="My other split button">    
  <select id="splitbutton2menu">
    <option>Option 1</option>
    <option>Option 2</option>
  </select>
</div>

脚本:

YAHOO.util.Event.onContentReady("container", function () {
    var button = new YAHOO.widget.Button("regularbutton");
    var splitbutton = new YAHOO.widget.Button("splitbutton1",
                          {
                              type: "split",
                              menu: "splitbutton1menu"
                          } );
    var splitbutton = new YAHOO.widget.Button("splitbutton2",
                          {
                              type: "split",
                              menu: "splitbutton2menu"
                          } );


});

1 个答案:

答案 0 :(得分:1)

将您的css更改为:

.yui-button#splitbutton1 span,
.yui-button#regularbutton span
{
  padding-left: 20px;
  background: url(http://developer.yahoo.com/yui/examples/button/assets/add.gif) 0.5em     50% no-repeat;
}

你是对的,按钮已经有了背景图片。所以我们要做的就是将bg图像放高一点,这样我们就会定位包裹按钮的span

在这里看演示 http://jsfiddle.net/gmedina/Bvhpm/5/

编辑: 事实上,如果你想将你的图标应用到所有拆分按钮,我会替换上面的css而不是这个:

.yui-split-button span {
   padding-left: 20px;
   background: url(http://developer.yahoo.com/yui/examples/button/assets/add.gif) 0.5em 50% no-repeat;        
}