Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Altezza DIV con OPERA

  1. #1

    Altezza DIV con OPERA

    Ciao a tutti, sono nuovo di questo Forum.

    Premetto che ho già fatto qualche ricerca ma non ho trovato nulla che potesse aiutarmi nel risolvere il mio problema.

    Sto creando un sito, dove in maniera dinamica tramite php creo una lista di item che visualizzo in un div a sinistra della pagina con largehzza fissa ma (da richiesta del capo) deve riempire in altezza tutta la pagina.
    Il problema è che il div è posizionato subito sotto un altro DIV che fa da header.

    Ho dovuto aggiungere la seguente funzione Javascript che viene chiamata sul body onload:

    <script type="text/javascript">
    function zioCan () {
    if(document.getElementById){
    var obj = document.getElementById('divAlbero');
    var altezza = document.documentElement.clientHeight - 175;
    if (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.match('MSIE 7.0')==null) {
    obj.style.cssText = 'height:' + altezza + 'px;position:absolute;';
    }
    else {
    obj.style.cssText = 'height:' + altezza + 'px;';
    }
    }
    }
    </script>

    che ha l'effetto desiderato sui seguenti browser: MSIE7, MSIE6, Firefox, Safari

    non mi funziona con OPERA!

    Da quel che ho letto, penso sia giusto segnalarvi che nel CSS del div ho impostato "overflow:auto;" e non ho impostato alcun float.

    Spero di essere stato chiaro, purtroppo capisco veramente poco di Javascript e non ho cognizione delle informazioni più utili da fornire!

    incomincio a ringraziarvi per l'attenzione e spero di dovervi ringraziare per le risposte! :-D

    Ciauuuu

  2. #2
    Non capisco perchè per assegnare l'altezza utilizzi cssText e non direttamente height!
    obj.style.height=altezza+"px" è più semplice.
    Inoltre il modo corretto di gestire la proprietà cssText è quello di utilizzarla per
    document.styleSheets[i].cssText
    document.styleSheets[i].cssRules[i].cssText
    document.styleSheets[i].cssRules[i].style.cssText
    Non tutti i browser supportano tutte e tre le implementazioni.

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Quale versione di Opera e su quale piattaforma? Per caso stiamo parlando della versione 8?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    Dalle specifiche di Opera 9 dovrebbe essere supportato...

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da H5N1_Aviaria
    Non capisco perchè per assegnare l'altezza utilizzi cssText e non direttamente height!
    Perchè se devi assegnare più proprietà allo stesso, la notazione usuale diventa ridondante. Spesso, poi, è più vantaggioso definire una classe con le nuove proprietà e assegnare dinamicamente la classe all'elemento.


    Ad ogni modo se il browser che presenta il problema è Opera 8 cssText non funziona

    ...
    The second approach is to define a new style attribute for the element, instead of assigning styles one by one. Most often this is suited to dynamic chages such as animations, where the new styles cannot be known in advance. This is done using either the cssText property of the style object, or by using setAttribute. Internet Explorer does not allow the second version, and needs the first. Some older browsers, including Opera 8, need the second approach, and do not understand the first...
    tratto da http://dev.opera.com/articles/view/e...script/?page=3

    Nella pagina c'è anche il workaround da utilizzare per questo specifico problema
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Grazie della tua tmepestiva risposta!

    Lo style.height è una strada che avevo già percorso in diversi modi (anche perché è la più suggerita - forse perché la migliore - dal web) ma senza ottenere alcun risultato (o meglio funziona solamente con Firefox!)

    per aiutarvi nell'aiutarmi vi posto anche il CSS del div (che si chiama divAlbero)

    #divAlbero {
    position:fixed;
    top:155px;
    left:50%;
    width:259px;
    overflow:auto;
    margin-left:-495px;
    padding:2px;
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px;
    color:#000000;
    cursorointer;
    border:solid 2px #FF0000;
    background-color:#EEEEEE;
    }

  7. #7
    Originariamente inviato da fcaldera
    Spesso, poi, è più vantaggioso definire una classe con le nuove proprietà e assegnare dinamicamente la classe all'elemento.
    Ma non è questo il caso.

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da H5N1_Aviaria
    Ma non è questo il caso.

    tra
    obj.style.cssText = 'height:' + altezza + 'px;position:absolute;';

    oppure
    obj.style.height = altezza + 'px;'
    obj.style.position = 'absolute';

    preferisco la prima sintassi. Anche perchè ci sono delle proprietà che in javascript devono essere scritte in modo preciso (camelCase) o diverso (z-index in css o zIndex in notazione javascript)

    Poi ognuno usa la notazione che preferisce (anche per leggibilità) ma ritengo che sia meglio assegnare dinamicamente una classe piuttosto che cambiare al volo singole proprietà. (Nel suo caso non può ricorrere a questa alternativa perchè deve calcolare l'altezza 'al volo')

    Milord hai visto gli interventi precedenti al tuo ultimo post?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    dunque, alla luce di quel che ho letto:

    Opera è la versione 9.24 sto testando su piattaforme win32 (il capo mi ha concesso di non testare le altre piattaforme :-D )

    la proprietà style.height funziona solamente scon firefox, gli altri niente da fare!

    se vi servono altre notizie...

    chiedete!

    :-D

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    prova a farti stampare la variabile altezza dopo averla valorizzata.

    var altezza = document.documentElement.clientHeight - 175;
    alert(altezza);


    giusto per essere sicuri che anche su Opera il valore sia calcolato correttamente
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.