Màu nền CSS trong suốt


89

Tôi muốn làm cho nền của menu danh sách biến mất bằng cách sử dụng độ mờ mà không ảnh hưởng đến phông chữ. Có thể với CSS3 không?


Ừ chắc chắn! Bạn có thể làm điều đó bằng thủ thuật này: stackoverflow.com/a/15351192/366884 Chúc may mắn
Saud Alfadhli

Câu trả lời:


116

bây giờ bạn có thể sử dụng rgba trong các thuộc tính CSS như sau:

.class {
    background: rgba(0,0,0,0.5);
}

0,5 là độ trong suốt , thay đổi các giá trị theo thiết kế của bạn.

Bản demo trực tiếp http://jsfiddle.net/EeAaB/

thêm thông tin http://css-tricks.com/rgba-browser-support/


Cảm ơn bạn. nhưng tôi muốn diappear dấu mặc định mũi tên trong menu danh sách mà không ảnh hưởng đến font chữ
Saranya

1
có cách nào để viết điều này ngắn hơn, như thế rgba('black', 0.5)nào?
phil294

44

Hãy ghi nhớ ba tùy chọn này (bạn muốn # 3):

1) Toàn bộ phần tử là trong suốt:

visibility: hidden;

2) Toàn bộ phần tử hơi trong suốt:

opacity: 0.0 - 1.0;

3) Chỉ nền của phần tử là trong suốt:

background-color: transparent;

14

vâng, điều đó có thể. chỉ cần sử dụng cú pháp rgba cho màu nền của bạn.

.menue{
  background-color: rgba(255, 0, 0, 0.5); //semi-transparent red
}

2
Chào! Bạn có biết gì về định nghĩa CSS 'background-color' với kênh aplha, nhưng bằng cách sử dụng giá trị #HEX cho màu sắc không?
Piotr Stępniewski

@ PiotrStępniewski Có lẽ đã muộn, nhưng bây giờ có một cú pháp như vậy (xem câu trả lời của tôi )
FZs

10

Đây là một lớp mẫu sử dụng CSS có tên là màu:

.semi-transparent {
  background: yellow;
  opacity: 0.25;
}

Điều này thêm một nền có 25% mờ đục (có màu) và 75% trong suốt.

CAVEAT Thật không may, độ mờ sẽ ảnh hưởng đến toàn bộ phần tử mà nó được gắn vào.
Vì vậy, nếu bạn có văn bản trong phần tử đó, nó cũng sẽ đặt văn bản thành độ mờ 25%. :-(

Cách để vượt qua điều này là sử dụng rgbahoặc hslacác phương pháp để chỉ ra độ trong suốt như một phần của "màu" nền mong muốn của bạn. Điều này cho phép bạn chỉ định độ trong suốt của nền, độc lập với độ trong suốt của các mục khác trong phần tử của bạn.

Dưới đây là 3 cách để đặt nền xanh lam ở độ trong suốt 75% mà không ảnh hưởng đến các yếu tố khác:

  • background: rgba(0%, 0%, 100%, 0.75)
  • background: rgba(0, 0, 255, 0.75)
  • background: hsla(240, 100%, 50%, 0.75)

8

Trong trường hợp background-color:rgba(0,0,0,0.5);này là cách tốt nhất. Ví dụ:background-color:rgba(0,0,0,opacity option);


6

Để đạt được nó, bạn phải sửa đổi background-colorphần tử.

Các cách tạo màu (bán) trong suốt:

  • Tên màu CSS transparenttạo ra một màu hoàn toàn trong suốt.

    Sử dụng:

      .transparent{
        background-color: transparent;
      }
    
  • Sử dụng rgbahoặc các hslachức năng màu, cho phép bạn thêm kênh alpha (độ mờ) vào các chức năng rgbhsl. Giá trị alpha của chúng nằm trong khoảng từ 0 - 1.

    Sử dụng:

      .semi-transparent-yellow{
        background-color: rgba(255, 255, 0, 0.5);
      }
      .transparent{
        background-color:  hsla(0, 0%, 0%, 0);
      }
    
  • Bên cạnh các giải pháp đã được đề cập, bạn cũng có thể sử dụng định dạng HEX với giá trị alpha ( #RRGGBBAAhoặc #RGBAký hiệu ).

    Điều đó khá mới (có trong CSS Color Module Cấp 4), nhưng đã được triển khai trong các trình duyệt lớn hơn (xin lỗi, không có IE).

    Điều này khác với các giải pháp khác, vì điều này cũng coi kênh alpha (độ mờ) là một giá trị thập lục phân, làm cho nó nằm trong khoảng từ 0 - 255 ( FF).

    Sử dụng:

      .semi-transparent-yellow{
        background-color: #FFFF0080;
      }
      .transparent{
        background-color: #0000;
      }
    

Bạn cũng có thể thử chúng:

  • transparent:

  • rgba():

  • #RRGGBBAA:


5

Thử đi:

opacity:0;

Đối với IE8 trở về trước

filter:Alpha(opacity=0); 

Bản trình diễn Opacity từ W3Schools


6
Trang web bạn đang liên kết đến ... thật khủng khiếp.
John Dvorak

1
@TheWandererr Tôi sẽ bắt đầu với trang được liên kết. Hãy nhớ rằng nó phải chứng minh mã mẫu mực. Và ... Không có vết lõm. Xin lưu ý rằng họ sử dụng loại tài liệu HTML5, có nghĩa là họ đã cập nhật trang sau khi nó được liên kết ở đây hoặc họ đã sử dụng HTML5 nửa năm trước khi nó ở trạng thái đề xuất ứng viên. Tiếp theo: CSS nội tuyến không tốt, đối với bộ nhớ đệm và khả năng đọc. Họ phải sử dụng nó ở đây vì họ chỉ có một bảng điều khiển cho toàn bộ nguồn trang, nhưng nếu họ sử dụng nhiều bảng, như jsfiddle (2010) thì có. Và ngay cả đối với một trang thể hiện sự mờ đục,
John Dvorak

1
@TheWandererr họ có thể làm tốt hơn. Bằng cách hiển thị hiệu ứng trên các phần tử lồng nhau hoặc bằng cách cho phép một hành động di chuột để vô hiệu hóa nó. Sau đó, có toàn bộ điều "giả vờ là w3 consorcium, và khi bạn phát hiện ra hãy khởi chạy một hoặc hai reskin khác, cũng được dán nhãn là w3something" - hơi không trung thực nếu bạn hỏi tôi. Họ cũng nói rằng các ví dụ của họ có thể được "đơn giản hóa để dễ đọc" và "được xem xét liên tục", nhưng loại bỏ khoảng trắng không giúp dễ đọc và hỗ trợ IE7 cũng không phải là xu hướng mới. Ngoài ra, ai sẽ không trả 100 đô la cho một tờ giấy làm tổn hại đến uy tín của họ?
John Dvorak

1
@TheWandererr IIRC, họ đã từng xem trước bài kiểm tra. Các câu hỏi là sự kết hợp của những câu đố và những thứ ở cấp độ đầu vào. Họ cũng có thể có một số câu trả lời không chính xác. Đối với phần độ mờ trong hướng dẫn CSS của họ: ba tiêu đề dành riêng để làm cho hình ảnh trong suốt - chúng chỉ thay đổi bộ chọn CSS. Sau đó, hai đoạn văn nữa - một đoạn để giới thiệu RGBA (cuối cùng chỉ có nền là trong suốt) và một đoạn làm "ví dụ tích hợp" (yay! Ngoài ra, không có thụt lề). Vậy thì ... thế là xong. Không có gì thêm về độ mờ. Và không, không có chủ đề "độ mờ nâng cao" sau này.
John Dvorak

1
@TheWandererr hãy nói về Javascript: Tất cả các ví dụ của họ bao gồm: không thụt lề (ngay cả trong mã Javascript); innerHTML =(Này, ít nhất thì nó tốt hơn các cảnh báo và document.writehọ đã từng làm vào năm 2012, nhưng vẫn không có thao tác DOM, bên ngoài hướng dẫn jQuery ngoại trừ một chút hướng dẫn nơi họ liệt kê các phương pháp có liên quan một trong mỗi chương và thậm chí sau đó nó chỉ là sự lựa chọn - và vâng, họ có danh sách document.write). Hướng dẫn XHR của họ sử dụng readyStateChange thay vì onLoad (được hỗ trợ từ IE7). Ồ và cách giải quyết của họ cho các hàm trong JSON? Stringify chúng được eval'd sau
John Dvorak

2

Có, bạn có thể chỉ cần văn bản đơn giản là

.someDive{
    background:transparent 
}
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.