Я нашел решение этой проблемы с сообщениями об ошибках формы html5. Это вызвано шириной, используемой в нашем CSS для элемента select. При увеличении ширины всплывающее сообщение об ошибке также увеличивается по ширине. Это также только влияет на Firefox.
Так что я обернул 'select' в промежуток и дал ему относительную позицию. Затем я дал селекту более широкую ширину (для размещения сообщения об ошибке), но затем также дал ему отрицательное левое поле. Вам нужно будет поиграть с собственной шириной в пикселях для вашей ситуации, но это решило проблему. Я избежал использования значения по умолчанию для первой опции, но я предполагаю, что вы можете использовать выравнивание текста прямо на элементах опции.
Это решение затем создает другую проблему! Красный контур, который Firefox использует для своих недопустимых состояний, обведет всю «скрытую» область выделения, которая выглядит странно и отличается от других элементов, поэтому ответом было просто отключить границы, но я использовал css для действительного и недействительного состояния просто добавить фоновый значок (галочка / крестик), чтобы указать, когда поля формы были действительными / недействительными. Я также использовал x: -moz-any-link в моей CSS, чтобы отфильтровать эти стили только для Firefox и других браузеров. Вот мой css ...
/* start styles for Firefox clipping of validation msgs */
form fieldset > span, x:-moz-any-link {position: relative; }
form select, x:-moz-any-link {width: 230px; margin-left: -82px; }
form select option, x:-moz-any-link {width: 220px; margin-right: -20px; text-align: center; }
form input, form select, x:-moz-any-link {border: solid 1px transparent; box-shadow: none; }
form input:-moz-placeholder, form select:-moz-placeholder, x:-moz-any-link {box-shadow: none !important; }
form input:invalid, form select:invalid, x:-moz-any-link {box-shadow:0 0 3px transparent; }
/* end styles for Firefox clipping of validation msgs */
input:valid {background: #fff url("forms-check.png") no-repeat 130px center; }
input:focus:invalid {background: #fff url("forms-cancel.png") no-repeat 130px center; }
Все намного проще, чем я это сделал ?!
Надеюсь, что это полезно.