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: 23 años
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 {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
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.