Bonsoir

CSS3 introduit de nouvelles unités, dont "rem". Cette unité est beaucoup plus simple à manipuler que "em" car il se réfère toujours à la taille du font-size de l'élément HTML.

En adoptant : html {font-size:62.5%; } , on peut très facilement utiliser l'unité "rem" partout, car pour ce pourcentage 1rem vaut 10px.

Après avoir adopté ce système, j'ai testé un effet de zoom très simple avec jQuery.

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<!doctype html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<meta name="Author" content="Daniel Hagnoul">
	<title>Forum jQuery</title>
	<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Redressed&subset=latin&v2'>
	<link rel="stylesheet" href="http://danielhagnoul.developpez.com/lib/jPicker/css/jPicker.dvjh-1.1.6.min.css" />	
	<style>
                /* Base */
                html {font-size:62.5%; } /* Pour 62.5% 1rem =~ 10px */
                div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {margin:0; padding:0; }
                body {background-color:rgba(122, 79, 79, 1); color:#000000; font-family:sans-serif; font-size:1.4rem; font-style:normal; font-weight:normal; line-height:normal; letter-spacing:normal; }
                h1,h2,h3,h4,h5 {font-family:'Redressed', cursive; padding:0.6rem; }
                p, div, td {word-wrap:break-word; }
                pre, code {white-space:pre-wrap; word-wrap:break-word; }
                img, input, textarea, select {max-width:100%; }
        img {border:none; }
                h1 {font-size:2.4em; text-shadow: 0.4rem 0.4rem 0.4rem #bbbbbb; text-align:center; }
                p {padding:0.6rem; }
                .conteneur {width:95%; min-width:80rem; min-height:30rem; margin:1.2rem auto; background-color:#ffffff; color:#000000; border:0.1rem solid #666666; }
                footer {margin-left:3.6rem; }
                
                /* article */
                .table {border-collapse:separate; border-spacing:0.6rem; }
                .ligne {display:table-row; }
                .ligne:nth-of-type(1) {height:20rem; }
                .ligne:nth-of-type(2) {height:20rem; }
                article {display:table-cell; text-align:left; vertical-align:top; border:0.1rem dotted grey; }
                article:nth-of-type(1) {width:20rem; }
                article:nth-of-type(2) {width:60rem; }
                */
                
                /* --- */
                .test {font-size:1rem; }
        </style>
</head>
<body>	
	<h1>Forum jQuery</h1>
	<section class="conteneur">
		<section class="table">
			<section class="ligne">
				<article>
					<p class="test">Un mot pour remplir</p>
				</article>
				<article>
					<p class="test">Un mot pour remplir</p>
				</article>
			</section>
			<section class="ligne">
				<article>
					<p class="test">Un mot pour remplir</p>
				</article>
				<article>
					<p class="test">Un mot pour remplir</p>
				</article>
			</section>
		</section>
	</section>
	<footer itemscope itemtype="http://data-vocabulary.org/Person">
		<time datetime="2011-09-09T10:25:00.000+02:00" pubdate>2011-09-09</time>
		<span itemprop="name">Daniel Hagnoul</span>
		<a href="http://www.developpez.net/forums/u285162/danielhagnoul/" itemprop="url">@danielhagnoul</a>
	</footer>
	<script charset="utf-8" src="http://code.jquery.com/jquery-1.6.4rc1.min.js"></script>
	<script charset="utf-8" src="http://danielhagnoul.developpez.com/lib/jPicker/jpicker-1.1.6.min.js"></script>
	<script>
                // Date ISO format long US
                Date.prototype.formatISO = function(){
                        this._nowFormat = 'aaaa-mm-jjThh:ii:ss.000Szz:00';
                        this._toLen2 = function(_nowStr){
                                _nowStr = _nowStr.toString();
                                return ('0'+_nowStr).substr(-2,2);
                        };
                        this._nowFormat = this._nowFormat.replace(/j+/, this._toLen2(this.getDate()));
                        this._nowFormat = this._nowFormat.replace(/m+/, this._toLen2(this.getMonth()+1));
                        this._nowFormat = this._nowFormat.replace(/a+/, this.getFullYear());
                        this._nowFormat = this._nowFormat.replace(/h+/, this._toLen2(this.getHours()));
                        this._nowFormat = this._nowFormat.replace(/i+/, this._toLen2(this.getMinutes()));
                        this._nowFormat = this._nowFormat.replace(/s+/, this._toLen2(this.getSeconds()));
                        this._nowFormat = this._nowFormat.replace(/S+/, (this.getTimezoneOffset() < 0) ? ("+") : ("-"));
                        this._nowFormat = this._nowFormat.replace(/z+/, this._toLen2(Math.abs(this.getTimezoneOffset()/60)));
                        return this._nowFormat;
                };
 
                $(function(){
                        /* -- */
                        console.log(new Date().formatISO());
                        
                        //effet de zoom : utilisation des rem (CSS3) et de jQuery. IE9 et mieux.
                        setTimeout(function(){
                                $("html").animate({"font-size": "+=20%"}, 10000).animate({"font-size": "-=20%"}, 10000);
                        },5000);
                        
                        /* jPicker : http://www.digitalmagicpro.com/jPicker/, outil pour choisir rapidement une couleur */
                        $.fn.jPicker.defaults.images.clientPath="http://danielhagnoul.developpez.com/lib/jPicker/images/";
                        $(".conteneur").jPicker({window:{expandable:true,title:"jPicker : choissisez une couleur :",
                        alphaSupport:true,position:{x:'screenCenter',y:'top'}},color:{ active:new $.jPicker.Color({ r: 210, g: 214, b: 98, a: 128 })}},
                        function(color, context){var c = color.val("all");if (c){$("body").css("backgroundColor", "rgba(" +
                        c.r + "," + c.g + "," + c.b + "," + (c.a/255).toFixed(2) + ")");}});
                });
        </script>
</body>  
</html>