Turn Any Webpage Grayscale with a Few Simple CSS Filters
This guide explains why and how to convert an entire website to black‑and‑white using CSS filter properties, provides two practical methods with code snippets, addresses browser compatibility, DOCTYPE requirements, and even Flash handling, and ends with a ready‑to‑use CSS block.
Overview
Applying a grayscale filter to an entire web page can be done with a few CSS declarations, avoiding the need to rewrite individual component styles.
Method 1 – CSS filter property
html {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
/* IE 6‑8 */
filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}Standard filter works in modern browsers. WebKit‑based browsers (Chrome, Safari) require the -webkit-filter prefix. The Microsoft‑specific filter provides fallback for legacy Internet Explorer.
Method 2 – Compatibility adjustments
If the page does not use a modern DOCTYPE, replace the top of the document with the XHTML 1.0 Transitional declaration so that the CSS filter is recognized:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">For pages that embed Flash, the filter does not affect the movie’s colors. Adding the following <param> elements forces an opaque background, allowing the page‑level filter to be visible:
<param name="menu" value="false"/>
<param name="wmode" value="opaque"/>Full cross‑browser CSS
The block below can be placed in any stylesheet to achieve a grayscale effect in most browsers, including a fallback using an SVG data‑URL for browsers that support url() filters.
html {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
/* SVG filter fallback */
filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale");
/* IE 6‑8 fallback */
filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Architect Essentials
Committed to sharing quality articles and tutorials to help Java programmers progress from junior to mid-level to senior architect. We curate high-quality learning resources, interview questions, videos, and projects from across the internet to help you systematically improve your Java architecture skills. Follow and reply '1024' to get Java programming resources. Learn together, grow together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
