2015-09-06 2 views
1

Хотя я уже говорил блочную модель, но не может отслеживать Как высота текстового поля или любого HTML элемента вычисляется в следующем скрипкуКак высота текстового блока рассчитывается в HTML

<input type="text" id="test" onclick= "alert('computed height ' + window.getComputedStyle(this).height + ' and font-size ' + window.getComputedStyle(this)['font-size'])" name="test" value="Click here to get height" style=" 
 
    padding: 0px; 
 
    border: 0px;  
 
    line-height: 1; 
 
"/> 
 

Я не могу найти, как высота текстового поля составляет 15 пикселей, даже если граница 0, 0 маржа, 0 и 13.33 пикселей размер шрифта.

Edit- Хотя светлячок отлично работает по расчетам, но после того, как масштабирование она сокращает содержание некоторых Text on Firefox

Text on Chrome

Это кажется хром применяется некоторое форматирование, чтобы сделать лучше, чем светлячок.

+3

Вероятно, зависит от браузера ... Я получаю разные значения на основе уровня масштабирования. –

+0

Btw, в firefox, вычисленная высота тоже 13.33px. IE 11, 15.33.:) – sinisake

+0

Мне интересно, доступны ли для этого свойства спецификации – Sid

ответ

0

Вы проверили линию-высоту? попробуйте установить его на некоторое значение px

если высота не указана, а граница, заполнение - 0, то это будет значение строки-высоты, которое является причиной. У каждого браузера есть свой предварительно определенный css. поэтому вы должны перезагружать большинство из них в своем css (в основном наверху), поэтому все браузеры отображают то же самое

Редактирование: Я имел в виду, что строка-высота: 1 будет отличаться в каждом браузере на основе предопределенных стилей браузеров, вы первоначально сбросили высоту линии на тело. Легкий способ узнать значение высоты строки a px и проверить все браузеры

+0

Я уже установил его в 1, что означает, что высота строки должна быть такой же, как размер шрифта (что здесь составляет 13.33). – Sid

+0

Я попытался установить оба параметра, но не работал, все еще показывая 15 пикселей на хроме – Sid

1

Ok Вот объяснение, я узнал от Тринга.

См спецификацию http://www.w3.org/TR/CSS2/visudet.html#inline-non-replaced

, который говорит

Высота области содержимого [коридорных элементов] должны быть основаны на шрифте, но эта спецификация не определяет, каким образом. БВС может, например, использовать эм-окно или максимальный зажим и спусковой шрифт ...

Chrome и противопожарные лисицы имеют различную реализацию линии высоту

хромирование Хром будет игнорировать линейную высоту, если он не способен визуализировать его идеально и увеличит пространство, чтобы он идеально соответствовал тексту.

FireFox- FireFox также игнорировать высоту строки, если она меньше размера шрифта, но это обеспечит точное место, предоставленное в качестве размера шрифта, даже если не в состоянии сделать его красиво.

Смежные вопросы