2017-01-08 5 views
-3

У меня есть поле ввода и кнопка отправки, которая выглядит как вопросительный знак из-за стилизации css. Это то, что она в настоящее время выглядит следующим образом:Place question mark submit кнопка внутри поля ввода

enter image description here

Как я могу поместить знак вопроса внутри поля ввода, как это:

enter image description here

HTML

<div class="div"> 
    <form method="post"> 
    <input type="text" class="input"> 
    <input type="submit" value="?" class="submit"> 
    </form> 
</div> 

CSS

.div { 
    position: relative; 
    top: 50%; 
    transform: translateY(50%); 
} 

.input { 
    display: block; 
    margin: 0 auto; 
    width: 50%; 
} 

.submit { 
    background: none; 
    border: none; 
} 

JsFiddle: https://jsfiddle.net/TheCodesee/8h72tjcL/2/

+0

я настоятельно рекомендую вам * не * удалить стиль по умолчанию 'элемента' , если вы не создавать свои собственные стили, в противном случае нет ничего визуально указывают, что '?' символ можно щелкнуть. Что касается сидения рядом друг с другом? Удалите 'display: block;' –

+0

@DavidThomas Я полагаю, что я мог бы добавить к нему курсор: указатель –

+0

Вы могли бы, но тогда вы просто надеетесь, что пользователь переместит курсор над чрезвычайно маленьким '' элемент. А как насчет пользователей, которые перемещаются со своими клавиатурами? –

ответ

0

Вы можете использовать знак вопроса в качестве фонового изображения в поле ввода с некоторыми CSS, например:

.form-input { 
    padding-right: 4rem; 
    background-image: url(your image); 
    background-repeat: no-repeat; 
    background-position: center right 1rem; 
    background-size: 2rem 2rem; 
} 

Вы, возможно, потребуется настроить число в зависимости от размера изображения конечно. Кнопка отправки может существовать, но вы хотите скрыть (через visibility или display). Таким образом, использование может все же нажать enter для отправки формы. Другой возможностью было бы автоматически отправить форму на размытие ввода.

Таким образом, вы можете избежать перемещения самой кнопки вокруг.

+0

Это не отвечает на мой вопрос, это скорее обход. С вашим решением не будет кнопки отправки вообще. –

+1

Да, вы правы. Я пропустил, что вы хотите переместить кнопку отправки на свой вход. –

0

Использовать position: absolute на ваш ввод.

.div { 
 
    position: relative; 
 
    top: 50%; 
 
    transform: translateY(50%); 
 
    width: 50%; 
 
    margin: 0 auto; 
 
} 
 

 
.input { 
 
    display: block; 
 
    margin: 0 auto; 
 
    width: 100%; 
 
} 
 

 
.submit { 
 
    border: none; 
 
    background: none; 
 
    outline: none; 
 
    position: absolute; 
 
    top: 2px; 
 
    right: 0px; 
 
}
<div class="div"> 
 
    <form method="post"> 
 
    <input type="text" class="input"> 
 
    <input type="submit" value="?" class="submit"> 
 
    </form> 
 
</div>

+0

Ну, я не понимаю, как вы можете достичь этого без абсолютного позиционирования или любого подобного метода. Что случилось? – Quinox

+0

Я немного обновил код в своем сообщении. Проверьте его и, если возможно, обновите свой ответ. –

+0

Обновлен с помощью вашего текущего кода, но входной текст должен иметь 100% ширину для правильного свойства 'right'. – Quinox