Tôi có thể đặt hình nền và độ mờ trong cùng một thuộc tính không?


264

Tôi có thể thấy trong tài liệu tham khảo CSS cách đặt độ trong suốt của hình ảnhcách đặt hình nền . Nhưng làm thế nào tôi có thể kết hợp cả hai để đặt một hình nền trong suốt?

Tôi có một hình ảnh mà tôi muốn sử dụng làm nền, nhưng nó quá sáng - tôi muốn giảm độ mờ xuống khoảng 0,2. Tôi có thể làm cái này như thế nào?

#main {
    background-image: url(/wp-content/uploads/2010/11/tandem.jpg); 
}

Câu trả lời:


133

Hai phương pháp:

  1. Chuyển đổi sang PNG và làm cho hình ảnh gốc mờ đục 0,2
  2. (Phương pháp tốt hơn) có <div>nghĩa là position: absolute;trước #mainvà chiều cao giống như #main, sau đó áp dụng background-image và opacity: 0.2; filter: alpha(opacity=20);.

Vâng, vấn đề lớn với PNG là kích thước. Nó có khả năng sẽ thực sự lớn. Bây giờ chúng tôi có thể chỉ định opacity: ...trong tất cả các trình duyệt, nó tốt hơn!
Alexis Wilke

1
Bạn sẽ ngạc nhiên về những gì bạn có thể vắt kiệt từ PNG. Chẳng hạn, ở độ mờ 0,2, có lẽ bạn sẽ không chọn ra nhiều chi tiết, vì vậy bạn có thể chuyển đổi sang Indexed-PNG. Tôi thực sự sử dụng điều này trên trang web của riêng tôi và nó đè bẹp một hình ảnh nền 1920x1080 xuống kích thước chỉ dưới 250kb.
Niet the Dark Tuyệt đối

Bạn tốt hơn nên thêm chỉ số z: -1 vào vị trí đó: tuyệt đối, để cho phép sử dụng các đáy trên lớp phủ. Câu trả lời tốt.
Raz

1
Bạn cũng có thể sử dụng WebP - nó hỗ trợ độ trong suốt và kích thước tệp nhỏ hơn nhiều so với PNG. Tất cả các trình duyệt chính trừ Safari hiện đều hỗ trợ WebP. Bạn có thể phục vụ WebP để hỗ trợ trình duyệt và PNG sang Safari.
Dan Roberts

364
#main {
    position: relative;
}
#main:after {
    content : "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-image: url(/wp-content/uploads/2010/11/tandem.jpg); 
    width: 100%;
    height: 100%;
    opacity : 0.2;
    z-index: -1;
}

4
Tạo nội dung từ IE8 trở lên. caniuse.com/#feat=css-gencontent , sử dụng thuộc tính bộ lọc cho IE8. caniuse.com/#search=opacity
Dan Eastwell

3
Tôi đã thêm "z-index: -1" vào CSS. Bằng cách đó, hình ảnh nền bị ảnh hưởng bởi độ mờ đục, chứ không phải phần còn lại của nội dung của #main
patrick

17
Tôi sử dụng :beforethay vì :aftervà sau đó tôi không phải can thiệp vào z-index:beforetự động kết thúc bên dưới các nội dung chính. (Hiện đã được thử nghiệm trong Chrome và FF.)
KajMagnus

1
@KajMagnus Nếu bạn làm điều đó, thì mọi thứ sau đó sẽ không được hiển thị. Hãy thử có độ mờ bằng 1.0 và bạn sẽ hiểu ý tôi là gì.
Jessica

1
Nếu bạn đang nhận được một hình ảnh nền lặp đi lặp lại, bạn có thể muốn / cần thêm background-repeat: no-repeat; background-attachment: fixed; background-position: center;trong #main: sau {...} .
ban-geengineering

106

Giải pháp với 1 div và KHÔNG hình ảnh trong suốt:

Bạn có thể sử dụng tính năng CSS3 đa nền tảng và đặt hai nền: một có hình ảnh, một nền có bảng trong suốt trên đó (vì tôi nghĩ không có cách nào để đặt trực tiếp độ mờ của hình nền):

background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%), url(bg.png) repeat 0 0, url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -moz-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.7)), color-stop(100%,rgba(255,255,255,0.7))), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -webkit-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -o-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: -ms-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

background: linear-gradient(to bottom, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;

Bạn không thể sử dụng rgba(255,255,255,0.5)vì một mình nó chỉ được chấp nhận ở mặt sau, vì vậy bạn đã sử dụng các gradient được tạo cho mỗi trình duyệt cho ví dụ này (đó là lý do tại sao nó quá dài). Nhưng khái niệm này là như sau:

background: tranparentColor, url("myImage"); 

http://jsfiddle.net/pBVsD/1/


Điều này sẽ chỉ hoạt động nếu nền là màu đơn sắc, nếu bạn có PNG24 là nền và bạn muốn nó có độ mờ (ví dụ như di chuột) thì điều này sẽ không hoạt động và bạn sẽ phải sử dụng phương pháp phần tử giả , điều này thực sự tốt hơn vì nó có thể được sử dụng trong IE 8 trở lên.
vsync

66

Giải pháp đơn giản

nếu bạn cần đặt gradient thành hình nền :

background-image: url(IMAGE_URL); /* fallback for older browsers */

background-image: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.6) 100%), url(IMAGE_URL);

Hình ảnh di chuyển nhẹ lên trên cùng. Nó có một sửa chữa?
HFR1994

6
Bạn cũng có thể sử dụng RGBA 255,255,255 ảnh nền: gradient tuyến tính (xuống dưới, rgba (255,255,255,0,6) 0%, rgba (255,255,255,0,6) 100%), url (IMAGE_URL);
La Mã

@Roman Bạn có thể đặt thành phần màu rgba thành giá trị được sử dụng làm màu nền trong thành phần hoặc phần tử nhúng của nó (được thử nghiệm trên Chrome 58.0.3029.81, Edge 38.14393.0.0).
sụp đổ

46

Tôi đã thấy điều này và trong CSS3 bây giờ bạn có thể đặt mã như thế này. Hãy nói rằng tôi muốn nó bao phủ toàn bộ nền tôi sẽ làm một cái gì đó như thế này. Sau đó, với hsla(0,0%,100%,0.70)hoặc rgba, bạn sử dụng nền trắng với bất kỳ tỷ lệ bão hòa hoặc độ mờ nào để có được giao diện mà bạn mong muốn.

.body{
    background-attachment: fixed;
    background-image: url(../images/Store1.jpeg);
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    background-color: hsla(0,0%,100%,0.70);
    background-blend-mode: overlay;
    background-repeat: no-repeat;
}

2
Thêm màu nền và chế độ hòa trộn nền đã giúp tôi rất nhiều. Bây giờ tôi có một div với độ mờ không ảnh hưởng đến con của nó!
Diego Victor de Jesus

1
điều đó thật tuyệt! Tôi đã tạo một hàm jquery để thay đổi độ mờ khi cuộn, tạo màu trên hình nền khi bạn cuộn xuống. $ (function () {$ (window) .scroll (function () {var scroll = $ (window) .scrollTop (); var current = 0; var now = (current-scroll) / 7; $ ('. slide ') .css (' vị trí nền ', '50%' + ngay bây giờ + 'px'); var color = Math.round (scroll / 7) / 100; $ ('. slide'). css ('nền- màu ',' rgba (128, 45, 87, '+ màu +') ');});});
drooh

10

Bạn có thể sử dụng CSS psuedo selector :: sau để đạt được điều này. Đây là một bản demo làm việc.

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

.bg-container{
  width: 100%;
  height: 300px;
  border: 1px solid #000;
  position: relative;
}
.bg-container .content{
  position: absolute;
  z-index:999;
  text-align: center;
  width: 100%;
}
.bg-container::after{
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index:-99;
  background-image: url(https://i.stack.imgur.com/Hp53k.jpg);
  background-size: cover;
  opacity: 0.4;
}
<div class="bg-container">
   <div class="content">
     <h1>Background Opacity 0.4</h1>
   </div>
</div>


4

Tôi đã có một vấn đề tương tự. Tôi đã có một hình ảnh và muốn giảm độ trong suốt và có một nền đen phía sau hình ảnh. Thay vì giảm độ mờ hoặc tạo nền đen hoặc bất kỳ div phụ nào, tôi đặt gradient tuyến tính cho hình ảnh trên một dòng:

background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%), url("/img/picture.png");


3

Tôi đã sử dụng câu trả lời của @Dan Eastwell và nó hoạt động rất tốt. Mã này tương tự như mã của anh ấy nhưng với một số bổ sung.

.granddata {
    position: relative;
    margin-left :0.5%;
    margin-right :0.5%;
}
.granddata:after {
    content : "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-image: url("/Images/blabla.jpg");
    width: 100%;
    height: 100%;
    opacity: 0.2;
    z-index: -1;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment:fixed;
}

2

Một cách tuyệt vời để làm điều đó cho một hình ảnh đơn giản là chỉ sử dụng CSS để đặt nền của phần tử HTML như vậy.

HTML {
    background: url('http://www.earthtimes.org/newsimage/eat-lead-by-example-obesity-expert-tells-parents_139.jpg');
    width: 100%;
    height: 100%;
}

Nếu bạn muốn có được sự ưa thích và thiết lập độ mờ của nó, thì trong IE9 + *, bạn có thể đặt màu nền trong suốt của cơ thể. Điều này hoạt động bằng cách phủ lớp trắng bán trong suốt để làm cho hình ảnh trắng hơn và có vẻ sáng hơn. Ví dụ, màu trắng với độ mờ 75% ( rgba(255,255,255,.75)) sẽ tạo ra hiệu ứng sau.

HTML {
  background: url('http://www.earthtimes.org/newsimage/eat-lead-by-example-obesity-expert-tells-parents_139.jpg');
  width: 100%;
  height: 100%;
  position: relative;
}

body {
  width: 100%;
  min-height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  background: rgba(255, 255, 255, .75);
}
<p>Lorem ipsum dolor sit amet, et id, maecenas a convallis, elit facilisi congue augue id ac. Suscipit luctus egestas rutrum, amet tincidunt porttitor ante convallis magna, vivamus amet at turpis, ante lacinia blandit vel metus mauris rutrum. Ipsum nam adipiscing.
  Est sapien quis sem vestibulum, quis cubilia turpis, suspendisse mattis vehicula enim risus pede, placerat suspendisse dui. Convallis nostrud pede, mollit lobortis, ornare ipsum tempor faucibus tortor, vel pede, porttitor nulla nonummy vestibulum purus.
  Eros placerat tenetur augue ipsum aliquam, pellentesque congue condimentum sed vitae lectus.</p>
<p>Aliquam venenatis curabitur pellentesque sociosqu quam. Tincidunt id erat vestibulum in, est fermentum ipsum et augue, nascetur etiam. Lorem elit, sed donec, leo vivamus ac id enim faucibus vel. Nullam sit feugiat sed massa consectetuer auctor, nulla
  et erat lacinia nec, eget ut ante nullam est non in, elit porttitor in in donec eget porttitor. Interdum ultricies sem morbi facilisis nibh erat. Id suspendisse, sed tincidunt fringilla sit, sapien odio vel, at culpa augue sed taciti neque inceptos,
  massa class non. Vel tristique condimentum at pellentesque, commodo nulla sagittis rhoncus lorem. Viverra maecenas tellus pretium urna mauris proin, vel libero morbi, ante volutpat vestibulum augue. Itaque leo mauris turpis, vivamus nisl congue nisl
  nulla in turpis, eget vitae accumsan dolor ipsum leo venenatis, feugiat vehicula in risus, donec eu pede vivamus itaque nam. Justo amet vitae pellentesque sed, posuere fusce sapien, sed nam placerat libero sed etiam curabitur, suspendisse justo, amet
  porttitor.</p>
<p>Condimentum eget. Sem elementum a et mauris sem a, velit justo consectetuer in turpis mauris, sit sed elit cum, fusce suspendisse pretium dictum, mattis dui tortor tellus. Volutpat ut ante lorem nec laoreet aliquam, lorem est magna amet, integer mauris
  purus tellus. Porta enim repellendus aliquam eros. Turpis posuere elementum suscipit wisi lobortis, nec nunc consequat dictum ut unde at, mi lorem amet nunc. Cubilia pede, integer dolor, eget platea felis elit enim rhoncus, integer proin quam in ipsum
  lorem, diam curabitur netus pretium pellentesque. Donec rutrum ultrices placerat, curabitur maecenas, feugiat pede varius accumsan quam lorem, dui et dictumst asperiores nulla, vivamus urna nam leo libero. Posuere non convallis amet justo parturient,
  imperdiet consectetuer arcu praesent cursus risus, quis pretium dolor.</p>

  • Mẹo: chú ý cách HTML position: relative, trong khi phần thân position: absolute. Điều này là để ngăn màu nền của cơ thể hoạt động giống như một highllight của văn bản trong cơ thể.

Điều này thậm chí có thể được mở rộng thành một cái gì đó tương đương, nhưng vẫn rất khác biệt với các bộ lọc CSS bằng cách thay đổi xung quanh nền màu RGBA của cơ thể. Ví dụ: rgba(0,255,0,.75)sẽ tạo một tông màu rất xanh như bạn có thể thấy trong đoạn mã.

HTML {
    background: url('http://www.earthtimes.org/newsimage/eat-lead-by-example-obesity-expert-tells-parents_139.jpg');
    width: 100%;
    height: 100%;
    position: relative;
}
body {
    width: 100%;
    min-height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    background: rgba(0,255,0,.75);
}
<p>Aliquam venenatis curabitur pellentesque sociosqu quam. Tincidunt id erat vestibulum in, est fermentum ipsum et augue, nascetur etiam. Lorem elit, sed donec, leo vivamus ac id enim faucibus vel. Nullam sit feugiat sed massa consectetuer auctor, nulla et erat lacinia nec, eget ut ante nullam est non in, elit porttitor in in donec eget porttitor. Interdum ultricies sem morbi facilisis nibh erat. Id suspendisse, sed tincidunt fringilla sit, sapien odio vel, at culpa augue sed taciti neque inceptos, massa class non. Vel tristique condimentum at pellentesque, commodo nulla sagittis rhoncus lorem. Viverra maecenas tellus pretium urna mauris proin, vel libero morbi, ante volutpat vestibulum augue. Itaque leo mauris turpis, vivamus nisl congue nisl nulla in turpis, eget vitae accumsan dolor ipsum leo venenatis, feugiat vehicula in risus, donec eu pede vivamus itaque nam. Justo amet vitae pellentesque sed, posuere fusce sapien, sed nam placerat libero sed etiam curabitur, suspendisse justo, amet porttitor.</p>
<p>Condimentum eget. Sem elementum a et mauris sem a, velit justo consectetuer in turpis mauris, sit sed elit cum, fusce suspendisse pretium dictum, mattis dui tortor tellus. Volutpat ut ante lorem nec laoreet aliquam, lorem est magna amet, integer mauris purus tellus. Porta enim repellendus aliquam eros. Turpis posuere elementum suscipit wisi lobortis, nec nunc consequat dictum ut unde at, mi lorem amet nunc. Cubilia pede, integer dolor, eget platea felis elit enim rhoncus, integer proin quam in ipsum lorem, diam curabitur netus pretium pellentesque. Donec rutrum ultrices placerat, curabitur maecenas, feugiat pede varius accumsan quam lorem, dui et dictumst asperiores nulla, vivamus urna nam leo libero. Posuere non convallis amet justo parturient, imperdiet consectetuer arcu praesent cursus risus, quis pretium dolor.</p>
<p>Lorem ipsum dolor sit amet, et id, maecenas a convallis, elit facilisi congue augue id ac. Suscipit luctus egestas rutrum, amet tincidunt porttitor ante convallis magna, vivamus amet at turpis, ante lacinia blandit vel metus mauris rutrum. Ipsum nam adipiscing. Est sapien quis sem vestibulum, quis cubilia turpis, suspendisse mattis vehicula enim risus pede, placerat suspendisse dui. Convallis nostrud pede, mollit lobortis, ornare ipsum tempor faucibus tortor, vel pede, porttitor nulla nonummy vestibulum purus. Eros placerat tenetur augue ipsum aliquam, pellentesque congue condimentum sed vitae lectus.</p>

  • Mẹo: RGBA tương ứng với R ed G reen B lue A lpha. Vì vậy, trình duyệt diễn giải rgba(0,255,0,.75)như một cái gì đó được minh họa bằng {red:0, green:255, blue:0, alpha:'75%'}.


* Có thể tìm thấy bảng tương thích đầy đủ tại Tôi có thể sử dụng. Tuy nhiên, xin lưu ý rằng bạn cần nhấp vào "Hiển thị tất cả" để thấy rằng IE9 hỗ trợ nó.


Phụ lục

Vì tôi đã trả lời câu hỏi nhưng tôi có thêm tôi muốn thêm, tôi đang chuẩn bị phần phụ lục này và có thêm một số thông tin hữu ích. Vì vậy, để ngoại suy hơn nữa về nội dung trên, bạn có thể sử dụng một SVG làm hình nền để thực hiện những điều tuyệt vời xấu xa. Ví dụ: bạn có thể tạo nền màn hình tải có biểu tượng trang web thú vị như bạn có thể thấy trong ví dụ về SVG được mã hóa base64 bên dưới.

HTML {
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiIgYXJpYS1oaWRkZW49InRydWUiPjxnIGlkPSJrIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImMiIGdyYWRpZW50VHJhbnNmb3JtPSJyb3RhdGUoLTEyMCkiIHRyYW5zZm9ybS1vcmlnaW49Ii41LjUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYmEoMCwwLDAsLjYpIi8+PHN0b3Agb2Zmc2V0PSI0NyUiIHN0b3AtY29sb3I9InJnYmEoMCwwLDAsLjYpIi8+PHN0b3Agb2Zmc2V0PSI1MyUiIHN0b3AtY29sb3I9InJnYmEoMCwwLDAsLjMpIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSJyZ2JhKDAsMCwwLC45KSIvPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9ImdyYWRpZW50VHJhbnNmb3JtIiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHR5cGU9InJvdGF0ZSIgZHVyPSI3MDAwbXMiIGZyb209IjAiIHRvPSIzNjAiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImQiIHI9Ii41IiBjeT0iLjUiIGN4PSIuNSI+PHN0b3Agb2Zmc2V0PSIzNSUiIHN0b3AtY29sb3I9ImJsYWNrIi8+PHN0b3Agb2Zmc2V0PSI1MCUiIHN0b3AtY29sb3I9ImdyZXkiLz48c3RvcCBvZmZzZXQ9IjY1JSIgc3RvcC1jb2xvcj0iYmxhY2siLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD0iZSIgcj0iLjUiIGN5PSIuNSIgY3g9Ii41Ij48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSJ3aGl0ZSIvPjxzdG9wIG9mZnNldD0iMjUlIiBzdG9wLWNvbG9yPSJ5ZWxsb3ciLz48c3RvcCBvZmZzZXQ9Ijc1JSIgc3RvcC1jb2xvcj0ieWVsbG93Ii8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSJ3aGl0ZSIvPjwvcmFkaWFsR3JhZGllbnQ+PGNsaXBQYXRoIGlkPSJmIj48cGF0aCBzdHJva2U9ImdyZXkiIHN0cm9rZS13aWR0aD0iLjAxIiBpZD0iYiIgZD0iTS43NS43MUEuMzEuMzEgMCAxIDEgLjc1LjMxTC42OS4zOEEuMjIuMjIgMCAxIDAgLjY4LjY2TC41Ni41N0wuNi41MUwuODIuNjh6TS42LjYzQS4xNC4xNCAwIDEgMSAuNjIuNDJMLjY2LjM5QS4xOS4xOSAwIDEgMCAuNjQuNjZ6TS41NS41OEEuMDcuMDcgMCAxIDEgLjU2LjQ2TC42LjQzQS4xMi4xMiAwIDEgMCAuNTkuNjF6Ii8+PC9jbGlwUGF0aD48Y2xpcFBhdGggaWQ9ImciPjxwYXRoIHN0cm9rZT0iZ3JleSIgZmlsbD0icmVkIiBzdHJva2Utd2lkdGg9Ii4wMSIgZD0iTS42LjYzQS4xNC4xNCAwIDEgMSAuNjIuNDJMLjY2LjM5QS4xOS4xOSAwIDEgMCAuNjQuNjZ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xpcC1wYXRoPSJ1cmwoI2YpIiBmaWxsPSJ1cmwoI2MpIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0icmVkIiBjbGlwLXBhdGg9InVybCgjZykiLz48L2c+PGcgdHJhbnNmb3JtPSJzY2FsZSgxLjEpIiB0cmFuc2Zvcm0tb3JpZ2luPSIuNS41Ij48dGV4dD48dGV4dFBhdGggaHJlZj0iI2IiIGZvbnQtc2l6ZT0iLjY1JSIgZm9udC1mYW1pbHk9Im1vbm9zcGFjZSIgbGV0dGVyLXNwYWNpbmc9Ii0uNSUiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPiBZT1VSIDx0c3BhbiBmaWxsPSJyZWQiPkVYQU1QTEUgV0VCU0lURTwvdHNwYW4+IExPR088L3RleHRQYXRoPjwvdGV4dD48L2c+PC9nPjwvc3ZnPg==');
    width: 100%;
    height: 100%;
    position: relative;
    background-size: cover;
}
body {
    width: 100%;
    min-height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    background: rgba(255,255,255,.5);
}
<p>Condimentum eget. Sem elementum a et mauris sem a, velit justo consectetuer in turpis mauris, sit sed elit cum, fusce suspendisse pretium dictum, mattis dui tortor tellus. Volutpat ut ante lorem nec laoreet aliquam, lorem est magna amet, integer mauris purus tellus. Porta enim repellendus aliquam eros. Turpis posuere elementum suscipit wisi lobortis, nec nunc consequat dictum ut unde at, mi lorem amet nunc. Cubilia pede, integer dolor, eget platea felis elit enim rhoncus, integer proin quam in ipsum lorem, diam curabitur netus pretium pellentesque. Donec rutrum ultrices placerat, curabitur maecenas, feugiat pede varius accumsan quam lorem, dui et dictumst asperiores nulla, vivamus urna nam leo libero. Posuere non convallis amet justo parturient, imperdiet consectetuer arcu praesent cursus risus, quis pretium dolor.</p>
<p>Lorem ipsum dolor sit amet, et id, maecenas a convallis, elit facilisi congue augue id ac. Suscipit luctus egestas rutrum, amet tincidunt porttitor ante convallis magna, vivamus amet at turpis, ante lacinia blandit vel metus mauris rutrum. Ipsum nam adipiscing. Est sapien quis sem vestibulum, quis cubilia turpis, suspendisse mattis vehicula enim risus pede, placerat suspendisse dui. Convallis nostrud pede, mollit lobortis, ornare ipsum tempor faucibus tortor, vel pede, porttitor nulla nonummy vestibulum purus. Eros placerat tenetur augue ipsum aliquam, pellentesque congue condimentum sed vitae lectus.</p>
<p>Aliquam venenatis curabitur pellentesque sociosqu quam. Tincidunt id erat vestibulum in, est fermentum ipsum et augue, nascetur etiam. Lorem elit, sed donec, leo vivamus ac id enim faucibus vel. Nullam sit feugiat sed massa consectetuer auctor, nulla et erat lacinia nec, eget ut ante nullam est non in, elit porttitor in in donec eget porttitor. Interdum ultricies sem morbi facilisis nibh erat. Id suspendisse, sed tincidunt fringilla sit, sapien odio vel, at culpa augue sed taciti neque inceptos, massa class non. Vel tristique condimentum at pellentesque, commodo nulla sagittis rhoncus lorem. Viverra maecenas tellus pretium urna mauris proin, vel libero morbi, ante volutpat vestibulum augue. Itaque leo mauris turpis, vivamus nisl congue nisl nulla in turpis, eget vitae accumsan dolor ipsum leo venenatis, feugiat vehicula in risus, donec eu pede vivamus itaque nam. Justo amet vitae pellentesque sed, posuere fusce sapien, sed nam placerat libero sed etiam curabitur, suspendisse justo, amet porttitor.</p>

  • Mẹo: Các background-size: coverCSS gây logo SVG trong nền để thay đổi kích thước với kích thước của các phần tử HTML.

1

Trong CSS của bạn thêm ...

 filter: opacity(50%);

Trong JavaScript sử dụng ...

 element.style.filter='opacity(50%)';

NB: Thêm tiền tố nhà cung cấp theo yêu cầu nhưng Chromium sẽ ổn nếu không có.


0

Vâng, cách CSS duy nhất để thực hiện độ trong suốt của nền là thông qua RGBanhưng vì bạn muốn sử dụng hình ảnh nên tôi sẽ đề xuất sử dụng Photoshop hoặc Gimp để làm cho hình ảnh trong suốt và sau đó sử dụng nó làm nền.


Điều này không chính xác, có một tuyên bố CSS3 : opactiy: 1;, không chỉ RGBa.
Kyle

4
Những gì anh ấy đang nói là thiết lập background-imagephong cách trên một container và sau đó thiết lập một opacityphong cách trên cùng một yếu tố. Điều đó cũng sẽ làm cho văn bản và nội dung khác của yếu tố đó minh bạch. Hãy thử điều này nếu bạn không tin tôi: w3schools.com/Css/tryit.asp?filename=trycss_trans

0

Tôi vừa thêm vị trí = tuyệt đối, top = 0, width = 100% trong #main và đặt giá trị độ mờ thành #background

#main{height:100%;position:absolute; top:0;width:100%}
#background{//same height as main;background-image:url(image URL);opacity:0.2}

Tôi đã áp dụng nền cho một div trước chính.


-1

Tôi đã xem qua bài đăng này vì tôi có cùng một vấn đề sau đó tôi nghĩ tại sao phải loay hoay với css, điều chỉnh giá trị và nhấn refresh khi bạn có thể dễ dàng điều chỉnh độ mờ trong Photoshop? Sao chép hình ảnh, dán nó như một lớp mới sau đó di chuyển thanh trượt độ mờ.


2
ArtB đã nhận nó ngay với ghi chú cuối cùng. Đây là một giải pháp hoàn toàn tốt cho một vấn đề khác. Đôi khi đây không phải là giải pháp phù hợp và đây là một trong số đó.
jon

-1

Tôi có một vấn đề tương tự và tôi chỉ chụp ảnh nền bằng photoshop và tạo một .png mới với độ mờ tôi cần. Vấn đề được giải quyết mà không cần lo lắng về việc CSS của tôi có hoạt động trên tất cả các thiết bị và trình duyệt không

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.