div attribute html css typography

attribute - title html



¿Hay alguna manera de hacer que una fuente de ancho variable actúe como una fuente de ancho fijo en HTML? (5)

El resultado debe ser horrible ya que las fuentes proporcionales no están hechas para eso.

No obstante, puede lograr eso con un span individual de caracteres: http://jsfiddle.net/rvYES/

body { font: normal 100%/1.5 Arial; } span { outline: 1px dotted darkred; } span:nth-of-type(even) { outline-color: blue; } .w-fixed span { display: inline-block; min-width: 1em; }

Agregué pistas visuales (esquema) para ver lo que está pasando y usé min-width solo por si acaso, no width .
Este método causará un gran problema de accesibilidad con los lectores de pantalla, para las personas ciegas y con discapacidad visual que utilizan estas tecnologías de asistencia. Se escribirán / leerán las letras que estén en el span individual.
o
norte
mi

segundo
y

o
norte
mi

w
h
yo
l
mi

una

norte
o
r
metro
una
l

pag
una
r
una
sol
r
una
pag
h

w
o
tu
l
re

segundo
mi

r
mi
una
re

una
s

una

s
mi
norte
t
mi
norte
do
mi
,

una
s

tu
s
tu
una
l
.

PAG
r
mi
t
t
y

una
norte
norte
o
y
yo
norte
sol

mi
h
?

juego de palabras

Esta pregunta ya tiene una respuesta aquí:

¿Hay alguna manera de hacer que una fuente de ancho variable actúe como una fuente de ancho fijo en HTML?

Por ejemplo, si tengo la frase "El zorro gris rápido saltó sobre el perro perezoso" que se muestra en "Courier New", una fuente de ancho fijo, sería más ancho en general que si estuviera en una fuente de ancho variable como, "Arial ". Me gustaría usar "Arial" en lugar de "Courier New" pero tengo los caracteres de ancho fijo.

Ejemplo de ancho variable:
El rápido zorro gris saltó sobre el perezoso perro.

Ejemplo de ancho fijo:

The quick grey fox jumped over the lazy dog

Observe qué tan cerca están los caracteres entre sí en las palabras "rápido" y "gris" en cada ejemplo.


Es posible que pueda utilizar la propiedad CSS con espaciado de letras para obtener lo que desea. Por definición, las fuentes monoespaciadas tienen el mismo ancho de caracteres, a diferencia de serif o sans-serif. Usar el espaciado entre letras es su mejor apuesta Referencia de W3C


Es una pregunta antigua, pero sugeriría buscar una fuente de ancho fijo adecuada que se pueda usar como fuente de web que tenga las características que desea. Soy un gran fan de Inconsolata, por ejemplo.

Comenzaría con Google Fonts y deseleccionaría todas las categorías dejando solo Monospace.


Lo único en lo que puedo pensar es poner cada letra en un elemento HTML, y darle estilo a ese elemento en la siguiente línea:

width: 8px; /* Whatever fixed width you want here */ display: block; /* Force the width to be respected. See also: inline-block */ float: left; /* So it won''t be 1-per-line. Not needed for inline-block */ text-align: center; /* So the character appears in the middle of the block */

No estoy familiarizado con Flex, pero si tuviera que implementar este enfoque, armaría un Javascript que generaría todos los elementos para mí.


No solo con CSS. Te recomendaría que uses el popular Lettering.js (necesitarás jQuery para ello) para generar etiquetas de span alrededor de cada carácter y luego establecer un ancho entre todos los caracteres.

.monospace > span { display: inline-block; /* Enable widths */ width: 1em; /* Set width across all characters */ text-align: center; /* Even out spacing */ }

Caso de prueba