Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259

    Strano comportamento di position

    Il mio intento è di mettere un insieme di div 1*1 px un linea orizzontale, all'interno di un contenitore:


    <script>
    function paintLine(){
    p=document.getElementById("prova");
    for(i=0;i<30;i++){
    p.innerHTML+="<div style='height:1px;width:1px;background-color:black;position:relative;top:100px;left:"+i+" px'></div>";
    }
    }
    </script>
    <body onClick="paintLine()">
    <span>Testo</span>

    <div id="prova" style="width:30px;height:200px;background-color:aqua"></div>
    </body>


    la linea va pendente (m<0), mentre dovrebbe andare orizzontale.

    se setto position:absolute, la linea va diritta.


    Ora, evidentemente prende qualche rifermimento del top errato...

    :master:

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Un <div> e` per default un oggetto con "display:block;" .
    Vuol dire che ce ne puo` stare solo uno per ogni riga.

    Prova ad aggiungere nel CSS "display:inline;" .
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    sai, ci sto provando...

    <html>
    <head>
    <style>
    #prova{
    display:inline;
    width:30px;
    height:200px;
    background-color:aqua;
    }
    .line{

    height:1px;
    width:1px;
    background-color:black;
    position:relative;
    top:100px;
    }
    </style>

    <script>
    function paintLine(){
    p=document.getElementById("prova");
    for(i=0;i<30;i++){
    p.innerHTML+="<div class=\"line\"style=\"left:"+i+"px\"></div>";
    }
    }
    </script>
    </head>
    <body onClick="paintLine()">
    <span>Testo</span>

    <div id="prova">c</div>
    </body>
    </html>

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova questo

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <script language="JavaScript" type="text/javascript">
    <!--
    var dati = new Array(100,25,10,33,56,77,55,5);
    var colonne = new Array('col1','col2','col3','col4','col5','col6','col7','col8');
    for (i=0;i<dati.length;i++) {
     document.write('<div style="width:'+dati[i]+'px;background-color:red"></div>');
    } // for (i=0;i<dati.length;i++)
    //-->
    </script>
    <script language="JavaScript" type="text/javascript">
    <!--
    var dati2 = new Array(100,25,10,33,56,77,55,5);
    document.write('<table><tr>');
    for (i=0;i<dati2.length;i++) {
     document.write('<td valign="bottom">');
     document.write('<DIV style="height:'+dati2[i]+'px;background-color:red;writing-mode:tb-rl;">'+dati2[i]+'</DIV>');
     document.write('</td>');
    } // for (i=0;i<dati2.length;i++)
    document.write('</tr><tr>');
    for (i=0;i<dati2.length;i++) {
     document.write('<td valign="bottom">');
     document.write('<DIV style="writing-mode:tb-rl;">'+colonne[i]+'</DIV>');
     document.write('</td>');
    } // for (i=0;i<dati2.length;i++)
    document.write('</tr></table>');
    //-->
    </script>
    
    </body>
    </html>

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    Originariamente inviato da badaze
    Prova questo

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <script language="JavaScript" type="text/javascript">
    <!--
    var dati = new Array(100,25,10,33,56,77,55,5);
    var colonne = new Array('col1','col2','col3','col4','col5','col6','col7','col8');
    for (i=0;i<dati.length;i++) {
     document.write('<div style="width:'+dati[i]+'px;background-color:red"></div>');
    } // for (i=0;i<dati.length;i++)
    //-->
    </script>
    <script language="JavaScript" type="text/javascript">
    <!--
    var dati2 = new Array(100,25,10,33,56,77,55,5);
    document.write('<table><tr>');
    for (i=0;i<dati2.length;i++) {
     document.write('<td valign="bottom">');
     document.write('<DIV style="height:'+dati2[i]+'px;background-color:red;writing-mode:tb-rl;">'+dati2[i]+'</DIV>');
     document.write('</td>');
    } // for (i=0;i<dati2.length;i++)
    document.write('</tr><tr>');
    for (i=0;i<dati2.length;i++) {
     document.write('<td valign="bottom">');
     document.write('<DIV style="writing-mode:tb-rl;">'+colonne[i]+'</DIV>');
     document.write('</td>');
    } // for (i=0;i<dati2.length;i++)
    document.write('</tr></table>');
    //-->
    </script>
    
    </body>
    </html>
    nn capisco :master: per ora devo solo tirare una riga orizzontale, formata da div 1*1 pixel...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    ok, problema risolto.


    bisogna settare perforza il float:left; ad ogni singolo mini-div.


    ora, pongo un altro quesito:

    *** edit: l'hai posto in un'altra discussione... ***

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.