在选择选项上自定义引导表单控件

时间:2019-05-28 09:18:56

标签: css bootstrap-4 html-input form-control

我正在使用引导程序的表单控件类在表单输入和需要选择选项的表单输入之间保持一致的样式。但是,在选择元素上使用引导程序的表单控件会使它在firefox中变得难看的下拉按钮。enter image description here

我想要实现的是

enter image description here

但是,通过css部分查看时,我无法确定应该覆盖哪个部分,因为似乎没有css指定下拉箭头的修饰。

这是当前代码的样子

<div class="form-group row">
    <label for="industry" class="">Industry :</label>
    <select name="industry" class="form-control">
        <option value="" disabled selected>Select Industry</option>
        <option value="financial-service">Financial Services</option>
        <option value="healthcare-lifescience">Healthcare & Life Science</option>
        <option value="communications">Communications</option>
    </select>
</div>

4 个答案:

答案 0 :(得分:2)

您可以在其中实现Chosen(用于选择的jQuery插件)。它具有很多功能,您也可以轻松设计它。

链接:https://harvesthq.github.io/chosen/

在您的代码中:

  <link
    rel="stylesheet"
    href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css"
  />
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js"></script>
  <div class="form-group">
    <label for="industry" class="">Industry :</label>
    <select name="industry" id="industry" class="form-control chosen-select">
      <option value="" disabled selected>Select Industry</option>
      <option value="financial-service">Financial Services</option>
      <option value="healthcare-lifescience">Healthcare & Life Science</option>
      <option value="communications">Communications</option>
    </select>
  </div>
  <script>
    $("#industry").chosen();
  </script>

答案 1 :(得分:0)

检出-moz-appearance here并将其设置为none

默认情况下,Chrome,Firefox等浏览器将样式应用于输入,选择,下拉菜单等。使用外观可以删除此默认样式,并使用伪元素应用自己的样式(已在Bootstrap中完成)您的具体情况)。

答案 2 :(得分:0)

查找用于引导的自定义选择类,因为它使您可以更轻松地根据需要设置选择元素的样式。

不过需要注意的是,对选择/选项样式的支持非常有限。如果要完全控制,则需要使用第三方程序包将选择转换为基于html / javascript的自定义选择。

答案 3 :(得分:0)

为您检查“我的笔”。可以100%使用Chrome,Firefox,Edge和Safari浏览器

check this codepen

select.customDropdown::-ms-expand {
    display: none;
}

select.customDropdown {
    outline : none;
    overflow : hidden;
    text-indent : 0.01px;
    text-overflow : '';
    
    background : url("https://img.icons8.com/material/24/000000/sort-down.png") no-repeat right #fff;

    -webkit-appearance: none;
       -moz-appearance: none;
        -ms-appearance: none;
         -o-appearance: none;
            appearance: none;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css">

<div class="jumbotron container">
  <div class="row">
  <div class="col-md-6 offset-md-3">
<div class="form-group row">
    <label for="industry" class="">Industry :</label>
    <select name="industry" class="form-control customDropdown">
        <option value="" disabled selected>Select Industry</option>
        <option value="financial-service">Financial Services</option>
        <option value="healthcare-lifescience">Healthcare & Life Science</option>
        <option value="communications">Communications</option>
    </select>
</div>
  </div>
  </div>
  </div>
  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.js"></script>