2015-02-11 90 views
0

我在jsfiddle上用font-size和line-height做了一個textarea的簡單示例。瞭解css textarea偏移量

JSFiddle textarea

textarea { 
    font-size: 20px; 
    line-height: 4; 
    height: 260px; 
} 

<textarea> 
A 
A 
A 
</textarea> 

Offsets between lines Small caret Big caret

1)如何瀏覽器計算AREA_1高度和AREA_2高度?他們爲什麼不同?

2)瀏覽器如何計算textarea中的插入符號大小?爲什麼第一行的插入符號要比第二行的小得多?

+0

我在Firefox和Safari中檢查了這個 - 絕對是一樣的行爲 – Vadim 2015-02-11 14:31:15

回答

1

事實證明,它是在鉻的錯誤:Cursor line-height bug on inputs

CSS使用所謂的半領先渲染文本行。通過計算 行高和字體大小之間的差值除以2,然後將 計算的空間量放在每行文本上方和下方,可以確定此 。因此,如果您的字體大小爲16px,並且有效的行高爲24px,則 的前半部分爲4px。

通過Joshua Hibbert

+0

有什麼辦法可以防止文本第一行的頂部偏移? – Vadim 2015-02-11 14:59:15

+0

爲'line-height'設置一個小的值,與字體大小相同或略大。 – Stickers 2015-02-11 15:03:41

0

1)我認爲瀏覽器使用高於和低於一行的高度相等。如下所示:

----- 

A 

----- 

A 

----- 

2)在我的瀏覽器中(Firefox),插入符總是相同的大小。

+0

我在Firefox和Safari中檢查了這一點 - 完全一樣的行爲。正如我在原始文章中所展示的 - 這些高度並不相同。 – Vadim 2015-02-11 14:31:53