Флажок чистого CSS выглядит иначе на iOS

Я пытаюсь выполнить пресловутую задачу создания собственного флажка с помощью чистого CSS. На самом деле я не против использования Javascript / jQuery для получения того же эффекта, но пока я не нашел его полезным. В браузере все работает нормально, у меня есть треугольник (игра) для непроверенного значения и символ паузы для отмеченного. Однако на телефоне он выглядит совершенно иначе, и на него нельзя нажимать. Не совсем понимаю, почему все выглядит так кардинально иначе? Любые советы были бы действительно полезны.

input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 12px;
  border-color: transparent transparent transparent #ffffff;
  outline: none;
  display: none;
  animation: pointer 0.4s infinite;
  cursor: none;
  transition: opacity 0.4s;
}

input[type=checkbox]:checked {
  width: 10px;
  height: 11px;
  border-left: 2.5px solid #fff;
  border-right: 2.5px solid #fff;
  border-top: none;
  border-bottom: none;
}

Флажок чистого CSS выглядит иначе на iOSФлажок чистого CSS выглядит иначе на iOS

Каждый браузер по-разному отображает ввод / элементы управления HTML. Некоторые браузеры не позволяют настраивать CSS, что позволяют другие браузеры. Я всегда создавал свой собственный оверлей «флажок», который переключает скрытый флажок. Этот метод позволяет вам полностью контролировать свой дизайн во всех браузерах.

NSTuttle 09.08.2018 21:40

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

Jack Clarke 09.08.2018 21:42

Хотя я не большой поклонник W3Schools, вот простой пример: w3schools.com/howto/howto_css_custom_checkbox.asp

NSTuttle 09.08.2018 21:54
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
3
467
1

Ответы 1

Поскольку браузеры реализуют свои собственные стили ввода, наиболее последовательным способом создания собственных входов флажков было бы скрыть ввод флажков с помощью CSS и вместо этого использовать тег метки HTML в качестве флажка. Вы можете стилизовать <label> по своему усмотрению, и он будет наиболее согласованным во всех браузерах.

Используя HTML-тег:

<input type = "checkbox" id = "checkbox_1" style = "display:none;" />
<label for = "checkbox_1" class = "custom_checkbox"></label> 

Вы можете найти отличный пример на CodePen.io

Другие вопросы по теме