Làm cách nào để xóa biểu tượng mũi tên mặc định khỏi danh sách thả xuống (chọn phần tử)?


297

Tôi muốn xóa mũi tên thả xuống khỏi <select>phần tử HTML . Ví dụ:

<select style="width:30px;-webkit-appearance: none;">
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    ...
</select>

Làm thế nào để làm điều đó trong Opera, Firefox và Internet Explorer?

nhập mô tả hình ảnh ở đây


Một số câu trả lời / hack để ẩn nó trong Firefox - stackoverflow.com/questions/5912791/
Kẻ

2
ngoại hình #slectType { -webkit-appearance: none; appearance: none /*menulist*/ ! Các trình; max-width: 300px; line-height: 0px;} input[type='text'], select {max-height: 30px;max-width: 300px; text-align-last: center; /*text-indent: 5px;*/} button:hover {color: #FFF;background-color: #566977;box-shadow:none;border-color: #759AB5;} #errorMSG{z-index: 2147483647;} duyệt quan trọng [CH: -webkit, FF: -moz, IE: -ms, Oprea: -o];
Yash

1
Bản sao có thể có của Xóa Chọn mũi tên trên IE
Muath

Bản sao ẩn
Damjan Pavlica

Câu trả lời:


383

Không cần hack hay tràn. Có một yếu tố giả cho mũi tên thả xuống trên IE:

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

22
bởi vì câu hỏi là làm thế nào để loại bỏ mũi tên thả xuống trong IE. IE9 không có chức năng này, nhưng nó hoạt động trong IE10. vì vậy trừ khi bạn đang sử dụng Windows XP, bạn vẫn nên sử dụng IE10. IE11 sắp hết. tùy chọn khác là một hack CSS xấu xí để ẩn nút thả xuống thực tế và làm cho riêng bạn.
nrutas

2
liên kết ở đây là hack xấu xí để che giấu tràn
nrutas

1
Hoạt động trong IE11. Gracias!
ConorLuddy

Điều này đã không làm việc trong Firefox. Sử dụng giải pháp của Varun Rathore dưới đây cho Firefox.
MostPitt

1
cái này chỉ dành cho IE. tất nhiên nó sẽ không hoạt động trong Firefox.
nrutas

289

Các giải pháp được đề cập trước đây hoạt động tốt với chrome nhưng không phải trên Firefox.

Tôi đã tìm thấy một Giải pháp hoạt động tốt cả trong Chrome và Firefox (không phải trên IE). Thêm các thuộc tính sau vào CSS cho CHỌN của bạn và điều chỉnh lề trên cho phù hợp với nhu cầu của bạn.

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    text-indent: 1px;
    text-overflow: '';
}

Hi vọng điêu nay co ich :)


9
Thủ thuật này đã ngừng hoạt động trên Firefox kể từ phiên bản 31 (trong bản dựng Nightly kể từ tháng 5 năm 2014). Chúng ta hãy xem những gì có thể được thực hiện trong khi đó. Ý chính này tôi đã viết có toàn bộ mức thấp: gist.github.com/joaocunha/6273016
João Cunha

Phương pháp của Joäo Cunha đã được kiểm tra và sử dụng thành công. Khi bạn kiểm tra, đừng quên mở liên kết trong firefox!
NoobishPro

Nó làm việc cho tôi. Tôi muốn sử dụng nó cho wkhtmltopdf để tạo pdf từ html. Cảm ơn
Faisal

187

Cách đơn giản để loại bỏ mũi tên thả xuống từ chọn

select {
  /* for Firefox */
  -moz-appearance: none;
  /* for Chrome */
  -webkit-appearance: none;
}

/* For IE10 */
select::-ms-expand {
  display: none;
}
<select>
  <option>2000</option>
  <option>2001</option>
  <option>2002</option>
</select>


4
Tôi chỉ sử dụng appearance: nonecho Chrome và Firefox Quantum (v59 trở lên). Tức là không cần tiền tố nhà cung cấp nữa .
CPHPython

2
@CPHPython Hầu hết các trình duyệt trong nhận xét này vẫn có thẻ "hỗ trợ một phần với tiền tố" trên chúng ...
Dan

2
@CPHPython bạn cần cài đặt Autoprefixer trong dự án của bạn để không được appearance: nonechuẩn bị hoạt động. Hầu hết các trình duyệt vẫn cần tiền tố.
Daniel Tonon

@DanielTonon oh, có lẽ tôi đã sử dụng một số gói postcss như thế. Tôi không nhớ chính xác, nhưng tôi nghĩ rằng tôi đã kiểm tra trình kiểm tra của trình duyệt trước khi bình luận.
CPHPython

58

Thử cái này :

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 2px 30px 2px 2px;
    border: none;
}

Thùng rác: http://jsbin.com/aniyu4/2/edit

Nếu bạn sử dụng Internet Explorer:

select {
    overflow:hidden;
    width: 120%;
}

Hoặc bạn có thể sử dụng Choosen: http://harvesthq.github.io/chosen/


1
Bạn đã kiểm tra JSBin của mình trong IE và firefox chưa? Tôi vẫn thấy mũi tên thả xuống tích hợp trong cả hai.
Martin Smith

Kiểm tra với Choosen, tôi nghĩ đó là sự lựa chọn tốt nhất.
EpokK

"Nếu bạn sử dụng Internet Explorer"? Bạn cần xem xét phần lớn dân số sử dụng IE và phục vụ họ bất kể
Danny Mahoney

Số liệu thống kê người dùng trang web của chúng tôi như sau: 5,21% IE hoặc 2,37% Edge
nu everest

"Nếu bạn sử dụng IE" sẽ chính xác, sẽ phù hợp hơn khi nói "Nếu bạn cần hỗ trợ IE" nhưng trong thời đại ngày nay, công nghệ của bạn nên được nhắm mục tiêu đúng đối tượng của bạn, nếu bạn đang chạy web Nhà phát triển nhắm mục tiêu trang web sau đó tôi nghi ngờ bạn sẽ cần hỗ trợ BẤT K version phiên bản IE nào.
Brandito

17

Thử cái này:

HTML:

<div class="customselect">
    <select>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    </select>
</div>

CSS:

.customselect {
    width: 70px;
    overflow: hidden;
}

.customselect select {
   width: 100px;
   -moz-appearance: none;
   -webkit-appearance: none;
   appearance: none;
}

15

Hãy thử nó nó hoạt động với tôi,

<style>
    select{
        border: 0 !important;  /*Removes border*/
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        text-overflow:'';
        text-indent: 0.01px; /* Removes default arrow from firefox*/
        text-overflow: "";  /*Removes default arrow from firefox*/
    }
    select::-ms-expand {
        display: none;
    }
    .select-wrapper
    {
        padding-left:0px;
        overflow:hidden;
    }
</style>
    
<div class="select-wrapper">
     <select> ... </select>
</div>

Bạn không thể ẩn nhưng sử dụng ẩn tràn bạn thực sự có thể làm cho nó biến mất.


6

Chỉ muốn hoàn thành chủ đề. Để rõ ràng điều này không hoạt động trong IE9, tuy nhiên chúng ta có thể làm điều đó bằng thủ thuật css nhỏ.

<div class="customselect">
    <select>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    </select>
</div>

.customselect {
    width: 80px;
    overflow: hidden;
   border:1px solid;
}

.customselect select {
   width: 100px;
   border:none;
  -moz-appearance: none;
   -webkit-appearance: none;
   appearance: none;
}

5

Như tôi đã trả lời trong Xóa Chọn mũi tên trên IE

Trong trường hợp bạn muốn sử dụng lớp và giả lớp:

.simple-control là lớp css của bạn

:disabled là lớp giả

select.simple-control:disabled{
         /*For FireFox*/
        -webkit-appearance: none;
        /*For Chrome*/
        -moz-appearance: none;
}

/*For IE10+*/
select:disabled.simple-control::-ms-expand {
        display: none;
}

4
select{
padding: 11px 50px 11px 10px;
background: rgba(255,255,255,1);
border-radius: 7px;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
color: #8ba2d4;

}


2

Bạn không thể làm điều này với sự hỗ trợ trình duyệt chéo đầy đủ chức năng.

Hãy thử lấy một div 50 pixel giả sử và thả nổi một biểu tượng thả xuống mong muốn của bạn ở bên phải của điều này

Bây giờ trong div đó, có thể thêm thẻ chọn có chiều rộng 55 pixel (có thể nhiều hơn chiều rộng của ngăn chứa)

Tôi nghĩ bạn sẽ có được những gì bạn muốn.

Trong trường hợp bạn không muốn bất kỳ biểu tượng thả nào ở bên phải, chỉ cần thực hiện tất cả các bước ngoại trừ làm nổi hình ảnh ở bên phải. Đặt phác thảo: 0 về tiêu điểm cho thẻ chọn. đó là nó


1
Tôi không thể nhận được sự giúp đỡ từ những gợi ý này. Bất cứ ai có thể cung cấp mã đầy đủ ở đây? Cảm ơn bạn.
dùng2301515

2

có một thư viện có tên DropKick.js thay thế các menu thả xuống chọn thông thường bằng HTML / CSS để bạn có thể hoàn toàn tạo kiểu và kiểm soát chúng bằng javascript. http://dropkickjs.com/


2

Hoạt động cho tất cả các trình duyệt và tất cả các phiên bản:

Mã não

jQuery(document).ready(function () {    
    var widthOfSelect = $("#first").width();
    widthOfSelect = widthOfSelect - 13;
    //alert(widthOfSelect);
    jQuery('#first').wrap("<div id='sss' style='width: "+widthOfSelect+"px; overflow: hidden; border-right: #000 1px solid;' width=20></div>");
});

HTML

<select class="first" id="first">
  <option>option1</option>
  <option>option2</option>
  <option>option3</option>
</select>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.