Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 直率地为我提供了这么多帮助,我想是时候回报我了_Html_Firefox_Css - Fatal编程技术网

Html 直率地为我提供了这么多帮助,我想是时候回报我了

Html 直率地为我提供了这么多帮助,我想是时候回报我了,html,firefox,css,Html,Firefox,Css,我只在firefox(mac)版本18和22(更新后)中测试过它 欢迎所有反馈 或者,您可以剪裁选定的。大致如下: select { width:200px; position:absolute; clip:rect(0, 170px, 50px, 0); } 这将剪辑选择框右侧的30px,去掉箭头。现在提供一个170px的背景图像,瞧,样式为select,这是一个巨大的黑客攻击,但是moz外观:菜单列表文本可能会起作用。更新:这在Firefox v35中已修复。有关详细信息,请参阅 刚刚了

我只在firefox(mac)版本18和22(更新后)中测试过它


欢迎所有反馈

或者,您可以剪裁选定的。大致如下:

select { width:200px; position:absolute; clip:rect(0, 170px, 50px, 0); }

这将剪辑选择框右侧的30px,去掉箭头。现在提供一个170px的背景图像,瞧,样式为select,这是一个巨大的黑客攻击,但是moz外观:菜单列表文本可能会起作用。

更新:这在Firefox v35中已修复。有关详细信息,请参阅


刚刚了解了如何从Firefox中删除选择箭头。诀窍是混合使用
前缀外观
文本缩进
文本溢出
。它是纯CSS,不需要额外的标记

select {
    -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
}
在Windows8、Ubuntu和Mac以及最新版本的Firefox上测试

实例:

关于这个主题的更多信息:

这很有效(在Firefox 23.0.1上测试):


基于@JoãoCunha的答案,这是一种可用于多种浏览器的css样式

select {
    /*for firefox*/
    -moz-appearance: none;
    /*for chrome*/
    -webkit-appearance:none;
    text-indent: 0.01px;
    text-overflow: '';
}
/*for IE10*/
select::-ms-expand {
    display: none;
}

这里和那里发生了很多讨论,但我没有看到解决这个问题的正确方法。最后编写了一个小Jquery+CSS代码,用于在IE和Firefox上进行此攻击

使用Jquery计算元素宽度(选择元素)。 在Select元素周围添加一个包装器,并为该元素隐藏溢出。确保此包装的宽度为appox。25px小于SELECT元素的25px。这可以通过Jquery轻松完成。 现在我们的图标不见了。。!现在是在选择元素上添加我们的图像图标的时候了。。。!!! 只需添加几个简单的线条来添加背景,您就完成了。。!! 确保对外包装使用溢出隐藏

下面是为Drupal编写的代码示例。但是,也可以通过删除一些特定于Drupal的代码行来用于其他应用程序

/*
 * Jquery Code for Removing Dropdown Arrow.
 * @by: North Web Studio
 */
(function($) {
  Drupal.behaviors.nwsJS = {
    attach: function(context, settings) {
      $('.form-select').once('nws-arrow', function() {
        $wrap_width = $(this).outerWidth();
        $element_width = $wrap_width + 20;
        $(this).css('width', $element_width);
        $(this).wrap('<div class="nws-select"></div>');
        $(this).parent('.nws-select').css('width', $wrap_width);
      });
    }
  };
})(jQuery);
该解决方案适用于所有浏览器IE、Chrome和Firefox 不需要添加固定宽度的黑客使用CSS。所有这些都是使用JQuery动态处理的


更多信息请参见:-

对我来说,一个有用的技巧是将(选择)显示设置为
inline flex
。将箭头从“选择”按钮中向右剪切。没有所有添加的代码

  • 仅限外汇<代码>-网络工具包外观仍然需要Chrome等

    • 我也有同样的问题。让它在FF和Chrome上工作很容易,但在IE(我们需要支持的8+)上,事情变得复杂了。对于“在我尝试的任何地方”(包括IE8)都可以使用的自定义select元素,我能找到的最简单的解决方案是使用

      其他答案似乎对我不起作用,但我发现了这个漏洞。 这对我很有用(2014年7月)

      在我的例子中,我也有一个输入字段,所以我使用了这个

      .woocommerce .quantity input.qty {
      -moz-appearance: textfield !important;
       }
      

      更新我的答案以显示选择而不是输入

      我想我发现解决方案与FF31兼容
      /* Try this in FF30+ Covers up the arrow, turns off the background */ 
      /* still lets you style the border around the image and allows selection on the arrow */
      
      
      @-moz-document url-prefix() {
      
          .yourClass select {
              text-overflow: '';
              text-indent: -1px;
              -moz-appearance: none;
              background: none;
      
          }
      
          /*fix for popup in FF30 */
          .yourClass:after {
              position: absolute;
              margin-left: -27px;
              height: 22px;
              border-top-right-radius: 6px;
              border-bottom-right-radius: 6px;
              content: url('../images/yourArrow.svg');
              pointer-events: none;
              overflow: hidden;
              border-right: 1px solid #yourBorderColour;
              border-top: 1px solid #yourBorderColour;
              border-bottom: 1px solid #yourBorderColour; 
          }
      }
      
      这里有两个选项在这个链接中得到了很好的解释:


      我使用了选项1: Rodrigo Ludgero在Github上发布了此修复程序,包括一个在线演示。我在Firefox31.0上测试了这个演示,它似乎工作正常。测试铬和IE以及。以下是html代码:

      <!DOCTYPE html>
      <html>
          <head>
          <meta charset="utf-8">
          <title>Custom Select</title>
          <link href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
          </head>
          <body>
              <div class="custom-select fa-caret-down">
                  <select name="" id="">
                      <option value="">Custom Select</option>
                      <option value="">Custom Select</option>
                      <option value="">Custom Select</option>
                  </select>
              </div>
          </body>
      </html>
      



      它对我很有用

      我正在设计select的样式,就像这样

      <select style="     -moz-appearance: radio-container;
                      -webkit-appearance: none;
                       appearance: none;
      ">
      
      您还可以: .yourclass::-ms展开{显示:无; } .yourid::-ms exapan{display:none;
      }乔丹·杨的答案是最好的。但是如果你不能或者不想改变你的HTML,你可以考虑只删除自定义的向下箭头,而不是Firefox的默认箭头——但是没有双箭头。不理想,但这是一个很好的快速修复,它不会添加任何HTML,也不会影响您在其他浏览器中的自定义外观

      <select>
        <option value='1'> First option </option>
        <option value='2'> Second option </option>
      </select>
      

      黑客攻击。。。在我测试过的所有浏览器(Safari、Firefox、Chrome)中都能使用的解决方案。没有任何IEs,因此如果您可以测试和评论:

      <div class="wrapper">
        <select>
          <option>123456789</option>
          <option>234567890</option>
        </select>
      </div>
      

      我使用:after元素来覆盖丑陋的箭头。因为select不支持:after,所以我需要一个包装器。 现在,如果你点击箭头,下拉列表将不会注册它。。。除非您的浏览器支持
      指针事件:无
      ,除IE10之外的所有人都支持:

      所以对我来说,它是完美的——一个不错的、干净的、低头痛的解决方案,至少与包括javascript的所有其他选项相比是如此

      tl;医生:

      <label class="wrapper">This label wraps the select
          <div class="button custom-select ff-hack">
              <select>
                  <option>Apples</option>
                  <option>Bananas</option>
                  <option>Grapes</option>
                  <option>Oranges</option>
                  <option>A very long option name to test wrapping</option>
              </select>
          </div>
      </label>
      
      /* Label styles: style as needed */
      label {
        display:block;
        margin-top:2em;
        font-size: 0.9em;
        color:#777;
      }
      
      /* Container used for styling the custom select, the buttom class below adds the bg gradient, corners, etc. */
      .custom-select {
        position: relative;
        display:block;
        margin-top:0.5em;
        padding:0;
      }
      
      /* These are the "theme" styles for our button applied via separate button class, style as you like */
      .button {
        border: 1px solid #bbb;
        border-radius: .3em;
        box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
        background: #f3f3f3; /* Old browsers */
        background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%); /* FF3.6+ */
        background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e5e5e5)); /* Chrome,Safari4+ */
        background: -webkit-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* Chrome10+,Safari5.1+ */
        background: -o-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* Opera 11.10+ */
        background: -ms-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* IE10+ */
        background: linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%); /* W3C */
      }
      
      /* This is the native select, we're making everything but the text invisible so we can see the button styles in the wrapper */
      .custom-select select {
        width:100%;
        margin:0;
        background:none;
        border: 1px solid transparent;
        outline: none;
        /* Prefixed box-sizing rules necessary for older browsers */
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        /* Remove select styling */
        appearance: none;
        -webkit-appearance: none;
        /* Font size must the 16px or larger to prevent iOS page zoom on focus */
        font-size:16px;
        /* General select styles: change as needed */
        font-family: helvetica, sans-serif;
        font-weight: bold;
        color: #444;
        padding: .6em 1.9em .5em .8em;
        line-height:1.3;
      }
      
      
      /* Custom arrow sits on top of the select - could be an image, SVG, icon font, etc. or the arrow could just baked into the bg image on the select. Note this si a 2x image so it will look bad in browsers that don't support background-size. In production, you'd handle this resolution switch via media query but this is a demo. */
      
      .custom-select::after {
        content: "";
        position: absolute;
        width: 9px;
        height: 8px;
        top: 50%;
        right: 1em;
        margin-top:-4px;
        background-image: url(http://filamentgroup.com/files/select-arrow.png);
        background-repeat: no-repeat;
        background-size: 100%;
        z-index: 2;
        /* These hacks make the select behind the arrow clickable in some browsers */
        pointer-events:none;
      }
      
      
      /* Hover style */
      .custom-select:hover {
        border:1px solid #888;
      }
      
      /* Focus style */
      .custom-select select:focus {
        outline:none;
        box-shadow: 0 0 1px 3px rgba(180,222,250, 1);
        background-color:transparent;
        color: #222;
        border:1px solid #aaa;
      }
      
      /* Set options to normal weight */
      .custom-select option {
        font-weight:normal;
      }
      
      如果IE10(或更低版本)用户单击箭头,它将无法工作。对我来说已经足够好了…

      更进一步,这个问题现在已经存在,并且针对35版

      对于那些有愿望的人,这里有一个托德·帕克(Todd Parker)的解决方案,引用于库尼亚大学的博客,该解决方案在今天起作用:

      HTML:

      <label class="wrapper">This label wraps the select
          <div class="button custom-select ff-hack">
              <select>
                  <option>Apples</option>
                  <option>Bananas</option>
                  <option>Grapes</option>
                  <option>Oranges</option>
                  <option>A very long option name to test wrapping</option>
              </select>
          </div>
      </label>
      
      /* Label styles: style as needed */
      label {
        display:block;
        margin-top:2em;
        font-size: 0.9em;
        color:#777;
      }
      
      /* Container used for styling the custom select, the buttom class below adds the bg gradient, corners, etc. */
      .custom-select {
        position: relative;
        display:block;
        margin-top:0.5em;
        padding:0;
      }
      
      /* These are the "theme" styles for our button applied via separate button class, style as you like */
      .button {
        border: 1px solid #bbb;
        border-radius: .3em;
        box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
        background: #f3f3f3; /* Old browsers */
        background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%); /* FF3.6+ */
        background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e5e5e5)); /* Chrome,Safari4+ */
        background: -webkit-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* Chrome10+,Safari5.1+ */
        background: -o-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* Opera 11.10+ */
        background: -ms-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* IE10+ */
        background: linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%); /* W3C */
      }
      
      /* This is the native select, we're making everything but the text invisible so we can see the button styles in the wrapper */
      .custom-select select {
        width:100%;
        margin:0;
        background:none;
        border: 1px solid transparent;
        outline: none;
        /* Prefixed box-sizing rules necessary for older browsers */
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        /* Remove select styling */
        appearance: none;
        -webkit-appearance: none;
        /* Font size must the 16px or larger to prevent iOS page zoom on focus */
        font-size:16px;
        /* General select styles: change as needed */
        font-family: helvetica, sans-serif;
        font-weight: bold;
        color: #444;
        padding: .6em 1.9em .5em .8em;
        line-height:1.3;
      }
      
      
      /* Custom arrow sits on top of the select - could be an image, SVG, icon font, etc. or the arrow could just baked into the bg image on the select. Note this si a 2x image so it will look bad in browsers that don't support background-size. In production, you'd handle this resolution switch via media query but this is a demo. */
      
      .custom-select::after {
        content: "";
        position: absolute;
        width: 9px;
        height: 8px;
        top: 50%;
        right: 1em;
        margin-top:-4px;
        background-image: url(http://filamentgroup.com/files/select-arrow.png);
        background-repeat: no-repeat;
        background-size: 100%;
        z-index: 2;
        /* These hacks make the select behind the arrow clickable in some browsers */
        pointer-events:none;
      }
      
      
      /* Hover style */
      .custom-select:hover {
        border:1px solid #888;
      }
      
      /* Focus style */
      .custom-select select:focus {
        outline:none;
        box-shadow: 0 0 1px 3px rgba(180,222,250, 1);
        background-color:transparent;
        color: #222;
        border:1px solid #aaa;
      }
      
      /* Set options to normal weight */
      .custom-select option {
        font-weight:normal;
      }
      
      从Firefox35开始,您已经在代码中编写了“
      -moz外观:none
      ”,最后根据需要删除箭头按钮

      自该版本以来,问题已得到解决。

      重要更新: 从Firefox V35开始,外观属性现在可以工作了!! 发件人:

      使用组合框上的
      -moz外观
      none
      值,现在删除 下拉按钮(错误649849)

      现在,为了隐藏默认箭头,只需在select元素上添加以下规则即可:

      select {
         -webkit-appearance: none;
         -moz-appearance: none;
         appearance: none;
      }
      

      选择{
      利润率:50像素;
      边框:1px实心#111;
      背景:透明;
      宽度:150px;
      填充物:5px;
      字体大小:16px;
      边框:1px实心#ccc;
      高度:34px;
      -webkit外观:无;
      -moz外观:无;
      外观:无;
      }
      
      苹果
      菠萝
      巧克力
      烙饼
      
      如果你不介意玩弄JS,我编写了一个小的jQuery插件来帮助你。有了它,您就不必担心供应商前缀了

       $.fn.magicSelectBox = function() {
        var $e = this;
      
        $e.each(function() {
          var $select = $(this);
      
          var $magicbox = $('<div></div>').attr('class', $select.attr('class')).attr('style', $select.attr('style')).addClass('magicbox');
          var $innermagicbox = $('<div></div>').css({
            position: 'relative',
            height: '100%'
          });
          var $text = $('<span></span>').css({
            position: 'absolute'
          }).text($select.find("option:selected").text());
      
          $select.attr('class', null).css({
            width: '100%',
            height: '100%',
            opacity: 0,
            position: 'absolute'
          }).on('change', function() {
            $text.text($select.find("option:selected").text());
          });
      
          $select.parent().append($magicbox);
          $innermagicbox.append($text, $select);
          $magicbox.append($innermagicbox);
        });
      
        return $e;
      };
      
      $.fn.magicSelectBox=函数(){
      var$e=此;
      $e.each(函数(){
      变量$select=$(此变量);
      变量$magicbox=$('').attr('class',$select.attr('clas
      
      select {
          /*for firefox*/
          -moz-appearance: none;
          /*for chrome*/
          -webkit-appearance:none;
          text-indent: 0.01px;
          text-overflow: '';
      }
      /*for IE10*/
      select::-ms-expand {
          display: none;
      }
      
      /*
       * Jquery Code for Removing Dropdown Arrow.
       * @by: North Web Studio
       */
      (function($) {
        Drupal.behaviors.nwsJS = {
          attach: function(context, settings) {
            $('.form-select').once('nws-arrow', function() {
              $wrap_width = $(this).outerWidth();
              $element_width = $wrap_width + 20;
              $(this).css('width', $element_width);
              $(this).wrap('<div class="nws-select"></div>');
              $(this).parent('.nws-select').css('width', $wrap_width);
            });
          }
        };
      })(jQuery);
      
      /*
       * CSS Code for Removing Dropdown Arrow.
       * @by: North Web Studio
       */
      
      .nws-select {
        border: 1px solid #ccc;
        overflow: hidden;
        background: url('../images/icon.png') no-repeat 95% 50%;
      }
      .nws-select .form-select {
        border: none;
        background: transparent;
      }
      
      select {
      -moz-appearance: textfield !important;
          }
      
      .woocommerce .quantity input.qty {
      -moz-appearance: textfield !important;
       }
      
      /* Try this in FF30+ Covers up the arrow, turns off the background */ 
      /* still lets you style the border around the image and allows selection on the arrow */
      
      
      @-moz-document url-prefix() {
      
          .yourClass select {
              text-overflow: '';
              text-indent: -1px;
              -moz-appearance: none;
              background: none;
      
          }
      
          /*fix for popup in FF30 */
          .yourClass:after {
              position: absolute;
              margin-left: -27px;
              height: 22px;
              border-top-right-radius: 6px;
              border-bottom-right-radius: 6px;
              content: url('../images/yourArrow.svg');
              pointer-events: none;
              overflow: hidden;
              border-right: 1px solid #yourBorderColour;
              border-top: 1px solid #yourBorderColour;
              border-bottom: 1px solid #yourBorderColour; 
          }
      }
      
      <!DOCTYPE html>
      <html>
          <head>
          <meta charset="utf-8">
          <title>Custom Select</title>
          <link href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
          </head>
          <body>
              <div class="custom-select fa-caret-down">
                  <select name="" id="">
                      <option value="">Custom Select</option>
                      <option value="">Custom Select</option>
                      <option value="">Custom Select</option>
                  </select>
              </div>
          </body>
      </html>
      
      .custom-select {
          background-color: #fff;
          border: 1px solid #ccc;
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box;
          margin: 0 0 2em;
          padding: 0;
          position: relative;
          width: 100%;
          z-index: 1;
      }
      
      .custom-select:hover {
          border-color: #999;
      }
      
      .custom-select:before {
          color: #333;
          display: block;
          font-family: 'FontAwesome';
          font-size: 1em;
          height: 100%;
          line-height: 2.5em;
          padding: 0 0.625em;
          position: absolute;
          top: 0;
          right: 0;
          text-align: center;
          width: 1em;
          z-index: -1;
      }
      
      .custom-select select {
          background-color: transparent;
          border: 0 none;
          box-shadow: none;
          color: #333;
          display: block;
          font-size: 100%;
          line-height: normal;
          margin: 0;
          padding: .5em;
          width: 100%;
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box;
          -webkit-appearance: none;
          -moz-appearance: none;
          appearance: none;
      }
      
      .custom-select select::-ms-expand {
          display: none; /* to ie 10 */
      }
      
      .custom-select select:focus {
          outline: none;
      }
      /* little trick for custom select elements in mozilla firefox  17/06/2014 @rodrigoludgero */
      :-moz-any(.custom-select):before {
          background-color: #fff; /* this is necessary for overcome the caret default browser */
          pointer-events: none; 
          z-index: 1; /* this is necessary for overcome the pseudo element */
      }
      
      <select style="     -moz-appearance: radio-container;
                      -webkit-appearance: none;
                       appearance: none;
      ">
      
       select::-ms-expand {
       display: none;
      }
      /*to remove in all selects*/
      
      <select>
        <option value='1'> First option </option>
        <option value='2'> Second option </option>
      </select>
      
      select {
         background-image: url('images/select_arrow.gif');
         background-repeat: no-repeat;
         background-position: right center;
         padding-right: 20px;
      }
      
      @-moz-document url-prefix() {
        select {
          background-image: none;
        }
      }
      
      <div class="wrapper">
        <select>
          <option>123456789</option>
          <option>234567890</option>
        </select>
      </div>
      
      .wrapper { position:relative; width:200px; }
      .wrapper:after {
        content:"";
        display: block;
        position: absolute;
        top:1px; height:28px;
        right:1px; width:16px;
        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAcCAYAAACH81QkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODgwMTE3NDA3MjA2ODExOEE2RENENTU2MTFGMEQ1RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNDE5NDQ3Nzc5ODIxMUU0OEU0M0JFMzgzMkUxOTk3MiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNDE5NDQ3Njc5ODIxMUU0OEU0M0JFMzgzMkUxOTk3MiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk4MDExNzQwNzIwNjgxMThBNkRDRDU1NjExRjBENUQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDg4MDExNzQwNzIwNjgxMThBNkRDRDU1NjExRjBENUQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4o7anbAAAAjklEQVR42uzUsQ3EIAwFUPty7MBOsAoVC7EVYgyUSFcdzn0iJYquAZGSLxnLzatsWERWGsvGP0QGkc+LxvN9AqGJTKQJMcYQM/+VtbZdiTGKUgr3cxbmlJI0ZiW83vsbgrkjB5JzFq11BdAxdyNICKEi6J25kFKKOOdq70We+JS2ufYTacjyxrKMLtsuwAAznzqGLHX9BwAAAABJRU5ErkJggg==);
      
        pointer-events: none;
      }
      
      select {
        width: 100%;
        padding:3px;
        margin: 0;
        border-radius: 0;
        border:1px solid black;
        outline:none;
        display: inline-block;
        -webkit-appearance:none;
        -moz-appearance:none;
        appearance:none;
        cursor:pointer;
        float:none!important;
        background:white;
      
        font-size:13px;
        line-height: 1em;
        height: 30px;
        padding:6px 20px 6px 10px;
      }
      
      <label class="wrapper">This label wraps the select
          <div class="button custom-select ff-hack">
              <select>
                  <option>Apples</option>
                  <option>Bananas</option>
                  <option>Grapes</option>
                  <option>Oranges</option>
                  <option>A very long option name to test wrapping</option>
              </select>
          </div>
      </label>
      
      /* Label styles: style as needed */
      label {
        display:block;
        margin-top:2em;
        font-size: 0.9em;
        color:#777;
      }
      
      /* Container used for styling the custom select, the buttom class below adds the bg gradient, corners, etc. */
      .custom-select {
        position: relative;
        display:block;
        margin-top:0.5em;
        padding:0;
      }
      
      /* These are the "theme" styles for our button applied via separate button class, style as you like */
      .button {
        border: 1px solid #bbb;
        border-radius: .3em;
        box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
        background: #f3f3f3; /* Old browsers */
        background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%); /* FF3.6+ */
        background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e5e5e5)); /* Chrome,Safari4+ */
        background: -webkit-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* Chrome10+,Safari5.1+ */
        background: -o-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* Opera 11.10+ */
        background: -ms-linear-gradient(top, #ffffff 0%,#e5e5e5 100%); /* IE10+ */
        background: linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%); /* W3C */
      }
      
      /* This is the native select, we're making everything but the text invisible so we can see the button styles in the wrapper */
      .custom-select select {
        width:100%;
        margin:0;
        background:none;
        border: 1px solid transparent;
        outline: none;
        /* Prefixed box-sizing rules necessary for older browsers */
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        /* Remove select styling */
        appearance: none;
        -webkit-appearance: none;
        /* Font size must the 16px or larger to prevent iOS page zoom on focus */
        font-size:16px;
        /* General select styles: change as needed */
        font-family: helvetica, sans-serif;
        font-weight: bold;
        color: #444;
        padding: .6em 1.9em .5em .8em;
        line-height:1.3;
      }
      
      
      /* Custom arrow sits on top of the select - could be an image, SVG, icon font, etc. or the arrow could just baked into the bg image on the select. Note this si a 2x image so it will look bad in browsers that don't support background-size. In production, you'd handle this resolution switch via media query but this is a demo. */
      
      .custom-select::after {
        content: "";
        position: absolute;
        width: 9px;
        height: 8px;
        top: 50%;
        right: 1em;
        margin-top:-4px;
        background-image: url(http://filamentgroup.com/files/select-arrow.png);
        background-repeat: no-repeat;
        background-size: 100%;
        z-index: 2;
        /* These hacks make the select behind the arrow clickable in some browsers */
        pointer-events:none;
      }
      
      
      /* Hover style */
      .custom-select:hover {
        border:1px solid #888;
      }
      
      /* Focus style */
      .custom-select select:focus {
        outline:none;
        box-shadow: 0 0 1px 3px rgba(180,222,250, 1);
        background-color:transparent;
        color: #222;
        border:1px solid #aaa;
      }
      
      /* Set options to normal weight */
      .custom-select option {
        font-weight:normal;
      }
      
      select {
         -webkit-appearance: none;
         -moz-appearance: none;
         appearance: none;
      }
      
       $.fn.magicSelectBox = function() {
        var $e = this;
      
        $e.each(function() {
          var $select = $(this);
      
          var $magicbox = $('<div></div>').attr('class', $select.attr('class')).attr('style', $select.attr('style')).addClass('magicbox');
          var $innermagicbox = $('<div></div>').css({
            position: 'relative',
            height: '100%'
          });
          var $text = $('<span></span>').css({
            position: 'absolute'
          }).text($select.find("option:selected").text());
      
          $select.attr('class', null).css({
            width: '100%',
            height: '100%',
            opacity: 0,
            position: 'absolute'
          }).on('change', function() {
            $text.text($select.find("option:selected").text());
          });
      
          $select.parent().append($magicbox);
          $innermagicbox.append($text, $select);
          $magicbox.append($innermagicbox);
        });
      
        return $e;
      };
      
      select {
          /*for firefox*/
          -moz-appearance: none;
          /*for chrome*/
          -webkit-appearance:none;
      }