【问题标题】:How to use a Bootstrap 3 glyphicon in an html select如何在 html 选择中使用 Bootstrap 3 字形图标
【发布时间】:2013-10-16 01:45:50
【问题描述】:

我需要让用户在我的 ui 中选择 Bootstrap 3 字形图标的子集。

我试过了:

<select class="form-control">
  <option><span class="glyphicon glyphicon-cutlery"></span></option>
  <option><span class="glyphicon glyphicon-eye-open"></span></option> 
  <option><span class="glyphicon glyphicon-heart-empty"></span></option>
  <option><span class="glyphicon glyphicon-leaf"></span></option>
  <option><span class="glyphicon glyphicon-music"></span></option>
  <option><span class="glyphicon glyphicon-send"></span></option>
  <option><span class="glyphicon glyphicon-star"></span></option>
</select>

但是我得到的只是空行。任何帮助或替代建议表示赞赏。

【问题讨论】:

    标签: twitter-bootstrap twitter-bootstrap-3 html-select glyphicons


    【解决方案1】:

    如果您使用 glyphicon 作为字符串的第一个字符,则可以使用 html char(参见 https://glyphicons.bootstrapcheatsheets.com/)然后将字体应用于元素的第一个字符:

        option::first-letter{
            font-family: Glyphicons Halflings;
        }
    

    【讨论】:

      【解决方案2】:

      我认为标准的 HTML 选择不会显示 HTML 内容。我建议查看 Bootstrap 选择:http://silviomoreto.github.io/bootstrap-select/

      它有几个选项用于在选择中显示图标或其他 HTML 标记。

      <select id="mySelect" data-show-icon="true">
        <option data-content="<i class='glyphicon glyphicon-cutlery'></i>">-</option>
        <option data-subtext="<i class='glyphicon glyphicon-eye-open'></i>"></option>
        <option data-subtext="<i class='glyphicon glyphicon-heart-empty'></i>"></option>
        <option data-subtext="<i class='glyphicon glyphicon-leaf'></i>"></option>
        <option data-subtext="<i class='glyphicon glyphicon-music'></i>"></option>
        <option data-subtext="<i class='glyphicon glyphicon-send'></i>"></option>
        <option data-subtext="<i class='glyphicon glyphicon-star'></i>"></option>
      </select>
      

      这是一个演示:https://www.codeply.com/go/l6ClKGBmLS

      【讨论】:

      • 谢谢,第一部分回答了我的问题,从技术上讲,它是 BS3 中的一种字体,所以我想我会研究它的这方面,看看我是否可以得到一个常规的选择,将它用作字体.从技术上讲,您的解决方案确实在选择下拉列表中显示了该图标,但它不在编辑部分中,我担心它无法完全支持 BS3,因为它似乎控制早于 bs3 并且他们在他们的有关它的文档。
      • 不客气。我也没有看到任何关于 Bootstrap Select 的 BS 3 的提及.. 希望他们会更新它.. 这是一个很棒的插件
      • bootply.com 似乎已关闭。有什么方法可以用我的字形图标替换插入符号?
      【解决方案3】:

      据我所知,在本机选择中实现此目的的唯一方法是使用字体的 unicode 表示。您必须将 glyphicon 字体应用于选择,因此不能将其与其他字体混合。但是,字形图标包含常规字符,因此您可以添加文本。不幸的是,似乎无法为单个选项设置字体。

      <select class="form-control glyphicon">
          <option value="">&#x2212; &#x2212; &#x2212; Hello</option>
          <option value="glyphicon-list-alt">&#xe032; Text</option>
      </select>
      

      这是带有 unicode 的图标列表:

      http://glyphicons.bootstrapcheatsheets.com/

      【讨论】:

      • 注意:这个技巧也适用于 font-awesome glyphicons &lt;select class="form-control fa"&gt;&lt;option value=""&gt;&amp;#xf1ab;&amp;nbsp; demo&lt;/option&gt;&lt;/select&gt;。不要使用类glyphicon,而是使用类fa。您可以在此处获取图标的 unicode 列表:fontawesome.io/cheatsheet
      • 这部分适用于 BS 3.3.7。例如,&amp;#x270f; 出现了,但 &amp;#xe023;&amp;#xe013; 没有出现。
      • &lt;select&gt; 上应用glyphicon 导致文本以不同的字体显示。我有&lt;option&gt;标签中的图标+字体。并且没有显示任何图标。
      • 如果您使用 font-awsome ,请记住,仅在 select 中使用 fa 类,它将使用标准图标大小。如果您喜欢更大的图标,请在选择类中使用“fa fa-lg”
      • 这应该是公认的答案。它充分回答了这个问题,而不包括额外的库或插件。投我一票。
      【解决方案4】:

      我最终使用了 bootstrap 3 下拉按钮,我在此处发布我的解决方案,以防将来对某人有所帮助。将 bootstrap 3 list-inline 添加到 ul 的类中会使其也以非常紧凑的格式显示。

      <div class="btn-group">
          <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
              Select icon <span class="caret"></span>
          </button>
          <ul class="dropdown-menu list-inline" role="menu">
              <li><span class="glyphicon glyphicon-cutlery"></span></li>
              <li><span class="glyphicon glyphicon-fire"></span></li>
              <li><span class="glyphicon glyphicon-glass"></span></li>
              <li><span class="glyphicon glyphicon-heart"></span></li>          
          </ul>
      </div>
      

      我正在使用 Angular.js,所以这是我使用的实际代码:

      <div class="btn-group">
                  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                      Avatar <span class="caret"></span>
                  </button>
                  <ul class="dropdown-menu list-inline" role="menu">
                      <li ng-repeat="avatar in avatars" ng-click="avatarSelected(avatar)">
                          <span ng-class="getAvatar(avatar)"></span>
                      </li>
                  </ul>
              </div>
      

      在我的控制器中:

      $scope.avatars=['cutlery','eye-open','flag','flash','glass','fire','hand-right','heart','heart-empty','leaf','music','send','star','star-empty','tint','tower','tree-conifer','tree-deciduous','usd','user','wrench','time','road','cloud'];
      
      $scope.getAvatar=function(avatar){
           return 'glyphicon glyphicon-'+avatar;
      };
      

      【讨论】:

      • 这对我的角度版本有所帮助。非常感谢。 :)
      • 同样,这种方法也适用于 Ember/Handlebars。
      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 2013-08-14
      • 2014-01-30
      • 2013-11-26
      • 2014-10-09
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多