Problema de compatibilidad entre navegadores de texto SVG

En primer lugar, tengo que decir que no soy bueno en Illustrator. Solo hago algunos gráficos básicos para los sitios web en los que estoy trabajando.

Aquí hay uno que hice:ingrese la descripción de la imagen aquí

Exporté como formato SVG y lo puse en un sitio web. Pero cuando cambio el tamaño del navegador, el tamaño del texto aumenta o disminuye.

Así es como se ve en una página web en Chrome:ingrese la descripción de la imagen aquí

Si aumento el tamaño del navegador, las letras se convierten en rectángulo:

ingrese la descripción de la imagen aquí

Nunca tuve tal problema. Es muy extraño y no pude encontrar una solución para esto.

Además, en Safari todo funciona a la perfección.

En Firefox, así es como se ve:

ingrese la descripción de la imagen aquí

El texto es completamente diferente. ¿Puedes decirme qué está pasando? ¿No son los gráficos SVG como imágenes? ¿Por qué tengo tantos problemas?

Aquí está el código SVG como referencia:

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 821.4 353.7" enable-background="new 0 0 821.4 353.7" xml:space="preserve">
  <rect x="0" y="0" opacity="0.8" width="682.3" height="214.5" />
  <text transform="matrix(0.8101 0 0 1 25.8074 165.8717)">
    <tspan x="0" y="0" fill="#307FB7" font-family="'MyriadPro-Regular'" font-size="196.5103" letter-spacing="28.4">C</tspan>
    <tspan x="143.4" y="0" fill="#FFFFFF" font-family="'MyriadPro-Regular'" font-size="196.5103" letter-spacing="28.4">agdas</tspan>
  </text>
  <rect x="139.2" y="138.7" opacity="0.8" width="682.3" height="214.5" />
  <text transform="matrix(0.8101 0 0 1 170.9687 304.5814)" opacity="0.8">
    <tspan x="0" y="0" fill="#307FB7" font-family="'MyriadPro-Regular'" font-size="196.5103" letter-spacing="28.4">Y</tspan>
    <tspan x="135.8" y="0" fill="#FFFFFF" font-family="'MyriadPro-Regular'" font-size="196.5103" letter-spacing="28.4">onder</tspan>
  </text>
</svg>
¿Podemos ver el código SVG exportado? Supongo que el SVG lo está representando como texto, por lo que la fuente que está usando no aparece en FireFox y causa las discrepancias entre los navegadores.
¿Por qué estás tratando de renderizar esto en SVG de todos modos? ¿Por qué no como texto sin formato?
SVG se ve exactamente como se muestra en la primera imagen que compartí en la pregunta. Además, estoy usando Illustrator con la misma lógica que uso Photoshop. No sé a qué te refieres con renderizar. Aquí está el enlace para el archivo SVG: uploaded.net/file/35c5858j
Utilice un servicio como Pastebin para compartir el código SVG o inclúyalo en la pregunta. No quiero descargar un archivo que no sé lo que contiene :)
En cuanto a mi segundo comentario, quiero decir, ¿por qué no usar HTML + CSS simple para esto? ¿Por qué necesitas usar SVG? Es muy sencillo de hacer en HTML + CSS. En cuanto a lo que significa renderizar, consulte este artículo de Wikipedia
@ZachSaucier No puedo cargar SVG en cuestión y pastebin es para texto, así que no sé de qué otra manera puedo enviártelo.
Puede abrir el SVG en el editor de texto y copiarlo en pastebin :)
@ZachSaucier Guau, no sabía eso. Aquí está el enlace: pastebin.com/4QxAiThZ
Convierta el texto en contornos antes de exportar el SVG
@CAI Eres un salvavidas. Seleccioné todos los objetos e hice clic expanden el menú de objetos y todo está perfecto ahora. Entonces, eso es lo que me faltaba. Muchas gracias.

Respuestas (2)

El problema es que el SVG está usando texto en lugar de rutas, el navegador está renderizando ese texto con su propio motor de renderizado de texto, lo que puede generar inconsistencias con el nombre y la escala de las fuentes (igual que el texto HTML y CSS normal)

Una solución es delinear el texto antes de exportar el SVG.

Haga clic con el botón derecho en el texto o Create Outlinesvaya aObject -> Expand

El problema es que el espaciado de letras de su SVG no se cambia según el tamaño de la pantalla como las otras partes. Dado que los rectángulos no están relacionados con el texto, simplemente se colocan detrás de ellos, no contienen bien el texto.

La solución más sencilla sería exportar el SVG como una ruta en lugar de como texto, pero esa no es una solución perfecta porque evita que los usuarios seleccionen el texto.

Si desea que los usuarios conserven esa capacidad, es muy probable que haya una manera de arreglar su SVG mientras lo conserva como texto, pero dado que solo está tratando con texto y algunos rectángulos y lo está haciendo para un sitio web, le recomiendo use HTML simple + CSS para volver a crear esto.

El único inconveniente es que tendrá que alojar Myriad Pro usted mismo o usarlo desde Typekit porque no es gratuito de forma predeterminada . Puede usar una fuente alternativa, yo uso PT sans si no es compatible a continuación.

HTML:

<div class="site-title-container">
    <h1 class="site-title first-line"><span>C</span>agdas</h1>
    <h1 class="site-title second-line"><span>Y</span>onder</h1>
</div>

CSS:

@import url(https://fonts.googleapis.com/css?family=PT+Sans);

/* For demo only - not recommended */
body { font-size: 2vw; }
/* End of demo only section */


.site-title-container {
    font-family: "Myriad Pro", 'PT Sans', sans-serif;
}
.site-title {
    position: relative;
    color: white;
    padding: 0.3em 0.7em;
    display: inline-block;
    font-size: 2.5em;
    letter-spacing: 0.2em;
}
.site-title span {
    color: #3580B9;
}
.site-title.first-line::before {
    content: '';
    background-color: #161616;
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}
.site-title.second-line {
    position: absolute;
    top: 1.1em;
    left: 1em;
    background-color: #161616;
    z-index: -1;
}

Enlace de demostración

Zach, gracias por tu trabajo, pero @CAI me dijo cómo solucionar esto en la sección de comentarios. Pero voté esta respuesta como agradecimiento.
@cyonder Correcto, como se menciona en esta respuesta, la forma más fácil es como él sugiere :)
@Zach, no siempre quieres que el texto sea seleccionable. Para un logotipo, por ejemplo, la precisión de la ruta es mucho más importante que tener texto seleccionable.
@CAI No puedo pensar en una situación en la que no desee que el texto sea seleccionable. Sí, la precisión es más importante, pero uno puede ser preciso manteniendo la selección si se hace correctamente
No hay forma de ser 100% preciso usando texto/CSS. ¿Sugeriría que cada empresa reemplace el logotipo en su sitio web con una fuente y CSS? Ciertamente no lo haría.
@CAI Lo recomiendo cuando sea apropiado :)
Estoy de acuerdo, si es posible, usar CSS es la mejor opción en la mayoría de los casos. Solo estoy señalando que hay casos en los que no lo es... Y esta pregunta se refiere al texto SVG, no a CSS.