Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

A better fix for the font-size 'smaller' problem.

This resolves #991, replacing the earlier temporary patch.  It takes
advantage of the fact that line-height can take the form of a unit-less
integer, in which case it mirrors the font-size, even when it is
something abstract, like 'smaller'.  We can then read the dummy
element's height to learn the effective font-size.
  • Loading branch information...
commit a1b4afc57d2b97e678b63a9567a8f6b19c763a99 1 parent df0875e
@dnschnur dnschnur authored
Showing with 9 additions and 6 deletions.
  1. +9 −6 jquery.flot.canvas.js
View
15 jquery.flot.canvas.js
@@ -217,21 +217,24 @@ browser, but needs to redraw with canvas text when exporting as an image.
// If the font was provided as CSS, create a div with those
// classes and examine it to generate a canvas font spec.
+ // Note the trick of using a line-height of 1, without units;
+ // this sets it equal to the font-size, even if the font-size
+ // is something abstract, like 'smaller'. This enables us to
+ // read the real font-size via the element's height, working
+ // around browsers that return the literal 'smaller' value.
+
if (typeof font !== "object") {
- var element = $("<div></div>").html(text)
+ var element = $("<div>&nbsp;</div>")
.addClass(typeof font === "string" ? font : null)
- .css({
- position: "absolute",
- top: -9999
- })
+ .css({ position: "absolute", padding: 0, 'line-height': 1 })
.appendTo(this.getTextLayer(layer));
font = {
style: element.css("font-style"),
variant: element.css("font-variant"),
weight: element.css("font-weight"),
- size: parseInt(element.css("font-size"), 10) || 13,
+ size: element.height(),
family: element.css("font-family"),
color: element.css("color")
};
Please sign in to comment.
Something went wrong with that request. Please try again.