Il contenitore ha position:relative, ma questo non è rilevante.
position:absolute non mi crea alcun problema di posizionamento; l'unico problema, come ho spiegato, è solo che l'elemento (quindi, il suo border-bottom) dovrebbe occupare tutta la lunghezza del div container meno il valore impostato nei margini; mentre con position:absolute il blocco diviene di lunghezza uguale a ciò che contiene (in questo caso, testo), e l'attributo "margin" viene ignorato.
Per capire cosa intendo, genera un file html vuoto, incolla questo codice, e poi visualizza la pagina:
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><title>prova</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body style="font-family: arial, helvetica">
<div style="width:85%; position:relative; min-width:300px; margin:1em auto ; background:#efefef; height:100px;">
<div style="position: relative; border-bottom:1px solid red; text-align:right; color:#999; margin-left:150px">Se uso position:relative il bordo è lungo quanto il container,
ed obbedisce al comando margin-left di 150px</div>
</div>
<div style="width:85%; position:relative; min-width:300px; margin:1em auto; background:#efefef; height:100px;">
<div style="position: absolute; top:30px; right:0; border-bottom:1px solid red; text-align:right; color:#999;">Ma se uso position:absolute, il bordo muore con la fine del testo.</div>
</div>
</body>
</html>
Allego uno screen della pagina.
Non è possibile fare in modo che la larghezza occupata dall'elemento absolute sia quella massima, come accade in relative?
Ho provato display:block, ma non funziona....
Grazie in anticipo a chiunque mi potrà aiutare!