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

Discussione: Allineamento testo...

  1. #1

    Allineamento testo...

    Ciao a tutti, premetto che di html ne so pochissimo e la mia richiesta non è strettamente legata allo sviluppo di un sito.
    Avrei necessità di allineare una parte del testo a sinistra e una parte a destra.
    Ho provato queste soluzioni:
    codice:
    <p align=left>TESTO A SINISTRA</p><p align=right>TESTO A DESTRA</p>
    codice:
    <p align=left>TESTO A SINISTRA <align=right>TESTO A DESTRA</p>
    ma il problema è che "TESTO A DESTRA" viene si allineato a destra, ma una riga più sotto.
    Ho provato a cambiare "p" con div, span, Hx ma il problema rimane.
    Un modo per avere il risultato che voglio deve esserci, però non saprei che altro provare.
    Potete darmi una mano?
    Grazie.

    Stefano
    Stefanoxjx

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, si può fare in svariati modi, dipende dal contesto in cui vuoi ottenere quel risultato.

    Personalmente gestirei il tutto tramite css, evitando in particolare l'uso di attributi di formattazione (come align), a prescindere che si tratti dello sviluppo di un sito o meno.

    La tua prova non funziona perché l'elemento paragrafo è un elemento di blocco che, in genere, si estende per tutta la larghezza disponibile del contenitore. Per cui, nonostante il testo dentro i blocchi si allinei secondo quanto hai definito, gli stessi due blocchi vanno comunque a portarsi uno sotto l'altro, perché altrimenti dovrebbero accavallarsi.

    Una soluzione potrebbe essere quella di impostare una larghezza del 50% (o giù di lì) per i due paragrafi, quindi impostargli opportunamente il float e il text-align:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <style type="text/css">
          html,body{
            margin: 0;
            padding: 0;
           }
          p{
            width: 50%;
            border: 1px solid #888;
            box-sizing: border-box;
          }
          .sx{
            float: left;
            text-align: left;
          }
          .dx{
            float: right;
            text-align: right;
          }
        </style>
      </head>
      <body>
        <p class="sx">TESTO A SINISTRA</p><p class="dx">TESTO A DESTRA</p>
      </body>
    </html>
    Ho specificato il bordo giusto per farti capire il meccanismo.

    Se si tratta comunque di testi su singola riga potresti usare, in modo relativamente più semplice, degli span con il float:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <style type="text/css">
          .sx{ float: left; }
          .dx{ float: right; }
        </style>
      </head>
      <body>
        <span class="sx">TESTO A SINISTRA</span><span class="dx">TESTO A DESTRA</span>
      </body>
    </html>
    Occhio però che in questo caso, eventuali elementi che seguono, potrebbero "incastrarsi" tra i due span, proprio per via della loro caratteristica flottante. In questo caso si dovrebbe valutare opportunamente la questione; ma senza conoscere il contesto è impossibile determinare le eventuali scelte da adoperare. Nel caso, sarebbe opportuno che tu fornissi maggiori dettagli su come e dove vuoi applicare quella roba.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Ciao e grazie della risposta.
    Come dicevo non devo fare un sito, ma sto sviluppando un programma in C++ con le librerie Qt.
    Queste librerie per la formattazione del testo accettano anche un po' di HTML.
    Purtroppo le soluzioni che mi hai proposto nel mio caso non funzionano, perchè probabilmente le librerie accettano qualche tag html ma nulla di così complesso.

    Dovrò trovare un'altra soluzione.
    Comunque ti ringrazio per l'aiuto

    Stefano
    Stefanoxjx

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    puoi sempre agire brutalmente usando una tabella.

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Capito, allora la questione cambia. Chiaramente quest'ultima informazione, che hai fornito solo ora, è peculiare per ciò che stai cercando di fare e per poter proporre una qualsiasi soluzione funzionante. Inutile dire che sarebbe stato opportuno chiarire fin da subito, perché in questo caso non si parla più di html standard ma si tratta presumibilmente di un subset di elementi html/css.

    Ad ogni modo, meglio tardi che mai

    A tentativi non credo si vada troppo lontano. A mio parere dovresti procedere valutando quali elementi html puoi effettivamente utilizzare con tale libreria/applicazione. Suppongo ci sia una qualche documentazione dove magari puoi trovare un elenco dei tag html consentiti e relative proprietà css supportate.

    Potrebbe essere questa? Te lo chiedo perché non conosco tale libreria, tanto meno sono pratico di C++.

    Come suggerito da Vincent potresti usare una tabella; pare sia supportata, da quel che vedo su quella documentazione. Per cui avrai due celle a cui imposterai opportunamente l'allineamento del testo.

    Oppure, se ti serve avere due blocchi comunque separati, puoi usare due tabelle impostando opportunamente width, float e align.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Si, confermo i tag supportati sono quelli del link.
    Su consiglio di un altro utente ho provato ad usare <div> al posto di <p> ma non ne vengo fuori

    Stefano
    Stefanoxjx

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ok. L'elemento div è sempre un elemento di blocco per cui funziona più o meno come un paragrafo; di default manda a capo il contenuto che lo segue. In un contesto standard sarebbe possibile definirne la larghezza e utilizzare la proprietà float, come indicato inizialmente, ma nel tuo caso il float funziona solo per alcuni tipi di elementi (è specificato su quella documentazione).

    Come già ti è stato suggerito, potresti utilizzare le tabelle. Hai provato?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    No, non ho ancora provato con le tabelle, ma anche nel forum di supporto di Qt hanno consigliato di provare con una tabella.
    Appena ho un secondo mi ci metto, perchè non essendo esperto di HTML dovrò perderci un po' di tempo.
    Vi faccio sapere come va a finire.
    Grazie.

    Stefano
    Stefanoxjx

  9. #9
    Eccomi, alla fine la soluzione è saltata fuori.
    Effettivamente con la tabella si è risolto:
    codice:
    <table width=\"100%\"><tr><td width=\"50%\">SINISTRA</td><td width=\"50%\" align=\"right\">DESTRA</td></tr></table>
    Grazie a tutti per i consigli.

    Stefano
    Stefanoxjx

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2015
    residenza
    Treviso
    Messaggi
    45
    Scusate, semplice curiosità (e ignoranza mia!) ma cosa sono e a cosa servono qulle \ \ tra i valori degli attributi? nel css non bastano le " " ?

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.