2011-11-23 38 views
5

Xin chào, tôi đang sử dụng thuộc tính Opacity CSS cho thẻ div và nó hoạt động tốt nhưng vấn đề là khi tôi viết một số văn bản hoặc dán hình ảnh trên thẻ div đó cũng bị mờ dần. Tôi chỉ cần div trở lại màu sắc để phai mờ và không phải là nội dung div. Mã của tôi là ...Thuộc tính Opacity CSS

#fade div 
{ 
opacity:0.1; 
filter:alpha(opacity=10); /* For IE8 and earlier */ 
width:750px; 
height:150px; 
background-color:#FFFFFF; 
} 

#text in fade div 
{ 
font-weight:bold; 
color:#8A2BE2; 
} 

Thankyou !!!

+0

Bạn có thể sử dụng CSS3 hoặc bạn có cần xem rộng nhất có thể không? – BumbleShrimp

+0

nếu bạn đang đặt văn bản/hình ảnh bên trong div đó div trở thành cha mẹ cho nó và nó chứa thuộc tính của cha mẹ, để đập hiểu vấn đề tạo [jsfiddle] (http://jsfiddle.net) – punit

+0

Liên quan: http://css-tricks.com/rgba-browser-support/ – 2rs2ts

Trả lời

11

Dễ dàng hơn khi sử dụng rgba() hoặc PNG trong suốt cho nền.

rgba(0, 0, 0, .1); 
rgba(0, 0, 0); //fallback 
+0

Đó là một giải pháp tốt.Tra cứu liên kết này để biết thêm thông tin: http://robertnyman.com/2010/01/11/css-background-transparency-without-affecting-child-elements-through-rgba-and-filters/ – Grrbrr404

0

ofcourse opacity cũng áp dụng cho các phần tử con. Bạn có thể làm gì để phân biệt đánh dấu của mình.

<div id='Div-With-Opacity-set'> 
</div> 
<div id='Child-Elements-for-the-above-div'> 
</div> 

Căn chỉnh đánh dấu cẩn thận sao cho đánh dấu giống với những gì bạn muốn.

3

Bạn có thể sử dụng rgba() tài sản cho việc này:

ghi như thế này:

#fade div 
{ 
background-color: rgba(0,0,0,0.1); 
width:750px; 
height:150px; 
background-color:#FFFFFF; 
} 

Đối với IE bạn có thể sử dụng IE filter

background: transparent;-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#19000000,endColorstr=#19000000)"; /* IE8 */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#19000000,endColorstr=#19000000); /* IE6 & 7 */  zoom: 1; 

Bạn có thể tạo bộ lọc của mình từ đây http://kimili.com/journal/rgba-hsla-css-generator-for-internet-explorer/

+0

Đây có phải là mã hợp lệ không ? – lalibi

+0

có; rgba hợp lệ của nó là thuộc tính và bộ lọc css3, chúng tôi sử dụng IE – sandeep

+0

có nhưng không nên giống như 'màu nền: rgba (0,0,0,0,1);' – lalibi

0

Tại sao bạn không quay lại đặt độ mờ sau đó?

#text in fade div 
{ 
    font-weight:bold; 
    color:#8A2BE2; 
    opacity:1; 
    filter:alpha(opacity=100); /* For IE8 and earlier */ 
} 
+0

Điều này không hoạt động. 'opacity' không phải là thuộc tính được thừa kế. – 2rs2ts

1

Chỉ cần sử dụng gif bán trong suốt 1px và lặp lại nó bằng x và y. Theo tôi biết đó là cách dễ nhất để thiết lập nền bán trong suốt.

0

Đặt cược tốt nhất của bạn mà không có CSS3 có lẽ là tạo một div và đặt một div khác được đặt trên nó, nhưng không được lồng vào bên trong nó. Bộ lọc độ mờ giảm xuống TẤT CẢ các phần tử bên trong phần tử bằng bộ độ mờ.

Nếu bạn đặt div ngay lập tức sang bên phải và sau đó cho nó một lề là -750px ;, bạn có thể cho nó độ mờ là 1, nhưng div đằng sau nó có thể có độ mờ là 0,1 và điều này sẽ hoạt động khỏe.

Với CSS3 bạn có thể làm điều này:

#fade 
{ 
width:750px; 
height:150px; 
background-color: rgba(255,255,255,0.1); 
} 

và chỉ nền sẽ là 0,1 độ mờ đục. Văn bản vẫn sẽ là 1.

Điều mà cá nhân tôi làm thường xuyên nhất là tôi tạo một .png nhỏ với nền trong suốt mà tôi muốn và sau đó tôi đặt .png làm nền của phần tử. Trong photoshop tôi có thể thiết lập độ mờ đục của nền trắng thành 0.1, sau đó lưu một hình vuông 50X50, và sau đó tôi đã có độ trong suốt gần như hoàn hảo (không có IE6).

Các vấn đề liên quan