Existe-t-il un moyen de garder le rapport d'aspect fixé pour le texte mais pas d'autres éléments SVG?

StackOverflow https://stackoverflow.com/questions/8945245

  •  07-11-2019
  •  | 
  •  

Question

J'ai un graphique D3.JS qui est composé de RECTS, et j'aimerais que cela soit redonnable à n'importe quel rapport d'aspect. J'ai fait ce travail en ajoutant ce code:

    var canvas = d3.select("#graph-canvas").append("svg:svg")
      .attr("viewBox", "0 0 " + viewWidth + " " + viewHeight)
      .attr("preserveAspectRatio", "none")

Mais le problème que j'ai, c'est que je ne veux pas que le texte s'étire avec. J'aimerais vraiment que le texte reste de taille constante, tandis que sa position s'adapte pour se déplacer avec les dimensions du graphique. Mais si le texte ne peut pas rester une taille constante, j'aimerais qu'il conserve au moins son rapport d'aspect.

J'ai essayé de définir le rapport d'aspect sur l'élément texte, mais cela ne fonctionne pas (je pense que c'est un attribut destiné à une boîte de vue.

    canvas.append("svg:text")
      .attr("x", function(d, i) {return xScale(i) + marginLeft;})
      .attr("y", "200")
      .attr("preserveAspectRatio", "xMinYMin")
      .attr("font-size", "100")
      .text("foo");

J'ai également essayé d'attacher juste des divs normaux, mais pour une raison quelconque, ils ne se présentent jamais. Penser que cela pourrait être la bonne stratégie.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top