2010-10-26 2 views
3

Я работаю над шаблоном с дизайнером, и мы видим разные вещи. В моем браузере на mac поле ввода находится рядом с метками, но для дизайнера в его браузере поля ввода находятся под метками.css разница между firefox/Mac & firefox/Windows

Я использую сброс css eric meyer, поэтому все должно быть правильно. Вот скриншот, чтобы проиллюстрировать, что я имею в виду (слева это то, что должно быть и справа, что это не должно быть)

alt text

Кто-нибудь знает, как это можно исправить?

+0

Можете ли вы показать нам код, который вы используете? – ajcw

+0

первоначальное предположение: 'текст ' является обертыванием из-за заполнения контейнера – drudge

ответ

7

Если размеры полей указаны в em s, тогда измените их на px.

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

Оставьте немного места в контейнере (просто сделайте содержащий элемент на несколько пикселей шире, чем это должно быть).

Вы также можете попробовать:

input { 
box-sizing: border-box; 
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; 
} 

Что делает размеры элементов формы немного более последовательными.

+0

Оставив какую-то комнату, хорошо, но что делать, если мы хотим, чтобы внутренние элементы касались края коробки? Например, в случае горизонтального главного меню сайта? –

+1

@ D3K Вы можете использовать 'display: inline-block' для элементов (избегайте пробелов в источнике!) И' white-space: nowrap' в контейнере. Для поплавков с процентами или размерами я не знаю способа гарантировать идеальную сумму пикселей. – Kornel

1

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

Поместите font-size и width в поле ввода, это может помочь, поскольку значения по умолчанию для font-size (или могут быть) различны в окнах и mac. Таким образом, вы можете продолжать использовать em s, который я лично предпочитаю использовать.

+0

вход всегда приветствуется :) спасибо. Мне это не нравится, потому что родитель может легко повлиять на него. Однако это новый брат, похоже, решает эту проблему. – Christophe

0

Вы можете попробовать что-то вроде $ _SERVER ['HTTP_USER_AGENT'], если вы используете php или проверяете, как получить пользовательский агент на выбранном вами языке программирования на стороне сервера. Основываясь на пользовательском агенте, вы можете вставить условие в разделе заголовка html-документа для печати css. Убедитесь, что он последний в порядке, чтобы вы могли переопределить ранее написанный css. Это всего лишь один вариант. Это полезно, если у вас сложный дизайн.

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