Xóa bóng đầu vào iOS


91

Trên iOS (Safari 5), tôi phải làm theo đối với phần tử đầu vào (bóng trên cùng bên trong):

thí dụ

Tôi muốn loại bỏ bóng trên cùng, lỗi -webkit-appearancekhông lưu.

Phong cách hiện tại là:

input {    
    border-radius: 15px;
    border: 1px dashed #BBB;
    padding: 10px;
    line-height: 20px;
    text-align: center;
    background: transparent;
    outline: none;    
    -webkit-appearance: none;
    -moz-appearance: none;
}

3
Một lưu ý nhỏ là bạn nên cẩn thận cài đặt '-webkit-ngoại hình' trên một inputbộ chọn chung . Nó có thể gây ra các hiệu ứng không mong muốn trên các nút radio và hộp kiểm.
davidpauljunior

Cảm ơn tôi sử dụng nó trên phần tử
WHITECOLOR

Câu trả lời:


203

Bạn sẽ cần sử dụng -webkit-appearance: none;để ghi đè các kiểu IOS mặc định. Tuy nhiên, chỉ chọn inputthẻ trong CSS sẽ không ghi đè các kiểu mặc định của IOS, vì IOS thêm các kiểu của nó bằng cách sử dụng bộ chọn thuộc tính input[type=text]. Do đó, CSS của bạn sẽ cần sử dụng bộ chọn thuộc tính để ghi đè các kiểu CSS IOS mặc định đã được thiết lập trước.

Thử đi:

input[type=text] {   
    /* Remove First */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

    /* Then Style */
    border-radius: 15px;
    border: 1px dashed #BBB;
    padding: 10px;
    line-height: 20px;
    text-align: center;
    background: transparent;
    outline: none;    
}

Liên kết hữu ích:

Bạn có thể tìm hiểu thêm về appearancetại đây:

http://css-tricks.com/almanac/properties/a/appearance/

Nếu bạn muốn tìm hiểu thêm về bộ chọn thuộc tính CSS, bạn có thể tìm thấy một bài viết rất nhiều thông tin tại đây:

http://css-tricks.com/attribute-selectors/


3
Bạn cũng có thể muốn áp dụng các phong cách này cho input[type=password].
Rockallite 10/1117

1
Bài đăng này đã gần 4 năm tuổi. Cái này có cần cập nhật không?

1
Bộ chọn Safari hiện đang được sử dụng là textarea, input[type="range"], input, input:matches([type="password"], [type="search"])- chỉ cần sử dụng nó và nó sẽ hoạt động cho mọi trường hợp.
da_berni

Đối với tôi nó chỉ làm việc khi tôi áp dụng !importantvào appearance. Cũng appearancenên làm việc cho selects.
RuiVBoas

30
background-clip: padding-box;

Có vẻ như để loại bỏ các bóng tối.

Như @davidpauljunior đã đề cập; hãy cẩn thận cài đặt -webkit-appearancetrên bộ chọn đầu vào chung.


1
background-clip: padding-box;sẽ loại bỏ bóng trong trường nhập văn bản trên iOS. Ví dụ: xem codepen.io/jstnrs/pen/YXBLVN (đảm bảo mở URL trên thiết bị iOS).
jstnrs

3
Điều này hoạt động, nhưng có ai biết nó hoạt động như thế nào không? Cảm ơn.
Nostalg.io

không làm việc cho tôi nhưng -webkit-appearance: none;đã làm.
Lefi Tarik

5

webkit sẽ xóa tất cả các thuộc tính

-webkit-appearance: none;

Thử sử dụng thuộc tính box-shadow để loại bỏ bóng trên phần tử đầu vào của bạn

box-shadow: none !important;

4

Tôi đã cố gắng đưa ra một giải pháp mà a.) Hoạt độngb.) Tôi có thể hiểu tại sao nó hoạt động .

Tôi biết rằng bóng cho đầu vào (và đường viền tròn cho đầu vào [type = "search"]) đến từ hình nền.

Vì vậy, rõ ràng thiết lập background-image: nonelà nỗ lực đầu tiên của tôi, nhưng điều này có vẻ không hiệu quả.

Cài đặt background-image: url()hoạt động, nhưng tôi vẫn lo lắng về việc có một trống url(). Thay vào đó, nó hiện tại chỉ là một cảm giác tồi tệ.

background-clip: padding-box; dường như cũng hoạt động tốt, nhưng ngay cả sau khi đọc tài liệu về "background-clip", tôi không hiểu tại sao điều này lại hoàn toàn loại bỏ nền.

Giải pháp yêu thích của tôi:

background-image: linear-gradient(transparent, transparent);

Đây là css hợp lệ và tôi hiểu nó hoạt động như thế nào.


@BugWhisperer Nó hoạt động trong iOS 12.4 đối với tôi: codepen.io/receter/pen/ymMzRG Bạn có thể cung cấp thêm chi tiết không?
Andreas Riedmüller

không làm việc cho tôi, nhưng background-clip: padding-box !importanthiệu quả.
oldboy,

@BugWhisperer Bạn có thể kiểm tra xem các ví dụ trên codepen.io/receter/pen/ymMzRG có phù hợp với bạn không? Ngoài ra, bạn có thể thử nếu background-image: linear-gradient(transparent, transparent) !important;làm việc cho bạn? Tôi rất vui khi biết vấn đề ở đây là gì.
Andreas Riedmüller,

tiếc là tôi vừa cập nhật điện thoại của mình. tất cả trong số họ làm việc trong Safari và Chrome thông qua codepen, nhưng tôi tự hỏi, nếu các bạn sẽ nhận được kết quả tương tự nếu bạn đã thử nghiệm nó natively
Oldboy

2

Trong khi câu trả lời được chấp nhận là một khởi đầu tốt, như những người khác đã chỉ ra, nó chỉ hoạt động cho đầu vào mà type"text". Có vô số kiểu đầu vào khác cũng hiển thị dưới dạng hộp văn bản trên iOS và vì vậy chúng ta cần mở rộng quy tắc này để tính đến những kiểu khác này.

Đây là CSS tôi đang sử dụng để loại bỏ các trường văn bản đầu vào và vùng văn bản của bóng bên trong, trong khi vẫn giữ kiểu dáng mặc định cho các nút, hộp kiểm, thanh trượt phạm vi, menu thả xuống ngày / giờ và nút radio, tất cả đều được tác giả sử dụng <input>thẻ khiêm tốn .

textarea,
input:matches(
  [type="email"],
  [type="number"],
  [type="password"],
  [type="search"],
  [type="tel"],
  [type="text"],
  [type="url"]
) {
  -webkit-appearance: none;
}

-7

Điều này làm việc tốt hơn cho tôi. Thêm vào đó, nó có nghĩa là tôi không phải áp dụng nó cho mọi loại đầu vào khác nhau (tức là văn bản, điện thoại, email, v.v.).

* {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
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.