2013-08-24 5 views
6

Я пытаюсь наложить текст на <input type="text"> (для кросс-браузера placeholder поддержка). Я обнаружил, что мое позиционирование всегда отключено на пару пикселей из-за какого-либо дополнения, которое невозможно удалить, установив padding: 0;. Предложения here и here не решают проблему.Зачем нужны текстовые входы?

Вы можете увидеть это отступы в следующем скриншоте из Chrome, как пустое пространство между синей подсветкой и желтой каймой:

enter image description here

Как я могу а) удалить это пространство; или б) измерить его с помощью Javascript?

+0

Вы пробовали сброс CSS? – j08691

+0

Вы должны рассмотреть возможность использования чего-то вроде [Normalize.css] (http://necolas.github.io/normalize.css/), если вы не хотите иметь дело с полным сбросом CSS (что почти во всех случаях не является необходимым) , – mc10

ответ

2

Если заменить границы по умолчанию с вашим собственным, дополняющий уходит (по крайней мере для меня, на Chrome/Mac):

enter image description here

Это CSS я использовал:

input { 
    padding: 0; 
    outline: none; 
    border: 1px solid red; 
} 

http://jsfiddle.net/NZZ5B/

+1

Это работает для меня в Chrome 29.0.1547.57. Причина в том, что Chrome по умолчанию имеет рамку вставки 2px, которая имеет эффект, похожий на однопиксельную сплошную границу с дополнительным пикселем интервала –

+0

Фантастический! Это работает в самых последних версиях Chrome, Firefox (что было хорошо для начала) и Safari, а также IE8 и 9, но не в Opera и IE10. Любая идея почему? –

+0

@ 1 '' Вы сбросили прописку, поле тоже? И вы пытались установить модель коробки с рамкой? – bfavaretto

-1

Вам необходимо сбросить все. Поэтому рекомендуется использовать:

<style> 
html, body { 

    margin: 0; 
    padding: 0; 

} 
</style> 

Надеюсь, что это помогло.

+0

Это не работает, хотя это, как правило, хорошее решение таких проблем. –

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