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?
Câu trả lời:
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/
rgba('black', 0.5)
nào?
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
}
Đâ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 rgba
hoặc hsla
cá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)
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);
Để đạt được nó, bạn phải sửa đổi background-color
phần tử.
Các cách tạo màu (bán) trong suốt:
Tên màu CSS transparent
tạo ra một màu hoàn toàn trong suốt.
Sử dụng:
.transparent{
background-color: transparent;
}
Sử dụng rgba
hoặc các hsla
chức năng màu, cho phép bạn thêm kênh alpha (độ mờ) vào các chức năng rgb
và hsl
. 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 ( #RRGGBBAA
hoặc #RGBA
ký 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
:Thử đi:
opacity:0;
Đối với IE8 trở về trước
filter:Alpha(opacity=0);
innerHTML =
(Này, ít nhất thì nó tốt hơn các cảnh báo và document.write
họ đã 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
Có, bạn có thể chỉ cần văn bản đơn giản là
.someDive{
background:transparent
}