Taille de police adaptée au contenant

Résolu/Fermé
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 - 4 nov. 2009 à 18:28
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 - 10 nov. 2009 à 20:37
Bonjour,
voila mon souci, par défaut la taille d'une "boite" s'adapte au texte qu'elle contient. Je voudrait faire l'inverse c'est à dire adapter la taille du texte pour qu'il entre dans une boite donnée.
La taille de la boite étant proportionnelle à celle de la page, j'imagine qu'il va falloir calculer ça dynamiquement en JS...
Est-ce qu'il existe un outil tout fait ?

Merci !
A voir également:

4 réponses

bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
5 nov. 2009 à 10:45
et en mettant la taille du texte qui s'affiche dans ta boite en " % " via une css ? ça devrait aller non ...
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
5 nov. 2009 à 17:39
Négatif, le pourcentage fait référence à la taille de la police du conteneur parent.
Merci quand même.
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
6 nov. 2009 à 18:30
Up ?
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
10 nov. 2009 à 20:37
On est jamais mieux servi que par soit même ;-)
Voila donc ce que j'ai pondu :
<html>
	<head>
	</head>
	<body>
	 <div id="div1" style="border: 1px solid black; width:250px; height : 50px">
	 Du texte !
	 </div>
	 <div id="div2" style="border: 1px solid black; width:250px; height: 50px;">
	 Encore du texte !
	 </div>
	 <script type="text/javascript">
	 	function _div_ajuster_(){
	 		div = document.getElementById('_div_ajuster_');
			if (div == null){
				div = document.createElement('div');
				div.id = '_div_ajuster_';
				div.style.position='absolute';
				div.style.visibility='hidden';
				div.style.fontSize='10px';
				div.style.width = '';
				div.style.height = '';
				document.body.appendChild(div);
			}
			return div;
	 	}
		function ajuster_largeur(id){
			div1 = document.getElementById(id);
			
			div2 = _div_ajuster_();
			div2.innerHTML = div1.innerHTML;
			
			w_init = div2.clientWidth;
			t_init = div2.style.fontSize;
			w_final = div1.clientWidth;
			t_final = parseInt(t_init) / w_init * w_final;
			div1.style.fontSize = t_final + "px";
	 	}
	 	function ajuster_hauteur(id){
			div1 = document.getElementById(id);
			
			div2 =  _div_ajuster_();
			div2.innerHTML = div1.innerHTML;
			
			h_init = div2.clientHeight;
			t_init = div2.style.fontSize;
			h_final = div1.clientHeight;
			t_final = parseInt(t_init) / h_init * h_final;
			div1.style.fontSize = t_final + "px";
	 	}
	 	function ajuster(id){
			div1 = document.getElementById(id);
			
			if (div1.style.height == '')
				ajuster_largeur(id);
			else if (div1.style.width == '')
				ajuster_hauteur(id);
			else {			
				div2 =  _div_ajuster_();
				div2.innerHTML = div1.innerHTML;
				
				t_init = div2.style.fontSize;
				w_init = div2.clientWidth;
				w_final = div1.clientWidth;
				h_init = div2.clientHeight;
				h_final = div1.clientHeight;
				
				t_larg = parseInt(t_init) / w_init * w_final;
				t_haut = parseInt(t_init) / h_init * h_final;
				
				div1.style.fontSize = Math.min(t_larg, t_haut) + "px";
			}
	 	}
	 	
	 	ajuster('div1');
	 	ajuster('div2');
	 </script>
	</body>
</html>

Remarque :
Ça marche aussi bien avec des dimensions en pourcentage...
0