我在HTML中为文本值添加了一个图标。问题是它正被应用于Bootstrap按钮。选择下拉列表时,它会从外部源获取值,并且按钮标签会更改。当它取这个值时,里面的文本会改变,因此不再包含图标。我尝试通过类将它添加到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> 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>
您可以创建自定义css类来解决此问题,如下面的代码段所示。
从技术上讲,您可以将一小块自定义css添加到现有类之一。但最好保持清洁。
::before
伪类具有content
属性,允许您指定所需的图标/内容。您可以通过在此文件中搜索图标名称找到该作品的代码:
https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
而padding-right
允许您指定图标和文本之间的间距。
点击下面的“运行代码段”进行实时测试:
<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>
我不确定我完全理解,但我假设你有代码处理下拉菜单的点击。在该代码中,您正在更改文本。在没有看到代码的情况下,我唯一的建议就是在一个范围中包含按钮的文本,添加一个类以便从代码中轻松选择,只需更改范围的文本即可。所以,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>
如果这没有帮助,请同时包含修改元素值的任何代码。