changing css colors

S

Sam Carleton

How do I change the CSS colors via JavaScript DOM? Let me explain...

I am working on a Windows application (in C#) that displays some HTML.
In one place the HTML is a status window. What happens is the static
HTML page is embedded into the application. The static page displayed
and then the C# code gets a hold of the HTML DOM from the web browser
and updates what pieces need to be updated.

What I need to do now is change the colors of everything on the static
page. At present there is an embedded CSS style in the HTML and all
the colors are defined there. Using the DOM, via C# code, how do I
change the colors of everything?

1: Can I simply update the CSS and it will auto magically happen? If
so, how does one update the CSS via the DOM?
2: Do I need to go to each individual item and change the color there?
3: Is there a better way to do this all the way around?

Sam
 
W

webEater

Sam said:
How do I change the CSS colors via JavaScript DOM? Let me explain...

I am working on a Windows application (in C#) that displays some HTML.
In one place the HTML is a status window. What happens is the static
HTML page is embedded into the application. The static page displayed
and then the C# code gets a hold of the HTML DOM from the web browser
and updates what pieces need to be updated.

What I need to do now is change the colors of everything on the static
page. At present there is an embedded CSS style in the HTML and all
the colors are defined there. Using the DOM, via C# code, how do I
change the colors of everything?

1: Can I simply update the CSS and it will auto magically happen? If
so, how does one update the CSS via the DOM?
2: Do I need to go to each individual item and change the color there?
3: Is there a better way to do this all the way around?

Sam

Hi Sam,

you can't do this via C# but only via JavaScript because C# works on
your server. JavaScript is made to dynamically change/manipulate your
DOM tree.

For exampleto change the font color of an element with id "myElement":

document.getElementById('myElement').style.color = 'red';

To change the color of all DIV element which have the className
"whatever", you should use prototype (a JavaScript library that extends
JS language):

$$('div.whatever').each(function(element) {
element.style.color = 'red';
});

^ This works in all current browsers, there are other JS methods to
change a node of your CSS definition (would be easier) but it's not
compatible to all browsers.

But there's a way to change the complete StyleSheet (CSS) file to make
your page look change.

I hope this wil help you.

Andi
 
V

vynogradov

As your css is embedded into the page you can have it modified. It's
something like /html/head/style. But it will be an unparsed text value
which you will have to parse by yourself.

It seems to me the better solution is to use classes. Like

/* in your css */
body.default * {
color: red;
}

body.changed * {
color: green;
}
.... than ...
<body class="default">..

In this case you will only have to change the class attribute of an
appropriate element (body in this case).
 
A

ASM

Sam Carleton a écrit :
How do I change the CSS colors via JavaScript DOM? Let me explain...

I am working on a Windows application (in C#) that displays some HTML.
In one place the HTML is a status window. What happens is the static
HTML page is embedded into the application. The static page displayed
and then the C# code gets a hold of the HTML DOM from the web browser
and updates what pieces need to be updated.

What I need to do now is change the colors of everything on the static
page. At present there is an embedded CSS style in the HTML and all
the colors are defined there. Using the DOM, via C# code, how do I
change the colors of everything?

1: Can I simply update the CSS and it will auto magically happen? If
so, how does one update the CSS via the DOM?
2: Do I need to go to each individual item and change the color there?
3: Is there a better way to do this all the way around?

I think best way is to have 2 titled alternate styles sheets embedded in
your files.
Then you'll just have to switch between both (or more).


<link rel="alternate stylesheet" type="text/css"
href="../../css/yellow.css" media="all" title="Yellow">
<link rel="alternate stylesheet" type="text/css"
href="../../css/blue.css" media="all" title="Blue">


Here functions for several alternate styles sheets :

function setActiveStyleSheet(title) {
var i, a, main='';
for(i=0; (a = document.getElementsByTagName("link")); i++) {
if(a.getAttribute("rel").indexOf("style") != -1) {
if(a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title)
a.disabled = false;
}
}
}
}

function getActiveStyleSheet() {
var i, a, main = 'Defaut';
for(i=0; (a = document.getElementsByTagName("link")); i++) {
if(a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("rel").indexOf("alt") != -1
&& a.getAttribute("title")
&& !a.disabled) {
main = a.getAttribute("title");
return main;
}
}
return null;
}
 
C

clintonG

I recommend a book ISBN 0-321-43032-8 entitled "Javascript and Ajax for the
web, sixth edition."

The title is very misleading as the book has scant information about using
Ajax. It is however excellent with regard to Javascript, e.g. DHTML. The
entire book is basically several dozen well written and clearly explained
snippets of Javascript for general page tasks. It should have been called
something like "DHTML Snippets Simplified with the Last Chapter Ajax
Overview"

I found this book at the library and intend to buy it myself...

<%= Clinton Gallagher
NET csgallagher AT metromilwaukee.com
URL http://clintongallagher.metromilwaukee.com/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top