Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590

    margin-top adattato al testo

    salve, ho una semplice struttura come in allegato.
    Il div#header ha position:fixed;top:0;left:0;width:100%
    Questo div è riempito di testo dinamicamente, quindi ha altezza variabile.
    il div#content deve avere position:absolute, perché pare (devo controllare meglio) che una position statica dai problemi alla libreria grafica js usata all'interno del div.
    #rightcol ha position: absolute;right: 0;
    Devo fare in modo che #content e #rightcol comincino dove finisce #header, cioè #header non deve coprire gli altri div.
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    up?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma perche` hai dato position:fixed all'header? Quello serve proprio per poter sovrapporre un oggetto al resto della pagina.
    E anche il position:absolute ai due blocchi sottostanti non semplifica.

    Dovresti lasciare tutto in position:static (il default), e dare float:left ai due blocchi sotto (oppure float:left e float:right rispettivamente).
    Se una libreria JS da` problemi con il position:static, forse non e` lo strumento migliore da usare. Potrebbero esserci altre librerie migliori.

    O forse devi dare position:relative ai due blocchi, in modo che le strutture all'interno si posizionino relativamente al loro contenitore e non alla finestra.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    in effetti l'header può essere posizionato come voglio. l'importante è che rimanga fisso sopra.
    Un paio di precisazioni: body non deve avere lo scroll (è per questo che header può anche non essere fixed).
    #rightcol contiene un luuungo testo ed ha position:absolute;height:100%;overflow-y: auto;
    position:absolute mi aiuta solo a fare in modo che a scrollare sia sempre e solo #rightcol..

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'uso dei posizionamenti e` una delle cose piu` complesse nei CSS, e di solito crea piu` problemi di quanti ne risolve.

    Non hai bisogno del position:absolute, devi usare la proprieta` overflow, per avere lo scroll all'interno di un oggetto.

    Se vuoi avere i tre blocchi fissi, e lo scroll al loro interno, la struttura deve essere del tipo:
    codice:
    html, body {
      height: 100%;
      width: 100%;
      overflow: hidden;   /* in teoria non serve, ma se vuoi essere piu` sicuro ... */
    }
    header {
      height: 19.9%;
      width: 100%;
      overflow: auto;  /* se il caso */
    }
    content {
      height: 80%;
      width: 70%;
      float: left;
      overflow: auto;  /* se il caso */
    }
    rightcol {
      height: 80%;
      width: 29.9%;
      float: right;
      overflow: auto;
    }
    Nota che la somma delle % fa sempre un po' meno del 100%, per evitare che con gli arrotondamenti si arrivi piu` del 100%

    In qualche brwoser esistono anche overflow-x e overflow-y separati, ma falli sempre precedere da overflow:auto per essere sicuro che venga interpretato
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    header non può avere altezza definita, l'altezza è definita dalla quantità di testo all'interno.
    #rightcol ha 420px larghezza fissa, non so se può essere utile

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    ho rinunciato al posizionamento di #header ora è static.
    però ora #rightcol deve finire alla fine della pagina, invece ora, avendo height:100%, ha altezza uguale alla pagina ma 'cominciando' dalla fine dell'header mi fa scrollare body..dare overflow:hidden al body non mi sembra il caso..

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il mio era un ragionamento generale. Ora stai specificando alcuni parametri che in parte aiutano e in parte complicano le cose.

    Ma se insisti a voler posizionare, non arrivi ad una soluzione. Dimentica l'attributo position.
    Eventualmente puoi usare position:relative nel blocco che contiene gli altri elementi posizionati dal JS.

    header non può avere altezza definita, l'altezza è definita dalla quantità di testo all'interno.
    Non e` un problema. Pero` allora non poi definire height neppure nei due blocchi affiancati, che di conseguenza dovranno avere overflow:auto (o simile).

    #rightcol ha 420px larghezza fissa, non so se può essere utile
    Allora non devi mettere il float al #content, ma un margin-right di 420px (o forse qualcosa in piu`)

    #rightcol deve finire alla fine della pagina
    Questo non si puo` fare (cosa succede se uno dei due e` piu` corto dell'altezza del body?). Si possono pero` usare le false colonne (da applicare al <body>) per simularne l'effetto.

    avendo height:100%
    Questo e` un errore.

    dare overflow:hidden al body non mi sembra il caso..
    Non serve, infatti; ma deve avere height:100% (o forse 99.9%), altrimenti compare lo scroll. L'overflow:hidden era per evitare la barra di scroll se per caso il body sfora di uno o due px
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    vorrei evitare l'indicizzazione del sito per ora, quindi ti mando il link in pvt.
    l'unica cosa da fare ora è evitare lo scroll del body, dovuto all'altezza di #rightcol. l'unico che deve avere la barra per scrollare è #rightcol.
    ho provato con height:100% al body..la barra è sempre lì
    Ultima modifica di jimbo0; 17-07-2014 a 13:34

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ti mando lo screenshot della tua pagina come la vedo in Firefox.

    Lo scroll del body e` dato dal fatto che 100% + l'altezza della header (o nel tuo caso lo spostamento del top) e` chiaramente maggiore del 100%.

    Le sovrapposizioni varie sono dovute al non corretto uso degli attributi position.

    Tu forse hai uno schermo grande e lo usi tutto per il browser. Io navigo in una finestra (mentre navigo il PC fa altre cose che io tengo sotto osservazione). E comunque la mia finestra e` all'incirca come uno schermo medio, ma ci sono anche schermi piu` piccoli (ad esempio tablet e cellulari).

    Non puoi sapere a priori quale sara` il browser e il monitor di un visitatore!
    Immagini allegate Immagini allegate
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.