添加非等寬字體,在容器標籤空間,等等的Javascript:獲得在預容器文本字符串的顯示寬度,在EM
那麼,如何得到一個文本字符串的寬度是顯示在容器中...在em(而不是px)中。
這對於經常更改字體的設備/網站會很有用。因此,不需要在每個重新大小上「重新繪製」大小(使用插入,測量,移除)方法。其中一些沒有事件觸發/觀看。
手動使用em工作到目前爲止...問題是使其自動。甚至jQuery.width()在px中返回結果。
添加非等寬字體,在容器標籤空間,等等的Javascript:獲得在預容器文本字符串的顯示寬度,在EM
那麼,如何得到一個文本字符串的寬度是顯示在容器中...在em(而不是px)中。
這對於經常更改字體的設備/網站會很有用。因此,不需要在每個重新大小上「重新繪製」大小(使用插入,測量,移除)方法。其中一些沒有事件觸發/觀看。
手動使用em工作到目前爲止...問題是使其自動。甚至jQuery.width()在px中返回結果。
並不完美,但能夠完成任務(有點)用了jQuery]
// [div] : a dom node to test insertion of string (inherits its css prop too)
// [str] : the string to test against
function getEmLen(div, str) {
var oriInner = div.innerHTML;
var res;
div.innerHTML = '<a>'+str+'</a><a>m</a>';
res = Math.ceil(100 * (jQuery(div.firstChild).width())/(jQuery(div.lastChild).width()))/100;
//the * 100,/100 is to remove long trailing divides
div.innerHTML = oriInner;
return ''+res+'em';
}
您可以將px轉換爲em。記住公式:
var em = px/fontSize;
所以,如果你有與font-size
設定爲1em
這通常是一個16px
元素pre
,而您在PX寬說800px
,那麼你使用em寬度800/16
或50em
。希望有所幫助。投票給我的答案,如果你覺得它有用。
這正是因爲你問我,我不是你的答案投票......你在回答問題這裏提供幫助,而不是獲得代表。 – Purag
它仍然幫助我進入正確的方向=) – PicoCreator