2015-03-26 1 views
1

У меня есть веб-сайт с одним полем ввода (например, поисковой системой), и я использую атрибут HTML5 autofocus.Настройка атрибута автофокуса HTML5 с помощью CSS

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

Возможно ли присвоить атрибут автофокуса в запросе на медиа-носитель CSS, поэтому он активен только на больших дисплеях?

Я знаю, что могу настроить фокус с помощью Javascript, но прямо сейчас страницы не используют Javascript, и я бы предпочел избежать его, если бы его можно было использовать для этого CSS.

+6

Если вы действительно не хотите использовать JS, у вас могут быть два входа (один с автофокусом, другой без него) и отображение одного или другого со средствами массовой информации. Скрытые входы не получают автофокусировки;) – blex

ответ

3

Как указано выше в комментариях: Используйте два входа и сделайте один скрытый (display:none;). Затем с целевыми экранами правил @media, которые имеют максимальную ширину 480px и сделают скрытый вход видимым (display:block;) и спрятать другой.

CSS:

.smscreen { 
    display: none; 
} 

@media screen and (max-width: 480px) { 
    .lgscreen { 
    display: none; 
    } 

    .smscreen { 
    display: block; 
    } 

} 

См Example using CSS.


В противном случае, вы можете обнаружить размер окна с JQuery на странице загрузки, и если экран больше, чем 480px использовать .focus() функцию на входе.

См. Example using jQuery.

+0

Демонстрация jQuery не работает. 1. Вам также нужно будет делать это на загрузке страницы (поэтому вам не нужно изменять размер окна, чтобы он работал). 2. Кажется, что добавление атрибута впоследствии не устанавливает фокус. Поскольку нам все равно, будет ли вход сосредоточен на изменении размера окна (мобильные пользователи не изменяют размер своего окна), вы можете просто «.фокусом»() «нагрузка на страницу», если размер экрана достаточно велик: http: //codepen.io/anon/pen/wBOwep – blex

+0

Упс, мне плохо. Спасибо за совет. Могу ли я включить ручку для примера jQuery? – cch

+0

Конечно, вы можете. Но вы уверены, что ваш работает на вас? Я никогда не получаю фокус (даже при изменении размера) в Chrome или Firefox. – blex

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