Css background color transparent png

Semi-transparent color layer over background-image?

I have a DIV and I would like to put a pattern as background. This pattern is gray. So to make it a little more nice, I would like to put a light transparent color «layer» over. Below is what I tried but which did not work. Is there a way to put the colored layer over the background image? Here’s my CSS:

background: url('../img/bg/diagonalnoise.png'); background-color: rgba(248, 247, 216, 0.7); 

19 Answers 19

I know this is a really old thread, but it shows up at the top in Google, so here’s another option.

This one is pure CSS, and doesn’t require any extra HTML.

box-shadow: inset 0 0 0 1000px rgba(0,0,0,.2); 

There are a surprising number of uses for the box-shadow feature.

As much as this is an amazing possibility, its only supported in IE 9+ which means ignoring 1,8% of the web users as of Oct 2014.

Nice hack but a big performance killer. This will slow down every mobile device. Box shadow causes performance problems on mobile devices. It’s better to avoid it especially if there are other way to go.

Just an update a couple years later: I currently use this method all over kotulas.com, and there’s no significant slowdown that I’ve noticed. It could become an issue if you’re using it on hundreds of elements, but even on a page with 150+ images, it’s not an issue for me. (And this is on a work computer.) Naturally, you’ll want to test it ahead of time to make sure that it’s right for you. And as for old browser compatibility, since the fallback is that the user doesn’t see a hover-over effect (with no other problems), I’m ok with that.

Читайте также:  white-space

Of course you need to define a width and height to the .background class, if there are no other elements inside of it

Ah yes, of course, I kinda was into the modal popup, don’t know why. You’re answer is of course cleaner and easier.

Not my favorite answer. Josh Crozier’s answer will help you do things without additional elements, and BevansDesign can help you achieve everything without any pseudoelement (which would be necessary if you want to use inline css for CMS reason).

From CSS-Tricks. there is a one step way to do this without z-indexing and adding pseudo elements— requires linear gradient which I think means you need CSS3 support

This worked great, you can’t animate gradients however if you wanted to pulse a color, don’t think that’s possible with any method.

I had background-size:cover; and background-position:center center; set on this element. This seems to cancel that effect.

Definitely the most convenient way to tint background patterns and images but be careful to check it with Chrome and others, especially if applied to the body tag, chrome will scroll with a tonne of lag. FF handles it fine.

You can also use a linear gradient and an image: http://codepen.io/anon/pen/RPweox

This is because the linear gradient function creates an Image which is added to the background stack. https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient

.background < background-image: url(images/images.jpg); display: block; position: relative; >.background::after < content: ""; background: rgba(45, 88, 35, 0.7); position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 1; >.background > *

You need then a wrapping element with the bg image and in it the content element with the bg color:

I’ve used this as a way to both apply colour tints as well as gradients to images to make dynamic overlaying text easier to style for legibility when you can’t control image colour profiles. You don’t have to worry about z-index.

.background-image < background: url('../img/bg/diagonalnoise.png') repeat; >.background-image:before

This should be the accepted answer since it avoids unnecessary elements creation. Just make sure your .background-image div has at least a position: relative

See my answer at https://stackoverflow.com/a/18471979/193494 for a comprehensive overview of possible solutions:

  1. using multiple backgrounds with a linear gradient,
  2. multiple backgrounds with a generated PNG, or
  3. styling an :after pseudoelement to act as a secondary background layer.

Please don’t post links as answers. Put the relevant code here, but link to the source you copied it from in addition.

Why so complicated? Your solution was almost right except it’s a way easier to make the pattern transparent and the background color solid. PNG can contain transparencies. So use photoshop to make the pattern transparent by setting the layer to 70% and resaving your image. Then you only need one selector. Works cross browser.

This are the basic. A usage example follows where I switched from background to background-image but both properties works the same.

body < margin: 0; >div < height: 110px !important; padding: 1em; text-transform: uppercase; font-family: Arial, Helvetica, sans-serif; font-weight: 600; color: white; text-shadow: 0 0 2px #333; >.background < background-image: url('https://www.transparenttextures.com/patterns/arabesque.png');/* transparent png image */ >.col-one < background-color: rgb(255, 255, 0); >.col-two < background-color: rgb(0, 255, 255); >.col-three
 
1. Background
2. Background
3. Background

PLEASE WAIT A MINUTE! IT TAKES SOME TIME TO LOAD THE EXTERNAL PATTERNS.

This website seems to be rather slow.

Can you apply background-color with for example :hover and that would overlay on top of the background image?

I tried this but found the transparent png was quite large (~500kb) in file size, which may be a disadvantage of this approach

@madz I spoke of making a pattern — which shouldn’t result in a big file. I added an example using a 110x110px image that has as little as 5kb. If you really need a bigger image try using tinypng.com to compress it.

Here is a more simple trick with only css.

  .background < position:relative; height:50px; background-color: rgba(248, 247, 216, 0.7); background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJElEQVQYV2NctWrVfwYkEBYWxojMZ6SDAmT7QGx0K1EcRBsFAADeG/3M/HteAAAAAElFTkSuQmCC); >.background:after 
background-image: linear-gradient(180deg, rgba(255,255,255,0) 0, rgba(0,0,0,0.6) 0),url(images/image.jpg); 

from an answer of mine at How to add a color overlay to a background image? marked as a duplicate of that question where no pseudo element ,nor extra element is required.

That duplicate, right here and after a few years, is still missing the background-blend-mode property , widely implemented nowdays (It lays below the multiple background and inset shadow examples).

So here is about my answer out there, answer that gives you 3 easy ways without extra markup nor pseudos :

At first , i saw two easy options at that time (2016, those two option are also within answers standing here too, so nothing really new to add about these, . mind the third one if you already read other answers about bg and box-shadow):

  • multiple background with a translucent single gradient over image from an an old codepen of mine with few examples.
  • huge inset shadow which does about the same thing as a gradient overlay

Examples given out there where:

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Images/Using_CSS_gradients

CSS gradients are represented by the data type, a special type of made of a progressive transition between two or more colors. You can choose between three types of gradients: linear (created with the linear-gradient() function), radial (created with the radial-gradient() function), and conic (created with the conic-gradient() function). You can also create repeating gradients with the repeating-linear-gradient() , repeating-radial-gradient() , and repeating-conic-gradient() functions.

Gradients can be used anywhere you would use an , such as in backgrounds. Because gradients are dynamically generated, they can negate the need for the raster image files that traditionally were used to achieve similar effects. In addition, because gradients are generated by the browser, they look better than raster images when zoomed in, and can be resized on the fly.

https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow

The box-shadow CSS property adds shadow effects around an element’s frame. You can set multiple effects separated by commas. A box shadow is described by X and Y offsets relative to the element, blur and spread radius, and color.

inset

If not specified (default), the shadow is assumed to be a drop shadow (as if the box were raised above the content). The presence of the inset keyword changes the shadow to one inside the frame (as if the content was depressed inside the box). Inset shadows are drawn inside the border (even transparent ones), above the background, but below content.

an old codepen of mine with few examples

Now, that third option missing here :

The background-blend-mode CSS property sets how an element’s background images should blend with each other and with the element’s background color.

There is of course and also other valuable ways to do this, depending on your project, CSS libraries used and the few option left over from what you already have. There is almost never a single way/method , but different ways .What matters is to find the option that suits your needs the best and efficiently, the method that you understand/master , the browser specifity, option left over from what already being used if you feel confident with or already have a javascript or a server side function that already can/do that job, use it if its already there. a wheel is a wheel.

Источник

Transparent background color in image

How can I delete or make transparent a specific background color in an image or backgroundimage? For example, I have an image and I want remove all the white pixels in it to show what is «behind» them on the page.

It might be a little impractical, but you could use an html . You could load the image into a canvas, and remove all the white pixels.

6 Answers 6

add the below line in the css

You can see the background color and white pixles will go off

I believe there is no javascript or HTML o CSS property, attribute or function that can do what you are asking.

You need to remove the background in an image editor and save the image as .gif, or png with transparent background.

I use to do it with Paint.Net but you could do it with whatever image editor you have.

+1 for this one — I would recommend PNG format, which allows semi-transparent pixels as well as transparent pixels.

I tried both a png and gif format and neither of these allow me to insert images with transparant background that remain transparant after inserting them into my html document.

When setting the background Property in CSS you can add a transparent background to the div, with the image like this:

You can only see through transparent images with PNG format. In your example, you are using a JPG format which does not have the ability to be transparent no matter what you do (unless you’re gonna use the opacity attribute in css). Either use .gif or .png when saving an image for you to get the result you want.

The solution I use is to remove the background from the image before using it. You can do it by running the image through remove.bg .

Источник

Background color over transparent PNG image in CSS

Is it actually possible to apply a background-color over a transparent PNG image in CSS ? Here’s an example: With CSS, turning this image enter image description here into this with a CSS code like background-color: rgba(0,0,300,.5) enter image description here All in full CSS (and HTML of course) ? Thanks.

No , it is not possible to change colors like that. Do you want image to get changed on hover or what.

4 Answers 4

Use CSS Filters

From an article about filters by Chris Coyier:

  • blur()
  • brightness()
  • contrast()
  • drop-shadow()
  • grayscale()
  • hue-rotate()
  • invert()
  • opacity()
  • saturate()
  • sepia()

Filter samples (based on W3S):

    img < width: 33%; height: auto; float: left; >.blur .brightness .contrast .grayscale .huerotate .invert .opacity .saturate .sepia .shadow 

Note: The filter property is not supported in Internet Explorer, Edge 12, or Safari 5.1 and earlier.

On Hover effect:

Источник

Оцените статью