Вертикальное выравнивание текстового курсора (курсор?) В поле ввода с помощью jQuery, Javascript или CSS - PullRequest
3 голосов
/ 31 июля 2009

Я возиться с CSS в поле ввода в CSS, чтобы увеличить текст, добавить границы, изменить цвет и т. Д.

Я выровнял больший текст, чтобы он хорошо вписался (выровнен по вертикали) в поле ввода с помощью отступов, но маленький мигающий текстовый курсор ужасно выровнен (обнимает низ) Мне интересно, есть ли способ отрегулировать мигающий курсор текста самостоятельно, не испортив расположение текста.

Спасибо! Matt

Вот CSS:

div#search_box {
    height:32px;
    width: 366px;
    float:left;
    margin-left:86px;
    margin-top:14px;
    background-color: #ffffff;
    border: 2px solid #b66b01;
}

input#search_input {
    border:none;
    position: relative;
    float: left;
    height: 32px;
    width: 335px;
    font-size: 18px;
    padding-top: 9px;
    padding-left: 4px;
    outline-style:none;
    font-family: Helvetica, Arial, "MS Trebuchet", sans-serif;
    color: #5a5a5a;
}

div#search_icon {
    width:22px;
    height:24px;
    float:right;
    margin-right:5px;
    margin-top:4px;
    cursor: pointer;
    background: url('images/magnifier.png');
}

HTML:

<div id="search_box">
     <input type="text" name="query" id="search_input" autocomplete="off"/>
     <div id="search_icon">
</div>

Результат:

search

Ответы [ 3 ]

6 голосов
/ 31 июля 2009

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

Вы указываете высоту 32px, но к ней добавляется любой отступ, поэтому высота поля ввода на самом деле составляет 32 + 9 + 4 = 45px. Курсор вертикально центрируется в поле ввода высотой 45px, но ваша граница находится вокруг делителя высотой 32px. Измените 'height: 32px' на 'height: 19px' в поисковой строке, и это работает.

Я (очень) рекомендую использовать Firebug . Это очень полезно для выяснения подобных вещей.

2 голосов
/ 31 июля 2009

Sidenote: вам не нужно div#search_icon, ваш вклад может иметь следующий фон:

  background: white url('images/magnifier.png') no-repeat right NNpx;
1 голос
/ 31 июля 2009

Не похоже, что вы показываете все css в вашем примере (есть ли div или два, выступающие в качестве границы?), Но вы пытались удалить атрибут height и установить для padding-bottom значение padding-top значение (9px)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...