Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    elementi (li) personalizzati manualmente con spaziatura

    Ciao ragazzi, per un sito che sto creando dovrei inserire degli elementi <li> numerandoli ,in maniere diverse, ad esempio numeri tra parentesi (1), (2), (3), (3.1), (3.2), (4), o lettere X1, X2, X3 o in alcuni casi non inserendo proprio le numerazioni.. Dovendo affrontare diversi tipi di numerazioni pensavo che la soluzione migliore fosse simulare la numerazione inserendo la numerazione manualmente come ho fatto nel sito:

    screen.jpg


    Ma come notate c'è un problema, se inserisco la numerazione manualmente, il testo quando va a capo si posiziona SOTTO il numero, cosa che in un elenco numerato non dovrebbe accadere, esempio:





    1. BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA
    2. BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA Testo va a capo correttamente BLA BLA BLA BLA




    Come notate, il testo non appare sotto il numero, ma va a capo mantenendo un pò di spazio dalla numerazione. C'è un modo per fare questa cosa manualmente e magari SOLO dove dico io?


    Perchè ho creato nel sito una struttura <ul> <li> con classi che vengono richiamate anche con Javascript e che si espandono al click, quindi non vorrei dover smembrare tutto il codice pre-esistente ma inserire
    questa funzionalità solo dove neccesario.


    Mi affido alla vostra esperienza per sbrogliare questo grattacapo, vi condivido anche il link della pagina che sto creando, cosi avete un'idea piu' chiara del contenuto che sto creando (Script ad albero con elementi li, espandibili o richiudibili e altra, roba, insomma non proprio una delle liste <li> più semplici, attualmente sto inserendo il contenuto della sezione "COSMOLOGICAL":
    PAGINA DEL SITO
    Ultima modifica di jeyjack; 03-03-2022 a 18:01

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Dovendo affrontare diversi tipi di numerazioni pensavo che la soluzione migliore fosse simulare la numerazione inserendo la numerazione manualmente come ho fatto nel sito:
    Ciao, a mio parere "manualmente" è sempre sinonimo di "artigianale"; a meno che non parliamo di cestini in vimini e coltelli sardi in corno di muflone, non è mai la soluzione migliore per applicazioni web.

    Perchè ho creato nel sito una struttura <ul> <li> con classi che vengono richiamate anche con Javascript e che si espandono al click, quindi non vorrei dover smembrare tutto il codice pre-esistente ma inserire
    questa funzionalità solo dove neccesario.
    HINT: la maggior parte degli elementi HTML hanno funzioni specifiche e un valore semantico per la corretta fruizione dei contenuti. Per gli elenchi numerati sarebbe più opportuno e logico usare <ol> (ordered list) anziché <ul> (unordered list). Nel tuo caso cambierebbe poco a livello strutturale, perché ad ogni modo vai a personalizzare l'indicatore degli elementi <li>, ma ciò non toglie che è sempre meglio fare un uso appropriato degli elementi in base alla loro specifica funzione e semantica.

    Arrivando al dunque, personalmente risolverei la cosa alla radice usando in modo opportuno gli strumenti HTML e CSS. Niente numerazioni applicate in modo manuale; dal momento che hai delle liste, usale per quello che sono. Il CSS offre la possibilità di usare dei contatori, attraverso uno pseudo-elemento, così che si possano creare delle sequenze personalizzate per gli indicatori delle liste.

    In questo modo, magari definendo delle specifiche classi, puoi applicare numeri con parentesi, punti, lettere, capre e quant'altro vorrai.

    Qui un esempio:
    codice:
    <!DOCTYPE HTML>
    <html lang="it">
      <head>
        <title>Esempio</title>
        <style>
    
          ol.num-list {
            counter-reset: num-list;
          }
          ol.num-list li {
            display: block;
            margin: 8px 0;
          }
          ol.num-list li:before {
            content: "(" counters(num-list, ".") ") ";
            counter-increment: num-list;
            color: #060;
            position: absolute;
            margin-left: -8px;
            transform: translateX(-100%);
          }
    
    
          ol.x-list {
            counter-reset: x-list;
          }
          ol.x-list li {
            display: block;
            margin: 8px 0;
          }
          ol.x-list li:before {
            content: "X" counters(x-list, ".") " ";
            counter-increment: x-list;
            color: #930;
            position: absolute;
            margin-left: -8px;
            transform: translateX(-100%);
          }
    
    
          ol.capra-list {
            counter-reset: capra-list;
          }
          ol.capra-list li {
            position: relative;
            display: block;
            margin: 8px 0;
          }
          ol.capra-list li:before {
            content: "\1f410" counters(capra-list, "•") " ";
            counter-increment: capra-list;
            color: #f00;
            position: absolute;
            margin: -2px 0 0 -8px;
            transform: translateX(-100%);
          }
    
        </style>
      </head>
      <body>
    
        <ol class="num-list">
          <li>Lorem ipsum dolor sit amet
          <li>Consectetur adipiscing elit. Morbi venenatis nibh sit amet mi elementum semper. 
          <li>Quisque suscipit sem non est eleifend consectetur.
            <ol class="num-list">
              <li>Suspendisse malesuada massa lorem, id pharetra arcu iaculis a.
              <li>Aliquam in dolor vitae purus interdum vulputate vel ac augue.
              <li>Nulla congue vehicula purus eget scelerisque. Nunc eget lacus at arcu scelerisque gravida ut non lectus. Maecenas ullamcorper libero ex, eleifend porttitor lacus convallis a. Suspendisse malesuada massa lorem, id pharetra arcu iaculis a.
            </ol>
          <li>Nullam suscipit metus id sem eleifend, ut molestie eros dictum.
          <li>Curabitur faucibus urna nec ullamcorper pharetra.
        </ol>
    
        <hr>
    
        <ol class="x-list">
          <li>Nunc eget lacus at arcu scelerisque gravida ut non lectus.
          <li>Donec sit amet felis in justo hendrerit ornare eu sed risus. 
            <ol class="x-list">
              <li>Fusce suscipit, eros id cursus suscipit
              <li>Urna orci ullamcorper velit, sed ultricies mauris enim sed quam. 
            </ol>
          <li>Sed nibh ante, tempor ac eleifend non, sodales a massa.
          <li>Phasellus ornare elementum semper. 
          <li>Maecenas ullamcorper libero ex, eleifend porttitor lacus convallis a.
        </ol>
    
        <hr>
    
        <ol class="capra-list">
          <li>Nunc eget lacus at arcu scelerisque gravida ut non lectus.
          <li>Donec sit amet felis in justo hendrerit ornare eu sed risus. 
            <ol class="capra-list">
              <li>Fusce suscipit, eros id cursus suscipit
              <li>Urna orci ullamcorper velit, sed ultricies mauris enim sed quam. 
                <ol class="capra-list">
                  <li>Sed nibh ante, tempor ac eleifend non, sodales a massa.
                  <li>Phasellus ornare elementum semper. 
                </ol>
            </ol>
          <li>Maecenas ullamcorper libero ex, eleifend porttitor lacus convallis a.
        </ol>
    
      </body>
    </html>
    Una volta definite le diverse classi col relativo CSS, potrai applicarle agli elementi <ol> per ottenere i diversi elenchi personalizzati.

    Il problema della spaziatura/indentazione l'ho risolto posizionando opportunamente lo pseudo-elemento ":before" in cui è contenuto l'indicatore personalizzato.

    Prova ad applicarlo al tuo elaborato e fai sapere.
    Chiedi pure, se ti servono ulteriori chiarimenti sul codice che ho usato.




    HINT: ricorda di usare il validatore. Nella pagina lincata vedo che gli errori stanno crescendo sempre di più rispetto all'ultimo problema; meglio correggerli da bambini prima che prendano il sopravvento.

    Ad esempio vedo diversi <div class="spacing"></div> che hai posto come figli di elementi <ul>, ma un elemento <ul> può avere solo figli <li>. Se il tuo intento è quello di creare un margine iniziale, esistono modi più consoni usando opportunamente il CSS.

    Ma vabbè, viva l'artigianato
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Quote Originariamente inviata da KillerWorm
    Ciao, a mio parere "manualmente" è sempre sinonimo di "artigianale"; a meno che non parliamo di cestini in vimini e coltelli sardi in corno di muflone, non è mai la soluzione migliore per applicazioni web.
    Ciao KillerWorm effettivamente quella che sembra la soluzione più semplice, non sempre è la migliore.
    Proverò ad applicare i tuoi consigli, però ti chiedo di darmi una mano a sbrogliare un pò di grattacapi che derivano dal dovere inserire nell'OL alcuni elementi senza numerazione e dovendo integrare il tutto nello Javascript che permette di espandere e contrarre il contenuto (tree view)

    Utilizzando il seguente codice (alternando UL e OL):
    codice:
    <ul id="myUL">      <li><span class="caret"><b>Kalam</b></span>        <ul class="nested">          <li><span class="caret">Craig</span>            <ol class="num-list">            <div class="spacing"></div>              <li>Whatever begins to exist has a cause.</li>              <li>The universe began to exist.</li>              <li>Therefore, the universe has a cause.</li>              <li><span class="baret"> </span>            <ul class="bested">              <li>William Lane Craig, <i>The Kalam Cosmological Argument</i> (Wipf & Stock, 1979). Mark Nowacki, <i>The Kalam Cosmological Argument for God</i>, (Prometheus Books, 2007). William Lane Craig and James Sinclair, “The Kalam Cosmological Argument,” in Craig and Moreland (eds.), <i>The Blackwell Companion to Natural Theology</i>, (Blackwell, 2009), ch. 3. Jabocus Erasmus, <i>The Kalam Cosmological Argument: A Reassessment</i> (Springer, 2018).</li>            </ul>            </ol>
    Ho ottenuto questo:
    RISULTATO

    ho provveduto a pubblicare una pagina dove verificare le modifiche in atto (unica sezione modificata si trova sotto COSMOLOGICAL > Kalam > Craig dove ho provato ad applicare l'Ordered List


    Come visibile si sono presentati quindi due problemi:

    1) Avendo sostituito la classe "caret" con la classe "num-list" lo javascript che permette di contrarre/riespandere l'item "Craig" ha smesso di funzionare
    2) Vorrei evitare che comparisse la numerazione nr. (4) e (5) in quanto si tratta di un iconcina che mostra i riferimenti e che non va quindi numerata

    Per quanto riguarda il problema (1) e' legato a questo Javascript:

    codice:
    <script>window.addEventListener("DOMContentLoaded", e => {
      // Original JavaScript code by Chirp Internet: chirpinternet.eu
      // Please acknowledge use of this code by including this header.
    
    
      const getContainerHeight = el => {
        return window.getComputedStyle(el).getPropertyValue("height");
      };
    
    
      const setTransitionHeights = el => {
    
    
        let containerWasOpen = el.classList.contains("open");
    
    
        el.style.height = null;
    
    
        el.classList.remove("open", "ready");
        el.dataset.initial = getContainerHeight(el);
    
    
        el.classList.add("open");
        el.dataset.final = getContainerHeight(el);
        el.classList.remove("open");
    
    
        if (containerWasOpen) {
          el.classList.add("open");
          el.style.height = el.dataset.final;
        } else {
          el.style.height = el.dataset.initial;
        }
    
    
        el.classList.add("ready");
    
    
      };
    
    
      document.querySelectorAll(".collapsible.slow").forEach(current => {
    
    
        let toggler = document.createElement("div");
        toggler.className = "toggler";
        current.appendChild(toggler);
    
    
        setTransitionHeights(current);
    
    
        toggler.addEventListener("click", e => {
          current.style.height = current.classList.toggle("open") ? current.dataset.final : current.dataset.initial;
        });
    
    
      });
    
    
      window.addEventListener("resize", e => {
    
    
        document.querySelectorAll(".collapsible.slow").forEach(current => {
          setTransitionHeights(current);
        });
    
    
      });
    
    
      var toggler = document.getElementsByClassName("caret");
      var i;
    
    
      for (i = 0; i < toggler.length; i++) {
        toggler[i].addEventListener("click", function() {
          this.parentElement.querySelector(".nested").classList.toggle("active");
          this.classList.toggle("caret-down");
    
    
          // Qui reimposto le altezze del contenitore corrente ed eseguo la transizione
          
          const collapsible = this.closest('.collapsible.slow');
          const curHeight = getContainerHeight(collapsible);
          setTransitionHeights(collapsible);
          collapsible.style.height = curHeight;
          setTimeout(() => {
            collapsible.style.height = collapsible.dataset.final
          }, 0)
    
    
        });
      }
    });
    </script>
    Che prevede il funzionamento soltanto con gli elementi "caret", ho appurato che se copio l'intero javascript e sostituisco la parte dove viene citato il "caret" con un altro elemento, lo script funziona, ma vorrei evitare di copiare l'intero javascript per ogni classe che vado ad utilizzare per la numerazione, c'e' un modo per includerne diverse modificando questo stesso javascript? (Qui riconosco le mie carenze con Javascript)

    Quote Originariamente inviata da KillerWorm
    HINT: ricorda di usare il validatore. Nella pagina lincata vedo che gli errori stanno crescendo sempre di più rispetto all'ultimo problema; meglio correggerli da bambini prima che prendano il sopravvento.

    Ad esempio vedo diversi <div class="spacing"></div> che hai posto come figli di elementi <ul>, ma un elemento <ul> può avere solo figli <li>. Se il tuo intento è quello di creare un margine iniziale, esistono modi più consoni usando opportunamente il CSS.

    Ma vabbè, viva l'artigianato
    Ti prometto che appena sistemo questa questione delle numerazioni, sistemero' i vari problemi di validazione presenti. Ti ringrazio anticipatamente per il tuo supporto!
    Ultima modifica di jeyjack; 04-03-2022 a 10:45

  4. #4
    Sorry non mi permette piu' di modificare il messaggio precedente, ma mi sono accorto adesso che bastava chiudere prima l'OL </ol> per risolvere il problema numero 2, quindi al momento resta solo il problema nr. 1 dello Javascript e un altra cosa che mi chiedo, come vado ad inserire i sottopunti quando necessario?, ad es numerare cosi (1)(1.1)(2)

    Ecco l'esempio di come dovro' andare ad inserire i sottopunti:
    Immagine

    Al momento per inserire il rientro ho dato al'elemento <li> la classe spacing2
    Ultima modifica di jeyjack; 04-03-2022 a 12:14

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    1) Avendo sostituito la classe "caret" con la classe "num-list"
    Fai attenzione, non ho indicato che devi sostituire le classi che avevi già; quelle puoi mantenerle. "num-list" puoi aggiungerla agli <ol> assieme a quelle che avevi già.

    c'e' un modo per includerne diverse modificando questo stesso javascript? (Qui riconosco le mie carenze con Javascript)
    Non hai alcun bisogno di modificare nulla nel JavaScript; il problema non è la classe "caret" ma è "nested".

    Nel caso specifico la tua struttura aveva una classe "nested" che rispondeva all'azione del toggle ma che hai rimosso. Ovviamente puoi mantenerla aggiungendo anche l'altra.

    codice:
    <ol class="nested num-list">
    bastava chiudere prima l'OL </ol> per risolvere il problema numero 2
    Non proprio, in quel caso l'icona resterebbe visibile anche se è chiuso l'elemento <ol>. Non ho capito però se ti possa andare ugualmente bene. In caso contrario si potrebbe pensare ad una qualche soluzione.

    un altra cosa che mi chiedo, come vado ad inserire i sottopunti quando necessario?, ad es numerare cosi (1)(1.1)(2)
    Organizza meglio la struttura ad albero. Se quelle sotto voci "(1.1), (1.2)" sono dei rami figli, come la logica vorrebbe, perché non inserirle in un ulteriore <ol>?

    Guarda meglio il mio codice di esempio, e vedi come ho organizzato gli <ol> annidati per ottenere appunto dei sotto elenchi.

    Ti prometto che appena sistemo questa questione delle numerazioni, sistemero' i vari problemi di validazione
    Bene ma sarà buon per te, a me non mi ci entra nulla in tasca

    Buon proseguimento, fai sapere se hai bisogno di ulteriore aiuto
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Fai attenzione, non ho indicato che devi sostituire le classi che avevi già; quelle puoi mantenerle. "num-list" puoi aggiungerla agli <ol> assieme a quelle che avevi già.

    Non hai alcun bisogno di modificare nulla nel JavaScript; il problema non è la classe "caret" ma è "nested".

    Nel caso specifico la tua struttura aveva una classe "nested" che rispondeva all'azione del toggle ma che hai rimosso. Ovviamente puoi mantenerla aggiungendo anche l'altra.

    codice:
    <ol class="nested num-list">
    Si hai ragione e' nested il problema, su questo punto ho risolto inserendo la doppia classe come dici, il primo problema e' andato!

    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Non proprio, in quel caso l'icona resterebbe visibile anche se è chiuso l'elemento <ol>. Non ho capito però se ti possa andare ugualmente bene. In caso contrario si potrebbe pensare ad una qualche soluzione.
    Si effettivamente resta fuori al momento, preferirei che comparisse comunque sotto la voce Craig come in precedenza. Come posso ovviare a questa cosa? C'e' un modo per far si che alcuni elementi <li> non siano numerati? Ho provato ad applicare agli elementi li o all'UL list-style: none; ma pare non sia sufficiente..

    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Organizza meglio la struttura ad albero. Se quelle sotto voci "(1.1), (1.2)" sono dei rami figli, come la logica vorrebbe, perché non inserirle in un ulteriore <ol>?

    Guarda meglio il mio codice di esempio, e vedi come ho organizzato gli <ol> annidati per ottenere appunto dei sotto elenchi.
    ho provato a farlo ma il risultato e' questo. (Link alla pagina QUI)
    Dove sbaglio?

    Ti posto il codice che ho utilizzato:
    codice:
    <ul id="myUL">      <li><span class="caret"><b>Kalam</b></span>
            <ul class="nested">
              <li><span class="caret">Craig</span>
                <ol class="nested num-list">
                <div class="spacing"></div>
                  <li>Whatever begins to exist has a cause.</li>
                  <li>The universe began to exist.</li>
                    <ol class="num-list">
                      <li>Suspendisse malesuada massa lorem, id pharetra arcu iaculis a.
                      <li>Aliquam in dolor vitae purus interdum vulputate vel ac augue.
                      <li>Nulla congue vehicula purus eget scelerisque. Nunc eget lacus at arcu scelerisque gravida ut non lectus. Maecenas ullamcorper libero ex, eleifend porttitor lacus convallis a. Suspendisse malesuada massa lorem, id pharetra arcu iaculis a.
                    </ol>
                  <li>Therefore, the universe has a cause.</li>
                  </ol>
                  <li><span class="baret"> </span>
                <ul class="bested">
                  <li>William Lane Craig, <i>The Kalam Cosmological Argument</i> (Wipf & Stock, 1979). Mark Nowacki, <i>The Kalam Cosmological Argument for God</i>, (Prometheus Books, 2007). William Lane Craig and James Sinclair, “The Kalam Cosmological Argument,” in Craig and Moreland (eds.), <i>The Blackwell Companion to Natural Theology</i>, (Blackwell, 2009), ch. 3. Jabocus Erasmus, <i>The Kalam Cosmological Argument: A Reassessment</i> (Springer, 2018).</li>
                </ul>
                </ol>
    <li><span class="caret">Loke</span>
                <ul class="nested">.....
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Bene ma sarà buon per te, a me non mi ci entra nulla in tasca

    Buon proseguimento, fai sapere se hai bisogno di ulteriore aiuto
    Posso solo ringraziarti per il tuo supporto!
    Ultima modifica di jeyjack; 04-03-2022 a 16:05

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    C'e' un modo per far si che alcuni elementi <li> non siano numerati? Ho provato ad applicare agli elementi li o all'UL list-style: none; ma pare non sia sufficiente..
    In questo caso list-style non ha nulla a che fare col contatore. Anche qui si potrebbe usare una classe che magari escluda specifici elementi dal conteggio.

    Fammi però capire meglio cosa effettivamente rappresenta quell'icona. Mostra informazioni aggiuntive dell'intera lista <ol>, o solo di specifici elementi <li>?

    Cioè, a livello semantico, le informazioni aggiuntive mostrate dall'icona, rappresentano un elemento della lista oppure vanno viste come una didascalia dell'intera lista?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    In questo caso list-style non ha nulla a che fare col contatore. Anche qui si potrebbe usare una classe che magari escluda specifici elementi dal conteggio.
    Ok, che caratteristiche bisognerebbe dare alla classe per escluderla dal conteggio? Provo subito a farlo

    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Fammi però capire meglio cosa effettivamente rappresenta quell'icona. Mostra informazioni aggiuntive dell'intera lista <ol>, o solo di specifici elementi <li>?

    Cioè, a livello semantico, le informazioni aggiuntive mostrate dall'icona, rappresentano un elemento della lista oppure vanno viste come una didascalia dell'intera lista?
    Quell'icona, sarà presente per ogni sottovoce, in questo caso "i libri" sono relativi a Craig, e cliccando vengono fuori i riferimenti dei punti (1), (2) e (3) di Craig. Vorrei far in modo che comparisse solo all'espansione di Craig assieme a tutti gli altri punti.

    Invece non mi spiego perchè i sottopunti nel mio caso non funzionano correttamente

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Quell'icona, sarà presente per ogni sottovoce, in questo caso "i libri" sono relativi a Craig, e cliccando vengono fuori i riferimenti dei punti (1), (2) e (3) di Craig
    In questo caso, a mio parere, tali dettagli aggiuntivi possono valere come una "didascalia" dell'elenco stesso, ma non come una "list item" (cioè una voce dell'elenco) al pari delle altre. Per tale motivo (per una questione di semantica) potrebbe essere più appropriato non inserirla dentro un <li> ma lasciarla proprio fuori da <ol>, a corredo di questo.

    Impostando al meglio un selettore CSS, nulla impedisce che l'icona, con i relativi dettagli, appaiano solo quando la lista è aperta.

    Tecnicamente, se si volessero usare degli elementi per esprimere al meglio l'aspetto semantico, si potrebbe avvolgere <ol> in un elemento <figure> e inserire quei dettagli dentro un <figcaption> ma, rispetto alla situazione attuale, potrebbe risultare inutilmente complicato da gestire, per via dell'attuale struttura.

    So che il tuo pensiero può essere "no me ne pò fregà de meno de a semmanteca, basta che se veda come dico io".

    L'affare si potrebbe risolvere comunque in modo relativamente semplice impostando una roba del genere:

    codice HTML:
    <ol>
      <li>...
    </ol>
    <span class="baret"></span>
    <ul class="bested">...</ul>
    cioè, metti l'icona e relativi dettagli subito dopo l'elemento <ol>

    quindi aggiungi una regola CSS del genere:
    codice:
    ol:not(.active) + .baret,
    ol:not(.active) + .baret + .bested {
        display: none;
    }
    questo fa in modo che icona e dettagli siano nascosti quando l'elemento <ol>, che li precede, non è ".active".

    Vedi se può andare bene.

    Invece non mi spiego perchè i sottopunti nel mio caso non funzionano correttamente
    Cerco di spiegarti quale sia il tuo errore.

    Lo standard richiede che dentro gli elementi lista (<ul>, <ol>) siano presenti solo elementi <li> (ed eventuali <script>).

    Vedi specifiche: The ol element
    Content model:
    Zero or more li and script-supporting elements.
    Lo standard prevede anche che possa essere omesso il tag di chiusura per gli elementi <li>.

    Se tu noti, anche nei miei esempio ho omesso le chiusure degli <li>.
    Per cui la struttura che ho usato, per avere <ol> annidati e ottenere i sottolivelli, è questa:
    codice HTML:
    <ol class="num-list">
      <li>Elemento (1)
      <li>Elemento (2)
        <ol class="num-list">
          <li>Elemento (2.1)
          <li>Elemento (2.2)
          <li>Elemento (2.3)
        </ol>
      <li>Elemento (3)
    </ol>

    Nella tua pagina hai invece chiuso gli <li> (nessuno te lo vieta) ma lo hai fatto in modo sbagliato ottenendo, tra l'altro, un markup non valido:
    codice HTML:
    <ol class="num-list">
      <li>Elemento (1)</li>
      <li>Elemento (2)</li>
      <ol class="num-list">
        <li>Elemento (2.1)</li>
        <li>Elemento (2.2)</li>
        <li>Elemento (2.3)</li>
      </ol>
      <li>Elemento (3) - con alcuni browser viene visualizzato (2.4) </li>
    </ol>
    L'elemento <ol> annidato, lo hai posto come figlio dell'<ol> padre, ma (vedi standard) <ol> può avere solo figli <li>.

    In questo caso la chiusura di <li> dovrà essere posta dopo quell'<ol> annidato, oppure puoi semplicemente ometterla.

    Per questo motivo ti ho ripetutamente invitato a validare il codice, proprio per poter correggere questo tipo di errori che, se lasciati perdere, ti potranno portare solo grossi grattacapi.

    Fai sapere, buon weekend
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #10
    Quote Originariamente inviata da KillerWorm
    So che il tuo pensiero può essere "no me ne pò fregà de meno de a semmanteca, basta che se veda come dico io".
    Mi hai beccato è esattamente questo il mio approccio!

    Quote Originariamente inviata da KillerWorm
    L'affare si potrebbe risolvere comunque in modo relativamente semplice impostando una roba del genere:

    codice HTML:
    <ol>
    <li>...
    </ol>
    <span class="baret"></span>
    <ul class="bested">...</ul>

    cioè, metti l'icona e relativi dettagli subito dopo l'elemento <ol>

    quindi aggiungi una regola CSS del genere:
    codice:
    ol:not(.active) + .baret,
    ol:not(.active) + .baret + .bested {
    display: none;
    }

    questo fa in modo che icona e dettagli siano nascosti quando l'elemento <ol>, che li precede, non è ".active".

    Vedi se può andare bene.
    Alla grande, ho seguito il tuo consiglio e una volta tolto l'elemento <li> e aggiunto il codice CSS il problema pare si sia risolto!

    Quote Originariamente inviata da KillerWorm
    Cerco di spiegarti quale sia il tuo errore.

    Lo standard richiede che dentro gli elementi lista (<ul>, <ol>) siano presenti solo elementi <li> (ed eventuali <script>).

    Vedi specifiche: The ol element

    Content model:
    Zero or more li and script-supporting elements.


    Lo standard prevede anche che possa essere omesso il tag di chiusura per gli elementi <li>.

    Se tu noti, anche nei miei esempio ho omesso le chiusure degli <li>.
    Per cui la struttura che ho usato, per avere <ol> annidati e ottenere i sottolivelli, è questa:
    codice HTML:
    <ol class="num-list">
    <li>Elemento (1)
    <li>Elemento (2)
    <ol class="num-list">
    <li>Elemento (2.1)
    <li>Elemento (2.2)
    <li>Elemento (2.3)
    </ol>
    <li>Elemento (3)
    </ol>


    Nella tua pagina hai invece chiuso gli <li> (nessuno te lo vieta) ma lo hai fatto in modo sbagliato ottenendo, tra l'altro, un markup non valido:
    codice HTML:
    <ol class="num-list">
    <li>Elemento (1)</li>
    <li>Elemento (2)</li>
    <ol class="num-list">
    <li>Elemento (2.1)</li>
    <li>Elemento (2.2)</li>
    <li>Elemento (2.3)</li>
    </ol>
    <li>Elemento (3) - con alcuni browser viene visualizzato (2.4) </li>
    </ol>

    L'elemento <ol> annidato, lo hai posto come figlio dell'<ol> padre, ma (vedi standard) <ol> può avere solo figli <li>.

    In questo caso la chiusura di <li> dovrà essere posta dopo quell'<ol> annidato, oppure puoi semplicemente ometterla.

    Per questo motivo ti ho ripetutamente invitato a validare il codice, proprio per poter correggere questo tipo di errori che, se lasciati perdere, ti potranno portare solo grossi grattacapi.

    Fai sapere, buon weekend
    Tu sei un grande!! rimuovendo TUTTI gli elementi </li> ho risolto l'inghippo ma cosa non meno importante mi ritrovo un codice molto più pulito e semplificato

    Puoi vedere il risultato delle modifiche apportate con i tuoi consigli, in tutti gli elementi Thomistic e Kalam
    (sono le prime due voci sotto COSMOLOGICAL). LINK

    Man mano che aggiungerò altro contenuto inizierò a personalizzare e ad applicare anche le altre numerazioni personalizzate.

    Non so come ringraziarti buon weekend anche a te!

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.