Visualizzazione dei risultati da 1 a 5 su 5

Discussione: dimensione testo

  1. #1

    dimensione testo

    C'è un comando in js per estrarre l'attuale dimensione del font in un div? (per poi variarla)
    Al momento riesco a variare la dimensione dandogli un valore fittizzio ma non modificandolo in base a quale era prima.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il modo c'e',
    ma quello che ti verra' restituito dipende molto dal browser e se la dimensione e' stata settata via css o meno;
    sta a te interpretare il dato correttamente
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
    <
    head>
    <
    title>font-size fisico in div</title>
    <
    meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <
    style type="text/css">
    #id_div{
        /* font-size:5em; */
    }
    </
    style>
    <
    script type="text/javascript">
    /*<![CDATA[*/
    function getCssProperty(el,styleCss){
      
    // se invece dell'oggetto fosse passato solo l'id, allora recupero l'oggetto
      
    if(typeof(el)=='string') var el document.getElementById(el);

        
    // funzione per converite la sintassi Css in quella usata da Javascript
        
    function toCamelCase(s) {
            for(var 
    exp toCamelCase.exp;
                
    exp.test(s); s.replace(expRegExp.$1.toUpperCase()) );
            return 
    s;
        }
        
    toCamelCase.exp = /-([a-z])/;
        var 
    styleJs=toCamelCase(styleCss);
        
        
    // se l'elemento avesse già un valore inline (che predomina) restituisco quello
        
    var value el.style[styleCss];
        if(!
    value)
            
    // metodo x FF: vuole il nome della proprietà con la sintassi originale
            
    if(document.defaultView)    value document.defaultView.getComputedStyle(elnull).getPropertyValue(styleCss);
            
    // metodo x IE: vuole il nome della proprietà con la sintassi javascript
            
    else if(el.currentStyle)    value el.currentStyle[styleJs];
        return 
    value;
    }
    window.onload=function(){
        
    alert(getCssProperty('id_div','font-size'));
    }
    /*]]>*/
    </script>
    </head>
    <body>
    <div id="id_div">ciao mondo</div>
    </body>
    </html> 
    risultati (non specificando il font-size):
    FF/Opera -> 16px
    IE -> 12pt
    (decommentando il font-size):
    FF/Opera -> 80px
    IE -> 5em

    ciao

  3. #3
    Idea:
    non è che si può fare attraverso un cookie?

    Nel senso:
    - se non c'è il cookie setto grandezza base di partenza
    - se c'è recupero quel dato e cambio la dimensione in base a questo

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    certamente, ma questo non vuol dire rilevare la dimensione del testo

    se ti vuoi basare su un cookie c'e' anche un esempio gia' pronto
    http://www.constile.org/DHTML/ridime...e_i_caratteri/

  5. #5
    Grazie,
    nel frattempo ero riuscito a scrivere una "via di mezzo"

    codice:
    function more(){
    	var x=document.getElementById('content');
    	if(x.style.fontSize){
    		var s = parseFloat(x.style.fontSize)+0.2;
    		x.style.fontSize=s+'em';
    	}else{
    		x.style.fontSize='1.2em';
    	}
    }
    function less(){
    	var x=document.getElementById('content');
    	if(x.style.fontSize){
    		var s = parseFloat(x.style.fontSize)-0.2;
    		x.style.fontSize=s+'em';
    	}else{
    		x.style.fontSize='0.8em';
    	}
    }
    Però grazie ai cookie dovrei riuscire a mantenere il settaggio dell'utente anche da pagina a pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.