библиотека начальной загрузки с использованием font-awsome для выпадающего значка - PullRequest
0 голосов
/ 13 декабря 2018

Я использую bootstrap-select для пользовательского интерфейса поиска, который я делаю, все работает нормально, и библиотека поставляется с множеством хороших опций.Я хочу заменить выпадающий значок по умолчанию на мой значок шрифта, таким образом, я могу управлять стилями значка.я попробовал их способ смены значков по умолчанию, который не работает, что я делаю здесь неправильно

значок по умолчанию enter image description here

требуемый значок enter image description here

вот функция смены значков, которую я попробовал без удачи

    $('.selectpicker').selectpicker({
        iconBase: 'fa',
        tickIcon: 'fa-chevron-down',
     });

Есть ли способ css сделать это?если бы работала такая функция, как выше, это было бы лучше.

Вот моя работа до сих пор

.dnow-searchWizard-wrap .dropdown.bootstrap-select button.btn-light {
  background-color: #fff;
  padding: 1rem;
}
.dnow-searchWizard-wrap .btn-primary {
  padding: 1rem;
}
<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <title>slick slider</title>
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
      crossorigin="anonymous">
   <link href="https://unpkg.com/ionicons@4.4.8/dist/css/ionicons.min.css" rel="stylesheet">

   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/css/bootstrap-select.min.css">


   <link rel="stylesheet" href="css/style.css">
</head>

<body>

   <section class="dnow-searchWizard-wrap bg-light p-5">
      <div class="container">
         <div class="row text-center">
            <div class="col-lg-12 mb-4">
               <h2>H2 Find Solutions That Work for You</h2>
            </div>
            <div class="col-lg-12 mb-4">
               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit do eiusmod.</p>
            </div>
         </div>
         <div class="row">
            <div class="col-lg-2 align-self-center">
               <p><strong>I AM LOOKING FOR</strong></p>
            </div>
            <div class="col-lg-3">
               <div class="form-group">
                  <select class="selectpicker form-control">
                     <optgroup label="Picnic">
                        <option>Mustard</option>
                        <option>Ketchup</option>
                        <option>Relish</option>
                     </optgroup>
                     <optgroup label="Camping">
                        <option>Tent</option>
                        <option>Flashlight</option>
                        <option>Toilet Paper</option>
                     </optgroup>
                  </select>
               </div>

            </div>
            <div class="col-lg-1 align-self-center text-center">
               <p><strong>IN</strong></p>
            </div>
            <div class="col-lg-3">
               <div class="form-group">
                  <select class="selectpicker form-control">
                     <optgroup label="Picnic">
                        <option>Mustard</option>
                        <option>Ketchup</option>
                        <option>Relish</option>
                     </optgroup>
                     <optgroup label="Camping">
                        <option>Tent</option>
                        <option>Flashlight</option>
                        <option>Toilet Paper</option>
                     </optgroup>
                  </select>
               </div>

            </div>
            <div class="col-lg-3">
               <button class="btn btn-primary">Show My Results</button>

            </div>

         </div>

      </div>
   </section>

   <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>
   <!-- Latest compiled and minified JavaScript -->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/js/bootstrap-select.min.js"></script>

   <!-- (Optional) Latest compiled and minified JavaScript translation files -->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/js/i18n/defaults-*.min.js"></script>

   <script>
      $(document).ready(function () {
         $('.selectpicker').selectpicker({
            iconBase: 'fa',
            tickIcon: 'fa-check',
         });
      });

   </script>
</body>

</html>

Ответы [ 2 ]

0 голосов
/ 15 января 2019

bootstrap 4 добавляет свой выпадающий значок, используя трюк с границей, поэтому после добавления моего собственного значка с помощью dropdown :: after мне пришлось переопределить все границы, чтобы удалить значок по умолчанию.Вы можете сделать то же самое для выпадающего списка.

.dropdown-toggle::after {
    font-family: "Ionicons";
    /* display: inline-block; */
    content: '\f123';
    /* width: 0;
    height: 0;
    margin-left: 0.255em;
    vertical-align: 0.255em; */
    border-top: none;
    border-right: none;
    border-bottom: none;
    border-left: none;
    margin-right: 1rem;
}

.dropup .dropdown-toggle::after {
    /*display: inline-block;
    width: 0;
    height: 0;
    margin-left: .255em;
    vertical-align: .255em;*/
    font-family: "Ionicons";
    content: "\f126";
    border-top: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
}
0 голосов
/ 14 декабря 2018

Возможно сделать это с векторным изображением, используя CSS ниже.Также было бы возможно сделать это с помощью «: after» и с использованием стиля «content», но я не пробовал этого. Если больше никто не помогает, я, по крайней мере, дал вам одно решение, которое будет работать.

.changedSelect {
    padding: 0 32px 0 5px !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: white;
    background-image: url('../DropDownArrow.png');
    background-repeat: no-repeat;
    background-position: right 5px center;
    background-size: 20px 20px;
}

/*Hide the original drop down arrow on internet explorer*/
.changedSelect::-ms-expand {
    display: none;
};

ОБНОВЛЕНИЕ: Так как я удивительный человек, браузеры не позволяют вам добавлять потрясающую иконку шрифта, используя CSS: after и content для select, что, насколько я знаю, означает решение, которое я разместил.будет единственным способом добавить пользовательскую стрелку, если вы не добавите обертку. Можно добавить значки Font Awesome к обычным элементам div, используя до и после согласно комментарию, который был добавлен из IvanS

...