4

Is there a way to create a color gradient in CSS without using an image file?

I am trying to give a DIV a background with a color gradient so that it looks glossy.

0

5 Answers 5

7

Safari (Webkit) supports it: http://webkit.org/blog/175/introducing-css-gradients/

Firefox 3.6+ supports it: https://developer.mozilla.org/en/CSS/-moz-linear-gradient

W3 spec defines support for it: http://dev.w3.org/csswg/css3-images/#gradients-

And you can use Modernizr to detect support and fall back on an image: http://www.modernizr.com/docs/#cssgradients

Sign up to request clarification or add additional context in comments.

1 Comment

Hm, and WebKit went ahead and invented their own syntax different from the W3 one. Genius. But still, keep in mind that the alleged "definition" is no more than a draft, so the W3C hasn't defined anything, they're still pondering how it might look like.
2

Try this if you are using or can use PHP

http://snipplr.com/view/26070/multicolor-gradient-generator/

http://www.designdetector.com/2005/09/css-gradients-demo.php

See javascript solutions here

jQuery gradient plugin?

http://www.bennadel.com/blog/1014-Creating-Transparent-Gradients-With-jQuery.htm

Some gradient image generator

http://www.roundedcornr.com/

http://gradient-maker.com/

http://www.grsites.com/generate/group/4000/

http://tools.dynamicdrive.com/gradient/

http://www.allcrunchy.com/Web_Stuff/Gradient_Generator/

71 Gradient Resources for Web Design

http://vandelaydesign.com/blog/tools/gradient-resources/

Comments

2

Sure Is (using color: Royal Blue, Hex Code: #002366 as an example (example taken from: http://www.99colors.net/name/royal-blue):

<div class="gradient">[Your DIV text and what not]</div>

/* CSS Background Gradient */
.gradient
{
    background-color: #628AD9;
    /* For WebKit (Safari, Chrome, etc) */
    background: #628AD9 -webkit-gradient(linear, left top, left bottom, from(#001640), to(#628AD9)) no-repeat;
    /* Mozilla,Firefox/Gecko */
    background: #628AD9 -moz-linear-gradient(top, #001640, #628AD9) no-repeat;
    /* IE 5.5 - 7 */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#001640, endColorstr=#628AD9) no-repeat;
    /* IE 8 */
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#001640, endColorstr=#001640)" no-repeat;
}

Comments

1

Webkit browsers support pure-CSS gradients like this (see this example in Safari or Chrome) - but practically speaking for a cross-browser implementation you'll need to use images.

1 Comment

While still using images, a flexible solution: alistapart.com/articles/supereasyblendys
1

Go to http://www.colorzilla.com/gradient-editor/#ffffff+0,e5e5e5+100;White+3D

You will see it generates the following code for the displayed glossy gradient there. You can change the gradient and copy the new code.

 background: rgb(255,255,255); /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlNWU1ZTUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top,  rgba(255,255,255,1) 0%, rgba(229,229,229,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(229,229,229,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* IE10+ */
background: linear-gradient(to bottom,  rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e5e5e5',GradientType=0 ); /* IE6-8 */

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.