Вроде что-то в этом есть. Только вот если вам не нравится создавать это с помощью синтаксиса CSS, гораздо лучше используя определения в синтаксисе подобном тому что придумали вы, но производить основные манипуляции на стороне сервера. Как неплохой пример, генерить в результате CSS-файл.
Это элементарная компьютерная грамотность. Кто-то может не знать и о назначениях кнопок Tab и Shift и т. п. Это всё приходит со временем, с опытом, если конечно пользователю это вообще нужно.
А так же полезно оборачивать элемент формы в тег <label>, что позволит упростить:
Задание удобной сплошной прямоугольной активной области (кликабельной области);
Стилизацию для hover состояния, как для самого тега <label> (например цвет фона, стиль курсора), так и для его содержимого (цвет текста, цвет контуров элемента формы);
Вёрстку, т. к. можно например не использовать атрибут «for» у тега <label> и атрибут «id» у самого элемента формы.
Можете добавить альтернативу к Screenfly — Viewport Resizer. И так же будут иногда полезны следующие инструменты для тестирования внешнего вида сайта в различных браузерах с различными размерами окна, а так же скорости загрузки (с учётом различных регионов и континентов): browsershots.org, site-perf.com, webpagetest.org.
И ещё, перефразируйте, пожалуйста, хотя бы вот эту фразу «И конечно, вы просто обязаны начать учить TypeScript, особенно если вы часто используете в работе Microsoft .NET.» — каков смысл всем изучать этот язык, это же ведь всего лишь одна из альтернатив синтаксического сахара JS.
Тут вы не совсем правы. На живую безверсионную универсальную модель разработки спецификации HTML перешли только WHATWG. W3C об этом не заявляли и продолжают вести разработку версионной спецификации HTML5.
Я часто даю такую рекомендацию людям со слабым зрением. Уже многим приотрыл двери к различным методам изменения масштаба в браузерах и других обыденных программах, а так же по настройкам dpi для шрифтов и других экранных элементов в ОС.
Кстати как бы вы поступали с адресами страниц, при которых HTML-содержимое страниц на самом деле не меняется, а изменения применяются только для мультимедиа элементов на самой странице, т.е. адреса на контент которым управляют скрипты. Примеры: адреса слайдов в swf-презентации, адреса определённого видео-фрагмента. Я бы для таких адресов использовал именно якоря (hash), т. к. нужно учитывать, что HTML будет один, и дубликаты однотипного ресурса для поисковиков не хотелось бы создавать.
Ваша библиотека нормально будет работать при совместном использовании адресов без якорей и с ними в HTML5 и HTML4 браузерах?
Ну я бы правда не забывал про ссылки из HTML4 браузеров, которые используют якорь (знак # (hash)). Ведь пользователи старых браузеров тоже могут распространять ссылки с якорями по интернету. Для таких ссылок в вашей библиотеке можно использовать параметр «type=!», если не лень специально для старых браузеров делать поддержку hashbang (#!) на стороне бэкэнда. Я же верно размышляю?
Кстати, меня, если честно, слегка смутило, то что вы не используете git теги для версий библиотеки, а вместо этого создали директорию «old». С тегами было бы проще и вам и пользователям библиотеки.
Каждый вариант имеет право на жизнь в определённых случаях. И каждый способ может быть удобным в своём отельном идеальном случае. На каждый случай нужно подбирать специфичный способ, один из представленных в этом посте, какой либо другой или смешанные. Для реализации таблиц в адаптивных интерфейсах нет какого то универсального способа.
Мне кажется одного способа точно не хватает: он напоминает 1-ый вариант, но при этом убираются заголовки некоторых столбцов — это возможно в определённых случаях когда интуитивно понятно назначение определённых значений таблицы.
Автора оригинальной статьи поправили по поводу второго пункта. Он внёс исправления и извинился за путание читателей. azproduction внесите исправления, пожалуйста, что б новички не пугались, что у них что-то не работает.
Да и при этом, если не считать действия по кнопкам Home/End/PageUp/PageDown, всё остальное приведённое про Select в этой ветке, является минимумом, без которого неприятно/неудобно его использование.
Ещё посмотрел и заметил, что раскрытый список не прокручивается, если взаимодействовать с клавиатуры (кнопки up и down).
Для энтерпрайза Select должен уметь это (что пришло в голову за 5 минут):
При раскрытом списке список скрывается если:
нажатии кнопки Space или Esc
select теряет фокус
элемент списка активируется
нажатии мышкой на сам select
При скрытом списке кнопка Space раскрывает список
Кнопки Home И Page Up активируют первый элемент
Кнопки End И Page Down активируют последний элемент
При раскрытом списке:
первым выделяется активный элемент списка
наведение курсором мыши на элемент списка (mouse over) выделяет его (не должно быть двух выделенных элементов)
при событии mouse out с элемента списка оставляет его выделенным
нажатие кнопки Enter активирует выделенный элемент
Символьный ввод с клавиатуры произвоит выделение элемента со значением совпадающим по первым введённым символам
Ещё добавлю, что в идеале Page Up и Page Down прокручивают ровно на один экран внутри большого списка.
Всё это умеют редкие JS-библиотеки. Поэтому я рекомендую на серьёзных проектах использовать максимум такой метод habr.ru/post/95510/ или его производные.
Это не глюк Он так себя и ведёт с настройками по умолчанию. Правда на экспресс-панели есть список недавно закрытых вкладок, где группируются несколько одновременно закрытых вкладок.
Если «bundle exec» кажется длинноватым, можно сделать так что бы в проекте была папка /bin с с исполняемыми файлами привязанными к Gemfile.lock. Для это выполните: bundle install --binstubs
И можете теперь использовать более короткий «bin/»
<label>
, что позволит упростить:<label>
(например цвет фона, стиль курсора), так и для его содержимого (цвет текста, цвет контуров элемента формы);<label>
и атрибут «id» у самого элемента формы.Можно записать логические конструкции без использования самого if, например так:
можно заменить на
И тогда можно делать такие конструкции:
За одно получаем ещё дополнительную экономию.
И ещё, перефразируйте, пожалуйста, хотя бы вот эту фразу «И конечно, вы просто обязаны начать учить TypeScript, особенно если вы часто используете в работе Microsoft .NET.» — каков смысл всем изучать этот язык, это же ведь всего лишь одна из альтернатив синтаксического сахара JS.
Ваша библиотека нормально будет работать при совместном использовании адресов без якорей и с ними в HTML5 и HTML4 браузерах?
Кстати, меня, если честно, слегка смутило, то что вы не используете git теги для версий библиотеки, а вместо этого создали директорию «old». С тегами было бы проще и вам и пользователям библиотеки.
Мне кажется одного способа точно не хватает: он напоминает 1-ый вариант, но при этом убираются заголовки некоторых столбцов — это возможно в определённых случаях когда интуитивно понятно назначение определённых значений таблицы.
Ещё посмотрел и заметил, что раскрытый список не прокручивается, если взаимодействовать с клавиатуры (кнопки up и down).
Для энтерпрайза Select должен уметь это (что пришло в голову за 5 минут):
Ещё добавлю, что в идеале Page Up и Page Down прокручивают ровно на один экран внутри большого списка.
Всё это умеют редкие JS-библиотеки. Поэтому я рекомендую на серьёзных проектах использовать максимум такой метод habr.ru/post/95510/ или его производные.
Это не глюк Он так себя и ведёт с настройками по умолчанию. Правда на экспресс-панели есть список недавно закрытых вкладок, где группируются несколько одновременно закрытых вкладок.
bundle install --binstubs
И можете теперь использовать более короткий «bin/»