2010-11-26 127 views
7

Este es mi código:¿A cuántos píxeles equivale un espacio?

<div style="position:absolute;top:300px;width:50px;height:50px;background:red;color:black;word-wrap:break-word;"> 
     <div contenteditable=true> 
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      aaaaa 
      bbbbbbbbbbb 
     </div> 
</div> 

Quiero llenar todo el espacio en el div.

¿Cuántos píxeles es el &nbsp;?

+4

Depende del navegador, la fuente que se está procesando, etc. No hay un valor garantizado. Claro que hay una mejor manera de lograr lo que estás tratando de hacer. ¿Qué estás tratando de hacer exactamente? – David

Respuesta

5

usted puede crear a <div> que contiene &nbsp; y asigne un id. Establezca el tamaño y los atributos de la fuente. Luego, lea el ancho y la altura actuales usando:

var space=document.getElementById("space"); 
var height=(space.clientHeight+1)+"px"; 
var width=(space.clientWidth+1)+"px"; 
+0

¿por qué +1? var height = (space.clientHeight) + "px"; ¿Por qué no puedes usar esto? – zjm1126

+0

¿Por qué el +1? (También no clientWidth include padding and border? Si necesita asegurarse de que están configurados en 0) – edeverett

+0

muchas gracias .... – zjm1126

1

Depende de la fuente, tamaño, etc. No hay ecuación/número directo para espacios en píxeles.

2

Depende del tamaño de fuente porque &nbsp; es un carácter de espacio en blanco.

0

No hay forma de responder honestamente a esta pregunta, ya que el tamaño de un espacio cambia según el tamaño de la fuente.

Pruebe esto, cambiando el "30px" a lo que quiera.

<div style="position:absolute;top:300px;width:50px;height:50px;background:red;color:black;word-wrap:break-word;"> 
     <div contenteditable=true style="margin-left: 30px;"> 
      aaaaa 
      bbbbbbbbbbb 
     </div> 
</div> 
0

La respuesta dependerá de la fuente que esté utilizando y de los estilos que se le hayan asignado. Por lo tanto, deberá calcularlo dinámicamente en la página.

Utilice Javascript para crear un div que se muestre fuera de la página (es decir, izquierda: -4000px;} que contenga un carácter  . Asegúrese de que este elemento tenga el mismo estilo de texto que su div de contentEditable. El ancho de este elemento debe ser el ancho del carácter de espacio (asegúrese de que usted no está incluyendo cualquier relleno o de las fronteras, etc.)

no he intentado esto, pero eso es lo que iba a tratar en primer lugar.

0

Puede usar "em" en lugar de "px". En primer lugar buscado en Google enlace de "em": http://www.xs4all.nl/~sbpoley/webmatters/emex.html

Tratar dicha construcción

<div style="position:absolute;top:300px;width:{count_of_letters}em; height:50px;background:red;color:black;word-wrap:break-word;"> 
    <div contenteditable=true> 
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     aaaaa 
     bbbbbbbbbbb 
    </div> 

Pero mejor olvidar esta idea y utilizar las reglas CSS de otros comentarios en este tema.

0

A menudo se considera que un "em" (ancho de 1 carácter) es de 16 x 16 píxeles. Por supuesto, si un espectador cambia el tamaño del texto, eso cambiaría.

No estoy seguro de lo que estás tratando de hacer, pero si solo quieres espacio vacío encima de tu texto, podrías poner otro div (para el texto) dentro de tu div, y luego establecer un "margen superior : 10em; "(o cuantos ems quieras) para proporcionar el espacio en blanco.

Cuestiones relacionadas