如何增加选择框箭头的宽度?

6
我想增加选择框箭头的宽度,就像fa fa caret一样。我不知道如何做。我在每个字段中使用了img标签,并给定了绝对位置,并用左上属性进行调整,但我认为这不是正确的方法,即使我点击图像箭头,选项也没有打开,所以我将其删除了。请告诉我正确的解决方案。

.search-categories{
    background: #E40444 !important;
    color: #fff !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
    <style type="text/css">
    
    </style>

    <div class="col-md-12 ">
      <div class="row">
       <form action="#" method="get" id="search_mini_form">
          <div class="col-sm-offset-2 col-sm-2 catnames">
             <select name="cat" class="form-control search-categories">
                <option>Categories</option>
                <option value="3">abcd</option>
                <option value="4">abcd</option>
                <option value="5">abcd</option>
             </select>
          </div>
          <div class="col-sm-2 catnames catnames-arrow ">
             <select name="cat" class="form-control search-categories search-Hourly">
                <option>Hourly</option>
                <option value="3">abcd</option>
                <option value="4">abcd</option>
                <option value="5">abcd</option>
             </select>
          </div>
          <div class="col-sm-4 catquery ">
       <div class="input-group">
             <input type="search" class="form-control " name="q" id="location" value="" maxlength="128" placeholder="Search Place..." autocomplete="off" />
         <div class="input-group-addon catsubmit"><i class="fa fa-search"></i></div>
            </div>
          </div>
          <div id="search_autocomplete" class="search-autocomplete"></div>
       </form>
       </div>
    </div>

3个回答

2
你可以使用CSS三角形制作箭头。 HTML
<div class="selectwrap">
      <select>
        <option>Option 1</option>
        <option>Option 3</option>
        <option>Option 4</option>
      </select>
</div>

CSS
select {
  border: 1px solid #ccc;
  height: 34px;
  width: 250px;
  padding: 6px 12px;
  line-height: 1.42857143;
}

.selectwrap {
  position: relative;
  float: left;
}

.selectwrap:after {
  content: "";
  position: absolute;
  width: 0; 
  height: 0; 
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;  
  border-top: 8px solid #000;
  right: 4px;
  top: 14px;
  pointer-events: none;
}

1

跨浏览器样式化表单元素非常复杂,因为每个浏览器对表单元素的外观都不同(特别是复选框、单选框、下拉框、进度条等)。

我建议使用像select2这样的插件,这样您就可以轻松地使每个元素在各种浏览器中具有相同的样式。

$(document).ready(function() {
  $('select').select2({
    width: '200px'
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="http://select2.github.io/select2/select2-3.5.3/select2.css" rel="stylesheet" />
<script src="http://select2.github.io/select2/select2-3.5.3/select2.js"></script>


<select>
  <option>Op 1</option>
  <option>Op 2</option>
  <option>Op 3</option>
  <option>Op 4</option>
</select>


很抱歉,但这个答案与提问者的问题有什么关系呢?他要求增加选择框箭头的宽度,而不是任何插件。请不要改变提问者问题的主旨/目的。谢谢。 - Leo the lion
@Leothelion,我建议你采用增加元素宽度的方法,而不是为此苦苦挣扎数小时。 - Justinas

0

最好使用一些选择元素自定义插件,如select2selectize。这些插件创建的外观可以通过CSS进行自定义。

仅使用CSS无法以跨浏览器的方式完全控制


请给我的问题点赞,因为我由于声望不足无法为您的回答点赞。 - user6219086

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接