• User

    Problema margini testo non inserito tra paragrafi e layout

    Salve a tutti,
    Ho un problema abbastanza strano di cui non riesco a venirne a capo; riguarda principalmente i margini tra la colonna sinistra (e quella destra, nel caso il testo fosse allineato diversamente) e il box centrale dei contenuti del sito.
    Il layout è un classico 3 colonne table-less in CSS, tipico di un portale.

    Ad esempio, questa è una pagina del sito:

    thetotalsite.it/articoli/showarticle.aspx?id=1

    Notate come innanzitutto il testo ha un certo margine normalmente con la colonna di destra, questo fino alla barra in basso (<hr>) che separa i commenti.
    A questo punto, sia la barra che il testo e i controlli sotto, sono decentrati rispetto all'altro testo. Vanno più a sinistra, come se il margine fosse minore.

    Come mai? Sto vedendo il CSS, ma non riesco a capire il problema dov'è...

    Il CSS è questo:

    
    * { margin: 0;	padding: 0; }
    
    body {
    	margin: 0; padding: 0;
    	font: 70%/1.5 Verdana, Tahoma, Arial, Helvetica, sans-serif;
    	color: #333; 
    	background: #FFF url(bg.gif) repeat-x;	
    }
    
    /* links */
    a {
    	color: #003366;
    	background-color: inherit;
    	text-decoration: none;
    }
    a:hover {
    	color: #CC0001; 
    	background-color: inherit;
    }
    
    /* headers */
    h1, h2, h3, h4 {
    	font-family: Arial, 'Trebuchet MS', Sans-Serif;
    	font-weight: bold;
    	color:;
    }
    h1 {
    	font-size: 135%;
    	letter-spacing: .5px;
    }
    h2 {
    	font-size: 125%;	
    	color:;			
    }
    h3 {
    	font-size: 115%;
    	color:;		
    }
    h4 {
    	font-size: 110%;
    	color:;		
    }
    
    /* images */
    img {
    	border: 2px solid #CCC;
    }
    img.float-right {
      margin: 5px 0px 10px 10px;  
    }
    img.float-left {
      margin: 5px 10px 10px 0px;
    }
    
    h1, h2, h3, p {
    	padding: 0;		
    	margin: 10px;
    }
    
    ul, ol {
    	margin: 10px 20px;
    	padding: 0 20px;
    }
    
    code {
      margin: 10px 0;
      padding: 10px;
      text-align: left;
      display: block;
      overflow: auto;  
      font: 500 1em/1.5em 'Lucida Console', 'courier new', monospace;
      /* white-space: pre; */
      background: #FAFAFA;
      border: 1px solid #f2f2f2;  
      border-left: 4px solid #CC0000;
    }
    acronym {
      cursor: help;
      border-bottom: 1px solid #777;
    }
    blockquote {
    	margin: 10px;
     	padding: 0 0 0 32px;  	
      	background: url(quote.gif) no-repeat 5px 10px !important; 
    	background-position: 8px 10px;
    	border: 1px solid; 
    	border-left: 4px solid; 
    	font-weight: bold;  
    }
    
    /* form elements */
    form {
    	/*margin:10px; padding: 0 5px;*/
    	/* border: 1px solid; */
    	/* background-color:; */
    }
    label {
    	display:block;
    	font-weight:bold;
    	margin:5px 0;
    }
    input {
    	padding: 2px;
    	border:2px solid #000000;
    	font: normal 1em Verdana, sans-serif;
    	color:#777;
    }
    textarea {
    	width:400px;
    	padding:2px;
    	font: normal 1em Verdana, sans-serif;
    	border:1px solid #eee;
    	height:100px;
    	display:block;
    	color:#777;
    }
    input.button { 
    	margin: 0; 
    	font: bolder 12px Arial, Sans-serif; 
    	border: 1px solid; 
    	padding: 1px; 
    	background:;
    	color:;
    }
    /* search form */
    form.search {
    	position: absolute;
    	top: 2px;
    	right: 19px;
    	padding: 0;
    	margin: 0;
    	border: none;
    	background-color: transparent;
    	width: 487px;
    }
    form.search input.textbox { 
    	margin: 0; 
    	width: 180px;
    	border: 1px solid; 
    	background:;
    	color:; 
    }
    form.search input.searchbutton { 
    	margin: 0; 
    	font-size: 100%; 
    	font-family: Arial, Sans-serif; 
    	border: 1px solid; 
    	background: #FFFFFF url(headerbg.gif) repeat-x bottom left; 
    	padding: 1px; 
    	font-weight: bold; 
    	height: 23px;
    	color:;
    	width: 60px;
    }
    
    /**********************************
      LAYOUT 
    ***********************************/
    #wrap {
    	margin: 0 auto; 
    	width: 100%;
    }
    
    /* header */
    #header {
    	position: relative;
    	margin: 0; padding: 0;
    	height: 60px;
    } span#slogan {
    	z-index: 3;
    	position: absolute;
    	left: 14px; bottom: 9px;
    	font: bold 1.2em Verdana, Arial, Tahoma,  Sans-serif;	
    	color:;	
    }
    -logo {
    	position: relative;
    	clear: both;
    	height: 50px; 
    	margin: 0; padding: 0;	
    }-logo #logo {
    	position: absolute;
    	top: 4px;
    	left: 11px;
    	font: bold 30px "trebuchet MS", Arial, Tahoma, Sans-Serif;
    	margin: 0;
    	padding: 0;
    	letter-spacing: -1px;
    	color: #000;
    	width: 259px;
    }
    
    .withMargin 
    {
    	padding: 0;
    	margin: 10px;
    }
    
    /* navigation tabs */ ul {
    	position: absolute;
       margin:0;
       list-style:none;
    	right:1px; bottom: 1px;
    	font: bold 13px 'Trebuchet MS', Arial, Sans-serif;
    } li {
       display:inline;
       margin:0; padding:0;
    } a {
       float:left;
       background: url(tableft.gif) no-repeat left top;
       margin:0;
       padding:0 0 0 4px;
       text-decoration:none;
    } a span {
       float:left;
       display:block;
       background: url(tabright.gif) no-repeat right top;
       padding:5px 15px 4px 6px;
       color:#FFF;
    }
    /* Commented Backslash Hack hides rule from IE5-Mac \*/ a span {float:none;}
    /* End IE5-Mac hack */ a:hover span {
    	color:#FFF;
    } a:hover {
       background-position:0% -42px;
    } a:hover span {
       background-position:100% -42px;
    } #current a {
       background-position:0% -42px;
    } a span {
       background-position:100% -42px;
    }
    
    /* main column */
    #main {
    	float: left;
    	margin: 0; padding: 0;
    	width: 69%;	
    } h1 {
    	margin: 10px 0;
    	padding: 4px 0 4px 8px; 
    	font-size: 105%;
    	color:;
    	text-transform: uppercase; 
    	background-color:;	
    	letter-spacing: .5px;
    }
    
    /* sidebar */
    #sidebar {
    	float: left;
    	width: 13%;
    	margin: 1%; padding: 0; 
    	background-color:; 	
    } h1 {
    	margin: 10px 0 0 0; 
    	padding: 4px 0 4px 8px; 
    	font: bold 105% Arial, Sans-Serif;
    	color:;
    	text-transform: uppercase; 
    	background:; 
    	letter-spacing: 1px;	
    } .left-box {
    	border: 1px solid #EBEBEB;
    	margin: 0 0 5px 0;	
    	background:;
    } ul.sidemenu {
    	list-style: none;
    	text-align: left;
    	margin: 3px 0px 8px 0; padding: 0;
    	text-decoration: none;		
    } ul.sidemenu li {
    	border-bottom: 1px solid; 
    	background: url(bullet.gif) no-repeat 3px 2px;	
    	padding: 3px 5px 3px 25px;
    	margin: 0;	
    } ul.sidemenu a {
    	font-weight: bolder;
    	padding: 3px 0px;	
    	background: none;
    }
    
    /* sidebar2 */
    #sidebar2 {
    	float: left;
    	width: 13%;
    	margin-left: 1%; padding: 0; 
    	background-color:; 	
    } h1 {
    	margin: 10px 0 0 0; 
    	padding: 4px 0 4px 8px; 
    	font: bold 105% Arial, Sans-Serif;
    	color:;
    	text-transform: uppercase; 
    	background:; 
    	letter-spacing: 1px;	
    } .left-box {
    	border: 1px solid;
    	margin: 0 0 5px 0;	
    	background:;
    } ul.sidemenu {
    	list-style: none;
    	text-align: left;
    	margin: 3px 0px 8px 0; padding: 0;
    	text-decoration: none;		
    } ul.sidemenu li {
    	border-bottom: 1px solid; 
    	background: url(bullet.gif) no-repeat 3px 2px;	
    	padding: 3px 5px 3px 25px;
    	margin: 0;	
    } ul.sidemenu a {
    	font-weight: bolder;
    	padding: 3px 0px;	
    	background: none;
    }
    
    /* footer */
    .footer { 
    	clear: both; 	
    	border-top: 1px solid;
    	background: url(footerbg.gif) repeat-x;
    	padding: 2px 0 10px 0; 
    	text-align: center;  
    	line-height: 1.5em;	
    	font-size: 95%;
    }
    .footer a { 
    	text-decoration: none; 
    	font-weight: bold;		
    }
    
    /* alignment classes */
    .float-left  { float: left; }
    .float-right { float: right; }
    .align-left  { text-align: left; }
    .align-right { text-align: right; }
    
    /* display and additional classes  */
    .clear {	clear: both; }
    .red   { color:; }
    .comments { 
    	margin: 20px 10px 5px 10px; 
    	padding: 3px 0;
    	border-bottom: 1px dashed #EFF0F1; 	
    	border-top: 1px dashed;	
    }
    
    

    Grazie in anticipo a chiunque sappia darmi una mano,


  • Super User

    Ciao Carmine,
    innanzitutto c'è qualche errore di sintassi html.
    L'intero tuo blocco di testo dato dal tag paragrafo "p" è a sua volta , ed erratamente, chiuso da un tag "span" solitamente utilizzabile sulle singole parole.

    Tralasciando questo mi pare di notare che il blocco **p, **cioè ciò che viene prima dei commenti, abbia un margine di 10 px.
    I commenti invece sono racchiusi unicamente in un tag "div" che non ha nessun margine.
    Ti basta ovviare a questo problema aggiungendo alla classe "base" il margine di 10px.

    Ah naturalmente anche al tag hr che altrimenti sarebbe più lungo a sua volta di 20px.


  • User

    Ciao,
    Ho sistemato quel problema dell'aggiunta dello SPAN, grazie per avermelo fatto notare.

    Inoltre ho provato a modificare il CSS così, aggiungendo un margine di 10px agli hr e ai div all'interno del livello #main.
    La direttiva "base" era un errore, in realtà come vedi non esiste all'interno del CSS.

    Questo è quello che ho aggiunto al CSS:

     div, hr 
    {
    	margin: 10px;
    }
    
    

    Il problema è che, come vedi, ora i P e gli HR dentro a un DIV prendono altri 10 px in più di margine, arrivando ad avere quindi 20 px di margine, invece di 10px (nota la seconda HR nell'articolo, vedrai che è più piccola dell'altra).

    Come faccio a sistemare questo problema?


  • Super User

    Ciao Carmine volevo sapere se avevi risolto 🙂


  • User

    Ciao,
    Ancora no purtroppo 😞

    Come scrivevo ho adesso quel problema che aggiunge troppo margine;
    ovvero, se imposto ai div e alle hr un margin di 10px; le hr dentro al div prenderanno ora 20px di margine, e non 10px.