Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    assegna all'UL una width uguale alla somma delle width dei suoi LI

    buona giornata a tutti...

    mi date un consiglio?

    ho un contenitore di larghezza data in overflow:auto;

    al suo interno ci stendo una UL con i LI di grandezza data flottati a sinistra...

    ho bisogno che all'UL venga assegnato al volo un valore di widht pari alla somma delle widht dei suoi LI...

    lo so fare con jQuery... ma devo evitare...

    sono sicuro che si possa fare con due righe di js...
    mi date una dritta? avete un paio di minuti?

    grazie in anticipo e comunque...

    vi regalo una battuta di spinoza.it
    "Tagli all’istruzione: ieri proteste sullo stretto di Catania."
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    prova partendo da una cosa del genere
    codice:
    var ul=document.getElementById('idUl');
    var lis=ul.getElementsByTagName('li');
    var w=0;
    for(var k=0,l=lis.length;k<l;++k){
      w+=lis[k].offsetWidth;
    }
    ul.style.width=w+'px';

  3. #3
    grazi Xinod...

    ho fatto così...

    codice:
    <script type="text/javascript">
    function idealWidth()
    {
    var ul=document.getElementById('lista');
    var lis=ul.getElementsByTagName('li');
    var w=0;
    for(var k=0,l=lis.length;k<l;++k){
      w+=lis[k].offsetWidth;
    }
    ul.style.width=w+'px';
    }
    </script>
    com'è meglio richiamarla, all'onload?

    <body onload="idealWidth()">
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    va bene onload
    anche se e' sempre meglio non aggiungerlo al body, ma nello script stesso
    window.onload=idealWidth; // niente tonde

    se non ti fai scrupoli ad avere script immersi nel markup potresti anche farlo eseguire dopo aver definito nell' html questi elementi

    <ul id="lista">[*]
    ...[/list]
    <script type="text/javascript">
    var ul=document.getElementById('lista');
    var lis=ul.getElementsByTagName('li');
    var w=0;
    for(var k=0,l=lis.length;k<l;++k){
    w+=lis[k].offsetWidth;
    }
    ul.style.width=w+'px';
    </script>

  5. #5
    ancora più pulito...
    grazie...

    una cosa un po' OT e totalmente teorica: dal momento che va inserito nel markup (non ho problemi ad inserirlo, nemmeno teorici, se fatto con misura), mi chiedevo:
    si può inserire dinamicamente js nel markup? js via js?
    certo dipende quando deve partire la sua azione, uno script che parte prima della fine della generazione del documento forse non si può... ma altri tipi?
    te da esperto che mi puoi dire... è un'idea balzana da niubbo?


    un saluto
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    gli <script> si creano e appendono con i metodi del DOM, come gli altri elementi

  7. #7
    riapro questa discussione un attimo:

    mi diceva Xinod
    se non ti fai scrupoli ad avere script immersi nel markup potresti anche farlo eseguire dopo aver definito nell' html questi elementi

    <ul id="lista">[*]
    ...[/list]
    <script type="text/javascript">
    var ul=document.getElementById('lista');
    var lis=ul.getElementsByTagName('li');
    var w=0;
    for(var k=0,l=lis.length;k<l;++k){
    w+=lis[k].offsetWidth;
    }
    ul.style.width=w+'px';
    </script>
    chiaramente funziona... e ci mancherebbe, me lo ha consigliato Xinod...

    il problema è che lo script parte...
    ma poi continua il rendering di altri LI (che vengono genrati via php e con un leggero ritardo rispetto al resto) e allora il calcolo della width dell'UL non torna più...

    come faccio ad eseguire lo script a s s o l u t a m e n t e dopo il caricamento della lista?


    DIMENTICAVO:
    ho provato a spulciare qui (è la strada giusta?):
    http://javascript.html.it/articoli/l...ndowonload/11/

    un saluto a tutti...
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

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.