Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/07/2008, 19:05
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 4 meses
Puntos: 45
Respuesta: [DIFICIL] reto con width: % y px

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 {widthelement.offsetWidthheightelement.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 {
widthoriginalWidthheightoriginalHeight};
  } 
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
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.