Làm thế nào để tôi thực hiện một nền bán trong suốt?


178

Tôi cần phải làm nền trắng trong suốt 50% mà không ảnh hưởng gì khác. Tôi phải làm nó như thế nào?


đây là một liên kết đến một bài viết mô tả phương pháp thực hiện tính minh bạch bằng CSS. domedia.org/oveklykken/css-trans minh.php Mặc dù có vẻ như hỗ trợ trình duyệt chéo có thể là một vấn đề có thể khiến bạn thay đổi việc triển khai.
Bnjmn

3
Bạn có nghĩa là làm thế nào để thiết lập độ mờ cho nền div mà không ảnh hưởng đến các phần tử lồng nhau?
Ben


Câu trả lời:


317

Sử dụng rgba():

.transparent {
  background-color: rgba(255,255,255,0.5);
}

Điều này sẽ cung cấp cho bạn độ mờ 50% trong khi nội dung của hộp sẽ tiếp tục có độ mờ 100%.

Nếu bạn sử dụng opacity:0.5, nội dung sẽ bị mờ cũng như nền. Do đó không sử dụng nó.


3
có, IE hỗ trợ rgba, cú pháp của nó là #ARGB và được viết dưới dạng bộ lọc: progid: DXImageTransform.Microsoft.gradient (startColorstr = # AARRGGBBAA, endColorstr = # AARRGGBBAA); về cơ bản nó là một dải màu tĩnh nhưng có độ trong suốt.
Tarun

Thay đổi background:vớibackground-color:
Gabrielizalo

background-colorkhông đúng hơn background.
Sean

@Sean Có cụ thể hơn và tiết lộ ý định không? Cá nhân tôi thích sử dụng nó trong trường hợp này, nhưng có một lý do không phải là một ưu tiên tốt?
Dave Slutzkin

1
@DaveSlutzkin Đó là một ưu tiên tốt để có và không có gì sai với nó, nhưng chỉnh sửa không nên được thực hiện dựa trên sở thích cá nhân. Mặt khác, các câu hỏi sẽ tiếp tục dao động giữa các phiên bản khác nhau khi những người có sở thích đối lập gặp phải chúng.
Sean

12

Điều này hoạt động, nhưng tất cả các phần tử con của lớp này cũng sẽ trở nên trong suốt, không có cách nào ngăn chặn điều đó.

.css-class-name {
    opacity:0.8;
}

9

Nếu bạn muốn làm cho nền trong suốt có màu xám, vui lòng thử:

   .transparent{
       background:rgba(1,1,1,0.5);
   }

3

Điều tốt để biết

Một số trình duyệt web gặp khó khăn khi kết xuất văn bản với bóng trên nền trong suốt. Sau đó, bạn có thể sử dụng hình ảnh PNG 1x1 bán trong suốt làm nền.

Ghi chú

Hãy nhớ rằng IE6 không hỗ trợ các tệp PNG.


2
IE6 không hỗ trợ PNG, ngay cả những thứ trong suốt: filter: progid: DXImageTransform.Microsoft.AlphaImageLoader (enable = true, sizingMethod = scale, src = '/ filename.png');
manmal

@manmal nhưng bạn đặt bản sửa lỗi IE ở đâu? Trực tiếp trong tập tin trang web .css?
Thalatta

1
@Thalatta vâng, cứ thử đi.
manody

3

KHÔNG sử dụng PNG bán trong suốt 1x1. Kích thước PNG lên tới 10 x 10, 100x100, v.v ... Bất cứ điều gì có ý nghĩa trên trang của bạn. (Tôi đã sử dụng PNG 200x200 và nó chỉ 0,25 kb, vì vậy không có mối quan tâm thực sự nào về kích thước tệp ở đây.)

Sau khi truy cập bài đăng này, tôi đã tạo trang web của mình với 3, 1x1 PNG với độ trong suốt khác nhau.

Dreamweaver CS5 đang tăng tốc. Tôi đã có flash back cho DOS !!! Rõ ràng bất cứ khi nào tôi cố gắng cuộn, chèn văn bản, về cơ bản là làm bất cứ điều gì, DW đã cố gắng tải lại các vùng bán trong suốt 1x1 pixel tại một thời điểm ... YIKES!

Bộ phận hỗ trợ kỹ thuật của Adobe thậm chí không biết vấn đề là gì, nhưng đã bảo tôi xây dựng lại tệp (nó hoạt động trên hệ thống của họ, tình cờ). Chỉ đến khi tôi tải PNG trong suốt đầu tiên vào tệp css thì tài liệu mới quay lại sâu.

Sau đó, tôi tìm thấy một bài đăng trên một trang web trợ giúp khác về các PNG bị rơi Dreamweaver. Kích thước PNG của bạn lên; không có nhược điểm để làm như vậy.


13
Kích thước một PNG chỉ vì công cụ của bạn quá tệ đến nỗi nó không hỗ trợ nó? Thực sự ...
nhím 23/2/2015

0

Mặc dù ngày, không một câu trả lời trên chủ đề này có thể được sử dụng phổ biến. Sử dụng rgba để tạo mặt nạ màu trong suốt - điều đó không giải thích chính xác cách thực hiện với hình nền.

Giải pháp của tôi hoạt động cho hình ảnh nền hoặc màu nền.

#parent {
    font-family: 'Open Sans Condensed', sans-serif;
    font-size: 19px;
    text-transform: uppercase;
    border-radius: 50%;
    margin: 20px auto;
    width: 125px;
    height: 125px;
    background-color: #476172;
    background-image: url('https://unsplash.it/200/300/?random');
    line-height: 29px;
    text-align:center;
}

#content {
    color: white;
    height: 125px !important;
    width: 125px !important;
    display: table-cell;
    border-radius: 50%;
    vertical-align: middle;
    background: rgba(0,0,0, .3);
}
<h1 id="parent"><a href="" id="content" title="content" rel="home">Example</a></h1>


0
div.main{
     width:100%;
     height:550px;
     background: url('https://images.unsplash.com/photo-1503135935062-
     b7d1f5a0690f?ixlib=rb-enter code here0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=cf4d0c234ecaecd14f51a2343cc89b6c&dpr=1&auto=format&fit=crop&w=376&h=564&q=60&cs=tinysrgb') no-repeat;
     background-position:center;
     background-size:cover 
}
 div.main>div{
     width:100px;
     height:320px;
     background:transparent;
     background-attachment:fixed;
     border-top:25px solid orange;
     border-left:120px solid orange;
     border-bottom:25px solid orange;
     border-right:10px solid orange;
     margin-left:150px 
}

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


Cảm ơn bạn vì đoạn mã này, có thể cung cấp một số trợ giúp hạn chế, ngay lập tức. Một lời giải thích phù hợp sẽ cải thiện đáng kể giá trị lâu dài của nó bằng cách chỉ ra lý do tại sao đây là một giải pháp tốt cho vấn đề và sẽ giúp nó hữu ích hơn cho những người đọc tương lai với những câu hỏi tương tự khác. Vui lòng chỉnh sửa câu trả lời của bạn để thêm một số giải thích, bao gồm các giả định bạn đã thực hiện.
iBug

-2

Thử cái này:

.transparent
{ 
  opacity:.50;
  -moz-opacity:.50; 
  filter:alpha(opacity=50); 
}

12
điều này sẽ làm cho nội dung có độ mờ 50% là tốt.
Tarun

Điều này có thể dễ dàng được sửa bởi css : .transparent * { opacity:1; }, trừ khi, ví dụ, một phần tử với transparentlớp có html bên trong
Tim Cooke
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.