Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Баг в Firefox при отображении текста в поле формы
 
 автор: clock   (01.12.2010 в 13:11)   письмо автору
2.5 Кб
 
 

Здравствуйте!

Не сталкивался ли кто со странностью в FF, когда текст в поле при заданных размерах шрифта и ширины поля не умещается в видимой части поля ?

Вот страница, которая корректно отображается в FF, IE6+, Хром 7, Сафари 4, Опера 10:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>input test</title>
<style type="text/css">
#date1, #date2 {    
    font-family: Arial, sans-serif;    
    font-size:12px;
    width:64px;
    padding:0;    
    margin:0;
    border:1px solid red;
}
 </style>

</head>
<body>

<form method="get" action="script.php">
<fieldset>
<input type="text" name='date1' id="date1" value="01.11.2010" /> -
<input type="text" name='date2' id="date2" value="12.08.1999" />
<span>введите даты</span>
<input type="submit" value="отправить" />
</fieldset>
</form>   

</body>
</html>


Но стоит теперь поменять размер шрифта и ширину элемента на следующие (а мне нужно добиться корректного отображения именно при таких размерах):
font-size:12px;
width:64px;

то в FF текст "срезается". В остальных браузерах при этом все нормально.

Заметил такое в FF начиная 3.6.10, потом обновился до 3.6.11, там стало все нормально отображаться, но через какое-то время опять начались такие же баги. Т.е. иногда баг есть, иногда - нет. Не могу понять причину такого явления.

Хотя на скриншоте визуально заметно, что текст во втором случае рендерится как будто с большим letter-spacing.

Можно конечно ставить letter-spacing:-1px, но в других браузерах при этом все некрасиво выглядит.

Что подскажете ?

  Ответить  
 
 автор: Агамемнон   (01.12.2010 в 13:36)   письмо автору
 
   для: clock   (01.12.2010 в 13:11)
 

В FF 6.3.12 все выглядит,как и в остальных.Может,баг самого обозревателя?

  Ответить  
 
 автор: clock   (01.12.2010 в 15:30)   письмо автору
 
   для: Агамемнон   (01.12.2010 в 13:36)
 

Похоже, что это баг ff. Только не понимаю, почему баг то проявляется, то нет...
Причем баг выявлен на трех доступных мне компьютерах, т.е. это не проблема какой-то одной конкретной машины.

  Ответить  
 
 автор: clock   (01.12.2010 в 15:54)   письмо автору
 
   для: Агамемнон   (01.12.2010 в 13:36)
 

Еще выяснил, что если заменить шрифт на Verdana или Tahoma и подобрать ширину поля, то все нормально во всех браузерах. Т.е. с Arial какие-то глюки.

  Ответить  
 
 автор: Агамемнон   (01.12.2010 в 16:59)   письмо автору
 
   для: clock   (01.12.2010 в 15:54)
 

Как-то сквозь пальцы первый раз прочитал Ваш код,это не баг броузера.Причина в том,что Вы жестко задаете ширину текстового поля.Положено задавать ее в количестве символов,которое может вместить поле,т.е. size:какое-либо целое положительное число.Соответственно,при разной гарнитуре и размере шрифта броузер автоматически подстраивает ширину поля.При width:60px,например,режет в любом броузере.

  Ответить  
 
 автор: clock   (02.12.2010 в 12:56)   письмо автору
 
   для: Агамемнон   (01.12.2010 в 16:59)
 

Попробовал сделать так как вы написали, т.е. убрал явное задание ширины в px и поставил size="7". Все нормально отображается, кроме Оперы 10, т.к. в ней надо ставить size=10, но в остальных в этом случае поле слишком длинное получается.

Но все равно это странно. Вот только что поставил последний FF на ПК, где ранее он не был установлен, так там все нормально показывает.

  Ответить  
 
 автор: Агамемнон   (02.12.2010 в 13:56)   письмо автору
 
   для: clock   (02.12.2010 в 12:56)
 

Видимо,это особенности отображения данного тега разными броузерами.Лично я никогда не обращал на эти различия внимания,т.к. всегда прописываю ширину в атрибуте size,его,кстати,лучше прописывать в самом теге <input>.Могу только порекомендовать подключать скрипт,определяющий тип броузера,и в зависимости от этого устанавливать разную ширину текстового поля.

Прописал <input type="text" name='date1' id="date1" size="10" value="01.11.2010" />
<input type="text" name='date2' id="date2" size="10" value="12.08.1999" />
.Судя по всему,броузеры по-разному учитывают наличие точек в поле:EE и FF считают,что символов 8 и резервируют место еще под 2 цифры,а Оpera считает цифры вместе с точками,как-то так.
http://htmlbook.ru/html/input/size

  Ответить  
 
 автор: clock   (03.12.2010 в 12:08)   письмо автору
 
   для: Агамемнон   (02.12.2010 в 13:56)
 

Видимо действительно придется определять тип браузера.
Скрипт не нужен, т.к. в jquery это есть, но все равно спасибо.
Просто хотел разобраться в вопросе, в том смысле решаемо это или нет без скриптов и css хаков.

PS Что-то не нашел на форуме опции, позволяющей получать уведомления об ответах в теме. Ее нет или я плохо искал ?

  Ответить  
 
 автор: Агамемнон   (03.12.2010 в 13:11)   письмо автору
 
   для: clock   (03.12.2010 в 12:08)
 

Опция есть,но не очень удобная:новый очередной вопрос-ответ отображается какое-то время в скобках на странице форума(нужно периодически заходить на сайт и проверять появление ответов),сам топик перемещается в верх страницы,а "внутри" топика последнее сообщение помечено словом "новое".

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования