ChrisB: Code via DOM != identischer code direkt in HTML??? HÄ??

Beitrag lesen

Hi,

hier mal ein Beispiel, wie man das für moderne Browser umsetzen könnte, ganz ohne Grafiken:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<title>Progressbars</title>  
<meta http-equiv="content-type" content="text/html; charset=utf-8" />  
<style type="text/css">  
#progressbar1 { width:500px; height:20px; padding:1px; border:1px solid #000; }  
#progressbar1 span { background:red; display:inline-block; height:20px; }  
#progressbar1, #progressbar1 span {-moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }  
</style>  
<script type="text/javascript">  
/* <![CDATA[ */  
var span, progress = 0;  
window.onload = function() {  
	span = document.getElementById("progressbar1").firstChild;  
	document.onclick = function() {  
		progress += 10;  
		if(progress > 100) { progress = 0; }  
		span.style.width = progress+"%";  
	}  
	document.documentElement.title = "Klicken, um Progressbar vorwärts zu bewegen";  
	document.onclick();  
}  
/* ]]> */  
</script>  
</head>  
<body>  
<div id="progressbar1"><span></span></div>  
</body>  
</html>

Getestet in (halbwegs) aktuellen Firefox, Opera, Safari und Chrome, sowie IE9-Modus im IE-Tester.
Ebenfalls im IETester zumindest soweit „abwärts-kompatibel“ bis runter zum 5.5er, dass wenigstens der Balken und Fortschritt angezeigt werden, wenn auch nicht „hübsch rund“.

Wenn man nicht will, dass das bei 0% gar nichts anzeigt, kann man eine min-width für den Span angeben; oder den JavaScript-Teil, der den Prozentwert setzt, dafür sorgen lassen, dass der Bereich von Null bis 100% nicht über die komplette Breite umgesetzt, sondern eine Startbreite hinzugenommen wird.
Weitere Feinheiten, wie bspw. Umgang mit gebrochenden Prozentwerten und ggf. notwendige Rundung, insb. was den exakten Abschluss bei 100% angeht, bitte selber erarbeiten.

Und wenn jemandem wirklich das Herz blutet, weil veraltete Browser das nicht hübsch abgerundet, sondern eckig anzeigen - der kann dann immer noch ein paar Grafiken hinzunehmen, wenn er den Extra-Aufwand nicht scheut.

MfG ChrisB

--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?