【问题标题】:Icon Disappears After Drop-down is Selected (and label value loaded dynamically)选择下拉菜单后图标消失(并动态加载标签值)
【发布时间】:2018-03-02 08:06:05
【问题描述】:

我正在向 HTML 中的文本值添加一个图标。问题是它被应用于引导按钮。选择下拉菜单时,它会从外部源获取一个值,并且按钮标签会更改。当它采用这个值时,里面的文本会发生变化,因此不再包含图标。我尝试通过一个类将它添加到 div 中,但这会永久更改文本类型,我不想这样做。有任何想法吗?

  <div class="col-2" style="padding: 20px;">
            <div class="btn btn-primary dropdown-toggle dropdown-toggle-split" id="acctFilter" data-toggle="dropdown" acctid="placeholder">
                <i class="fa fa-building"></i>&nbsp; SELECT ACCOUNT
                <span class="sr-only">Toggle Dropdown</span>
            </div>
            <div class="dropdown-menu" id="acctList" role="menu" aria-labelledby="dropdownMenu">
            </div>
        </div>

如果我这样添加,整个按钮文本都会改变...

  <div class="col-2" style="padding: 20px;">
            <div class="btn btn-primary dropdown-toggle dropdown-toggle-split fa fa-globe" id="acctFilter" data-toggle="dropdown" acctid="placeholder">
               SELECT ACCOUNT
                <span class="sr-only">Toggle Dropdown</span>
            </div>
            <div class="dropdown-menu" id="acctList" role="menu" aria-labelledby="dropdownMenu">
            </div>
        </div>

【问题讨论】:

    标签: jquery html css bootstrap-4


    【解决方案1】:

    您可以创建一个自定义 css 类来解决这个问题,如下面的代码 sn-p 所示。

    从技术上讲,您可以将一小段自定义 css 添加到现有类之一。但最好保持清洁。

    ::before 伪类有一个content 属性,可让您指定所需的图标/内容。您可以通过在此文件中搜索图标名称找到该片段的代码:

    https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
    

    padding-right 允许您指定图标和文本之间的间距。

    点击下方“运行代码sn-p”进行现场测试:

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
        
    <style>
    .icon-building::before {
        font-family: "FontAwesome";
        content: "\f1ad";
        padding-right: 10px;
    }
    </style>
    
    <div class="container">
        <div class="row">
            <div class="col-2" style="padding: 20px;">
                <div class="btn icon-building btn-primary dropdown-toggle dropdown-toggle-split" id="acctFilter" data-toggle="dropdown" acctid="placeholder">
                    SELECT ACCOUNT
                    <span class="sr-only">Toggle Dropdown</span>
                </div>
                <div class="dropdown-menu" id="acctList" role="menu" aria-labelledby="dropdownMenu">
                </div>
            </div>
        </div>
    </div>

    【讨论】:

      【解决方案2】:

      我不确定我是否完全理解,但我假设您有处理下拉点击的代码。在该代码中,您正在更改文本。在没有看到代码的情况下,我唯一的建议是将按钮的文本包装在一个跨度中,添加一个类以便从代码中轻松选择,只需更改跨度的文本。因此,html 看起来像:

      <div class="col-2" style="padding: 20px;">
        <div class="btn btn-primary dropdown-toggle dropdown-toggle-split" id="acctFilter" data-toggle="dropdown" acctid="placeholder">
          <i class="fa fa-building"></i><span class="my-btn-text">SELECT ACCOUNT<span>
          <span class="sr-only">Toggle Dropdown</span>
        </div>
        <div class="dropdown-menu" id="acctList" role="menu" aria-labelledby="dropdownMenu">
        </div>
      </div>

      如果这没有帮助,请同时包含任何修改元素值的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-02
        • 2013-09-02
        • 1970-01-01
        • 2017-12-28
        • 2022-06-10
        • 1970-01-01
        相关资源
        最近更新 更多