Ich habe ein kleines jQuery-Plugin dafür gemacht. Das Prinzip ist einfach:
In einem Container, 2 Inline-Elemente mit dem gleichen Inhalt, aber einer gestylt sehr klein .
und die andere sehr große A
einfügen. Dann wird, da es vertical-align:baseline
standardmäßig sind, wird die Basislinie wie folgt angegeben:
^+----+^
| | +-+| | top
height | |.|A|| v
| | +-+|
v +----+
=======================
baseline = top/height
=======================
Hier ist das Plugin in Coffeescript (JS here):
$ = @jQuery ? require 'jQuery'
detectBaseline = (el = 'body') ->
$container = $('<div style="visibility:hidden;"/>')
$smallA = $('<span style="font-size:0;">A</span>')
$bigA = $('<span style="font-size:999px;">A</span>')
$container
.append($smallA).append($bigA)
.appendTo(el);
setTimeout (-> $container.remove()), 10
$smallA.position().top/$bigA.height()
$.fn.baseline = ->
detectBaseline(@get(0))
dann rauchen sie mit:
$('body').baseline()
// or whatever selector:
$('#foo').baseline()
-
Probieren Sie es aus a t: http://bl.ocks.org/3157389
Das ist großartig! Vielen Dank! – EPLKleijntjens
Eine vollständigere Alternative könnte http://pomax.nihongoresources.com/pages/Font.js/ sein - habe es noch nicht ausprobiert, scheint aber großartig. – abernier
Hallo @abernier. Ich habe Ihren Code ausprobiert, und wenn ich ihn ausführe, bekomme ich die Nummer 1.1108247422680413 für die Grundlinie, auf der ich vermute, dass sie die Standardschrift für meine Website ist. Kannst du mir sagen, was diese Zahl bedeutet? Ich habe die Basislinie mit dem Auge ausgearbeitet, und ich kann nicht sehen, wie sich die Zahl, die ich von Ihrer Methode erhalte, darauf bezieht. Danke im Voraus. –