Hola
killerangel:
Veo que lo que quieres hacer es una capa con un width = 100%-180px. Esa duda la he tenido siempre en CSS, pero en javascript es sencillo. Sólo tienes que hallar las dimensiones equivalentes de un 100% en pixeles. Normalmente podrías utilizar la propiedad
offsetWidth para hallar el ancho, pero Prototype por ejemplo nos ofrece esta manera anti bugs y otras casuisticas:
Código PHP:
getDimensions: function(element) {
element = $(element);
var display = $(element).getStyle('display');
if (display != 'none' && display != null) // Safari bug
return {width: element.offsetWidth, height: element.offsetHeight};
// All *Width and *Height properties give 0 on elements with display none,
// so enable the element temporarily
var els = element.style;
var originalVisibility = els.visibility;
var originalPosition = els.position;
var originalDisplay = els.display;
els.visibility = 'hidden';
els.position = 'absolute';
els.display = 'block';
var originalWidth = element.clientWidth;
var originalHeight = element.clientHeight;
els.display = originalDisplay;
els.position = originalPosition;
els.visibility = originalVisibility;
return {width: originalWidth, height: originalHeight};
}
Lo demás es sencillo:
Código PHP:
// anchura(tuElemento) será la anchura el pixeles del elemento en cuestión, al que le habremos dado un 100% mediante CSS.
tuElemento.style.width = (anchura(tuElemento) - 180 ) + "px";
Y listo