Крестик на css: Нарисуйте крестик в CSS — CodeRoad
css — Почему этот крестик остается серым в Safari iOS?
Я просто потратил слишком много времени на выяснение того, почему мой <button>
не хочет отображать белый цвет текста в iOS Safari. Это кнопка для закрытия модального режима, определяемая так:
<button type="button">✖</button>
Вот что я получил:
Я был уверен, что что-то упустил, поскольку мы все знаем, что кнопки не так просто стилизовать. Но после применения color: #fff;
и -webkit-appearance: none
я ожидал, что это сработает. Я наконец-то подумал о том, чтобы попробовать других персонажей, и, к моему удивлению, вот результат:
Видимо мой CSS был правильным, виноват был сам персонаж. Теперь мне действительно любопытно, что случилось. Сначала я подумал, что, возможно, этот крест моего выбора был эмодзи, но, похоже, не так. Первый — это обычная заглавная буква X (1 байт), а все остальные — 3 байта. Emoji 4 байта, верно?
Мой вопрос, в основном из любопытства: почему этот крест остается серым?
Для справки вот кресты, которые я тестировал: X ✕ ☓ ✖ ✗ ✘
, четвертый — тот. Я использовал шрифт Tahoma , но я не уверен, имеет ли это значение для символов Юникода. Проблемный крестик называется ТЯЖЕЛЫЕ МУЛЬТИПЛИКАЦИИ X (U + 2716).
-1
Robo Robok 8 Апр 2020 в 23:07
2 ответа
К сожалению, смайлики не работают так же. Некоторые из них являются текстовыми символами, а некоторые просто эмодзи. Я делаю этот простой трюк, и это работает большую часть времени:
element {
color: transparent;
text-shadow: 0 0 0 green;
}
1
Naseh Badalov 8 Апр 2020 в 21:21
Тайна разгадана. У этого конкретного кросс-персонажа есть очень близкий эмодзи-брат. Сам крест — U+2716
, который является десятичным 10006
.
Но есть и эмодзи, которые выглядят почти одинаково, за исключением серого (по крайней мере, в интерпретации Apple) и с мягкой тенью. Этот эмодзи состоит из двух комбинированных персонажей:
- Тот же
крест - Символ с именем
VARIATION SELECTOR-16
, являющийсяU+FE0F
или десятичным65039
Похоже, что Safari на iOS при некоторых обстоятельствах преобразует U+2716
в своего смайлика. Один из таких случаев — поместить его в <button>
.
1
Robo Robok 8 Апр 2020 в 22:16
❌ — Метка крест Эмоджи: U+274C
X, знак умножения, крестик, удалить
U+274C
Emoji
Отображение этого Emoji в разных системах
Значение Эмоджи
Знак добавлен в Юникод из типографского набора дингбаты Германа Запфа серия 100 Международной Гарнитурной Корпорации.
Этот текст также доступен на следующих языках: English;
Свойства
Версия | 6.0 |
Блок | Дингбаты |
Тип парной зеркальной скобки (bidi) | Нет |
Композиционное исключение | Нет |
Изменение регистра | 274C |
Простое изменение регистра | 274C |
Другие символы
Кодировка
Кодировка | hex | dec (bytes) | dec | binary |
---|---|---|---|---|
UTF-8 | E2 9D 8C | 226 157 140 | 14851468 | 11100010 10011101 10001100 |
UTF-16BE | 27 4C | 39 76 | 10060 | 00100111 01001100 |
UTF-16LE | 4C 27 | 76 39 | 19495 | 01001100 00100111 |
UTF-32BE | 0 0 39 76 | 10060 | 00000000 00000000 00100111 01001100 | |
UTF-32LE | 4C 27 00 00 | 76 39 0 0 | 1277624320 | 01001100 00100111 00000000 00000000 |
Iconizer.net | cross бесплатные иконки
50
Вся коллекция8700
https://icons8.com/iconizer/files/Juicy_Fruit/orig/cross.png
https://icons8.com/iconizer/files/Juicy_Fruit/thumb/64/cross.png
30
Вся коллекция1724
https://icons8.com/iconizer/files/Web_Design_Creatives/orig/Cross-lines.png
https://icons8.com/iconizer/files/Web_Design_Creatives/thumb/64/Cross-lines.png
151
Вся коллекция12515
https://icons8.com/iconizer/files/Woothemes_Ultimate_Icon_Set/orig/cross.png
https://icons8.com/iconizer/files/Woothemes_Ultimate_Icon_Set/thumb/64/cross.png
78
Вся коллекция1190
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_up.png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_up.png
223
1181
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_down.png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_down.png
223
Вся коллекция1256
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_left.png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_left.png
223
Вся коллекция1263
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_right.png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_right.png
223
Вся коллекция177
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/8-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/8-em-cross.png
182
Вся коллекция357
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/12-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/12-em-cross.png
182
Вся коллекция626
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/24-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/24-em-cross.png
182
Вся коллекция469
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-em-cross.png
182
Вся коллекция299
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-tag-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-tag-cross.png
182
Вся коллекция501
https://icons8.com/iconizer/files/Flag_icons/orig/Red%20Cross.png
https://icons8.com/iconizer/files/Flag_icons/orig/Red Cross.png
254
Вся коллекция501
https://icons8.com/iconizer/files/Flag_icons/orig/Red%20Cross.png
https://icons8.com/iconizer/files/Flag_icons/orig/Red Cross.png
254
Вся коллекция5950
https://icons8.com/iconizer/files/Flavour_Extended/orig/cross.png
https://icons8.com/iconizer/files/Flavour_Extended/orig/cross.png
419
Вся коллекция4842
https://icons8.com/iconizer/files/Function_icons/orig/cross_48.png
https://icons8.com/iconizer/files/Function_icons/orig/cross_48.png
128
Вся коллекция778
https://icons8.com/iconizer/files/Fugue_Icons/orig/do-not-disturb-sign-cross.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/do-not-disturb-sign-cross.png
2042
Вся коллекция893
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle_frame.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle_frame.png
2042
Вся коллекция886
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle-frame.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle-frame.png
2042
Вся коллекция663
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-script.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-script.png
2042
Вся коллекция721
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle.png
2042
Вся коллекция759
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_octagon_frame.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_octagon_frame.png
2042
Вся коллекция588
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-button.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-button.png
2042
Вся коллекция478
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-white.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-white.png
2042
Вся коллекция296
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_small.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_small.png
2042
Вся коллекция359
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
2042
Вся коллекция359
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
2042
Вся коллекция729
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle.png
2042
Вся коллекция728
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-white.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-white.png
2042
Вся коллекция768
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
2042
Вся коллекция768
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
2042
Вся коллекция344
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small.png
2042
Вся коллекция759
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-octagon-frame.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-octagon-frame.png
2042
Вся коллекция6065
https://icons8.com/iconizer/files/Addictive_Flavour/orig/cross.png
https://icons8.com/iconizer/files/Addictive_Flavour/orig/cross.png
424
Вся коллекция10949
https://icons8.com/iconizer/files/Crystal_Clear/orig/button_cancel.png
https://icons8.com/iconizer/files/Crystal_Clear/thumb/64/button_cancel.png
1157
Вся коллекция13963
https://icons8.com/iconizer/files/Human_o2/orig/dialog-error.png
https://icons8.com/iconizer/files/Human_o2/thumb/64/dialog-error.png
1055
Вся коллекция655
https://icons8.com/iconizer/files/Silk/orig/cross.png
https://icons8.com/iconizer/files/Silk/orig/cross.png
889
Вся коллекция653
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon_fram.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon_fram.png
488
Вся коллекция767
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield_2.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield_2.png
488
Вся коллекция673
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon.png
488
Вся коллекция764
https://icons8.com/iconizer/files/Led_Icons/orig/cross.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross.png
488
Вся коллекция779
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield.png
488
Вся коллекция617
https://icons8.com/iconizer/files/Gnome_icons/orig/stock_insert-cross-reference.png
https://icons8.com/iconizer/files/Gnome_icons/orig/stock_insert-cross-reference.png
1032
Вся коллекция1049
https://icons8.com/iconizer/files/Farm-fresh/orig/cross.png
https://icons8.com/iconizer/files/Farm-fresh/orig/cross.png
764
Вся коллекция2212
https://icons8.com/iconizer/files/Crystal_Project/orig/button_cancel.png
https://icons8.com/iconizer/files/Crystal_Project/orig/button_cancel.png
475
Вся коллекция1373
https://icons8.com/iconizer/files/Shrunk_Pidgin_Smilies/orig/fingers-crossed.png
https://icons8.com/iconizer/files/Shrunk_Pidgin_Smilies/orig/fingers-crossed.png
170
Вся коллекция831
https://icons8.com/iconizer/files/Web_Design_Creatives/orig/Crossed-abc.png
https://icons8.com/iconizer/files/Web_Design_Creatives/thumb/64/Crossed-abc.png
151
Вся коллекция10125
https://icons8.com/iconizer/files/Human_o2/orig/gtk-print-error.png
https://icons8.com/iconizer/files/Human_o2/thumb/64/gtk-print-error.png
1055
Вся коллекция900
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/pedestriancrossing.png
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/pedestriancrossing.png
597
Вся коллекция1307
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/crossingguard.png
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/crossingguard.png
597
Настройки виджета регистрации
Общий список возможных настроек виджета регистрации:
debug?: boolean; // Вывод отладочной информации в консоль браузера
display: string; // Как отображать виджет. "iframe" — в виде формы
// на странице. "popup" — в попапе поверх страницы.
initialRoute?: string; // Экран, с которого начинается отображение
// виджета. Как правило "main" (по умолчанию)
// или "button".
hidePreloading?: boolean; // Не показывать индикатор загрузки.
hidePromocodeInput?: string // Как отображать поле для ввода промокода на
// странице регистрации, подробнее см.
// в разделе "Расширенная кастомизация"
iframe: {
width?: any; // Ширина виджета
height?: any; // Высота виджета
autoHeight?: boolean; // Режим автоподбора высоты
name?: string; // Параметр name тега iframe
src?: string; // Параметр src тега iframe
target?: JQuery;
fill?: boolean;
background?: string; // Параметр background тега iframe
useVkResize?: boolean; // Использовать ли API Вконтакте
// для изменения размера виджета
};
popup: {
margins?: number[];
width?: number;
tint?: boolean; // Затенять ли остальную страницу
// (по умолчанию — true)
padding?: number;
addCss?: Object; // Дополнительные стили в виде пар
// свойство—значение.
triggerSelector?: string; // Селектор внешней ссылки или кнопки,
// по клику на которые открывается попап
// должен искаться jQuery. Подойдет
// что-то типа ".aButton" или "#theLink"
autoShrink?: bool; // Ужимать ли виджет на маленьких экранах
minViewport?: number; // Минимальная ширина, до которой ужимается
// виджет на маленьких экранах
noClose?: boolean; // Показывать ли крестик для закрытия
// попапа (по умолчанию — true)
outerClose?: boolean; // Выносить ли крестик за край виджета
// (false)
closeColor?: string; // Цвет крестика ("black")
closeCss?: Object; // Дополнительные стили крестика.
// (список пар свойство — значение)
closeConfirm?: {
texts?: {
title?: string; // Заголовок диалога о закрытии попапа
description?: string; // Текст диалога о закрытии попапа
close?: string; // Текст кнопки отмены закрытия попапа
proceed?: string;// Текст кнопки подтверждения закрытия
// попапа
}
}
};
addFormData: any; // Годится для передачи рефкодов и т.д.
event?: EventModel; // Модель данных события
utmForward: boolean; // Транслировать ли UTM метки со страницы
forwardCookies?: boolean; // Транслировать ли значения cookies в виджет
buttonSettings: { // Настройки виджета в режиме кнопки
css: Object; // Дополнительные CSS стили
text: string; // Текст на кнопке
height: number; // Высота кнопки в пикселях
};
mainFormButtonSettings: { // Настройки кнопки покупки билета
// в самом виджете
staticText?: string;
texts: {
proceed: string; // "Продолжить"
buy: string; // "Купить"
items: string[]; // ["билет", "билеты"]
register: string; // "Зарегистрироваться"
atleast: string; // "Выберите хотя бы один билет"
};
};
multiankSettings?: {
addFirstAttendee: boolean;
distinguishFirstAttendee: boolean;
initialSelects: boolean;
};
hideFormsWhenNoTickets?: boolean; // Скрывать форму регистрации,
// если билеты пока не выбраны
prefill?: PrefillModels; // Предзаполнение формы
recurringDatesMode: string; // ("auto"|"squish"|"expand")
// Показывать ли заголовки дней отдельно
// или схлопывать всё в обычные строчки дата-время.
// (Имеет смысл для мастер-событий.)
bindEvents?: any; // Повесить обработчики на события.
// См. раздел «Встроить свое поведение в виджет»
overrideTemplates?: any; // Переопределить шаблоны
// См. «Сверстать по своему макету»
noScrollToWidgetOnViewChange?: boolean; // не скроллить страницу до верха
// виджета при смене его состояния
// (напр., переход от анкеты
// к оплате)
loadCSS?: string[]; // Загрузка дополнительных стилей.
// См. «Перекрасить с помощью CSS»
skipBaseCSS?: boolean; // Не загружать базовые стили виджета
disableBootstrap?: boolean; // Не загружать стили библиотеки Bootstrap
locale?: string; // Язык виджета. Доступны значения "ru" или "en".
// Про дополнительные значения — см. раздел
// «Изменить тексты и локализовать».
Настройки скопированы из исходников на TypeScript, но вы можете подглядывать сюда, даже если используете чистый JavaSript. Или CoffeeScript. Или еще что-нибудь.
Новая тема для MIUI 12 и 12.5 позволяет «преобразовать» смартфоны Xiaomi в iPhone 13
Сеть приросла очередной темой для MIUI с «закосом» под айфоновскую iOS. Автор творения — Ritik Sharma. Ссылка на загрузку в самом низу.
Основные моменты:
- переход на второй экран с календарем, сведениями о погоде, картами и программами быстрого доступа – свайпом от левой кромки вправо;
- отключение неактуальных приложений – через клавишу настроек локскрина внизу;
- открытие music-плейера – двойным щелчком по центру часов либо по нижней трети дисплея;
- запуск миниатюрного меню с настройками камеры, будильника, блютуза, вай-фая, интернета и пр. – свайп из правого угла сверху вниз;
- три кнопки по левому и правому краю после перехода на рабочий стол «заточены» на изменение обоев, активацию блюр-эффекта, работы с тенью ящика приложений и т.п.;
- сокрытие настроек – кликом на «крестик»;
- двойной тап по надписи для настройки виджетов.
Иконопак iOS со стандартной сеткой рабочего стола и тремя колонками в папке. В шторке – 5 и 4 ярлыка/ряд (в развернутом и свернутом виде соответственно). Формат отображения сети в строке состояния – LTE. Язык набирателя номера – английский и в темном, и в светлом режиме.
Внешний вид при темном режиме:
В светлом:
Обои здесь показаны не все:
Ссылка на закачку (в настройках смартфона нужно выбрать регион Россия) — http://zhuti.xiaomi.com/detail/94c7ba1c-06f2-4622-84e3-8f4125359676
Читайте свежие новости из мира мобильных технологий в Гугл Новостях, Facebook и Twitter, а также подписивайтесь на YouTube-канал и покупайте смартфоны в группе Telegram
Предыдущая статьяАвтономность iPhone 13 Pro Max оказалась лучше, чем у Redmi K40Следующая статьяXiaomi Civi: камерофон за $350 с дизайном, как у Samsung Galaxy S21 UltraИнтересуюсь всеми новинками, которые появляются в мире гаджетов и расскажу вам самую свежую информацию обо всем, что интересно мне.
css — Unicode-символ для «X» отменить / закрыть?
× & # 215;
или & раз;
(то же самое) U + 00D7 знак умножения
× Тот же символ, но с увеличенной плотностью шрифта
⨯ & # 10799;
U + 2A2F Продукт Гиббса
✖ & # 10006;
U + 2716 жирный знак умножения
Еще есть смайлик ❌, если вы его поддерживаете. Если вы этого не сделаете, вы просто увидели квадрат = & # 10060;
Я также сделал этот простой пример кода на Codepen, когда работал с дизайнером, который попросил меня показать ей, как он будет выглядеть, когда я спросил, могу ли я заменить вашу кнопку закрытия закодированной версией, а не изображением.
-
-
-
-
PURE CSS X или значок закрытия — JSFiddle
Редактор макета
Классический Столбцы Нижние результаты Правильные результаты Вкладки (столбцы) Вкладки (строки)
Консоль
Консоль в редакторе (бета)
Очистить консоль при запуске
Общие
Номера строк
Обернуть линии
Отступ с табуляцией
Подсказка кода (автозаполнение) (бета)
Размер отступа:2 пробела 3 пробела 4 пробела
Ключевая карта:По умолчанию: Sublime TextEMACS
Размер шрифта:По умолчаниюBigBiggerJabba
Поведение
Код автозапуска
Только код автозапуска, который проверяет
Код автосохранения (натыкается на версию)
Автоматически закрывать HTML-теги
Автоматически закрывающие скобки
Проверка действующего кода
Выделите совпадающие теги
Заглушки
Показывать панель шаблонов реже
cross-fade () — CSS: Cascading Style Sheets
Функция cross-fade ()
принимает список изображений с процентом, определяющим, какая часть каждого изображения сохраняется с точки зрения непрозрачности, когда оно смешивается с другим. изображений.Значение процента должно быть закодировано без кавычек, должно содержать символ «%»
, а его значение должно находиться в диапазоне от 0% до 100%.
Функцию можно использовать в CSS везде, где можно использовать обычную ссылку на изображение.
Процент плавного перехода
Думайте о процентном соотношении как о значении непрозрачности для каждого изображения. Это означает, что значение 0% означает, что изображение полностью прозрачно, а значение 100% делает изображение полностью непрозрачным.
переходное затухание (url (white.png) 0%, url (black.png) 100%);
затухание (url (white.png) 25%, url (black.png) 75%);
затухание (url (white.png) 50%, url (black.png) 50%);
затухание (url (white.png) 75%, url (black.png) 25%);
плавное затухание (url (white.png) 100%, url (black.png) 0%);
плавное затухание (url (green.png) 75%, url (red.png) 75%);
Если какие-либо проценты опущены, все указанные проценты суммируются и вычитаются из 100%
. Если результат больше 0%, результат затем делится поровну между всеми изображениями с пропущенными процентами.
В простейшем случае два изображения размываются между собой. Для этого только одно из изображений должно иметь процентное значение, другое будет соответственно блеклым. Например, значение 0%, определенное для первого изображения, дает только второе изображение, а значение 100% дает только первое. Значение 25% отображает первое изображение на 25%, а второе — на 75%. Значение 75% является обратным, показывая первое изображение на 75%, а второе на 25%.
Вышеупомянутое также могло быть записано как:
переходное затухание (url (white.png) 0%, url (black.png));
затухание (url (white.png) 25%, url (black.png));
переход (url (white.png), url (black.png));
затухание (url (white.png) 75%, url (black.png));
затухание (url (white.png) 100%, url (black.png));
плавное затухание (url (green.png) 75%, url (red.png) 75%);
Если проценты не объявлены, оба изображения будут непрозрачными на 50%, а рендеринг с плавным переходом — равномерное слияние обоих изображений. В приведенном выше примере 50% / 50% не обязательно указывать проценты, так как, когда процентное значение опускается, включенные проценты складываются и вычитаются из 100%.Если результат больше 0, то он делится поровну между всеми изображениями с пропущенными процентами.
В последнем примере сумма обоих процентных значений не равна 100%, и поэтому оба изображения включают соответствующие им непрозрачности.
Если проценты не указаны и включены три изображения, каждое изображение будет непрозрачным на 33,33%. Две следующие строки (почти) идентичны:
переходное затухание (url (red.png), url (yellow.png), url (blue.png));
затухание (url (red.png) 33.33%, url (yellow.png) 33,33%, url (blue.png) 33,33%);
переходное затухание (<изображение>, <изображение>, <процент>)
Спецификация функции cross-fade ()
позволяет использовать несколько изображений и для каждого изображения иметь значения прозрачности независимо от других значений. Так было не всегда. Исходный синтаксис, реализованный в некоторых браузерах, допускал только два изображения, при этом сумма прозрачности этих двух изображений составляла ровно 100%.Исходный синтаксис поддерживается в Safari и поддерживается с префиксом -webkit-
в Chrome, Opera и других браузерах на основе мигания.
переходное затухание (url (white.png), url (black.png), 0%);
затухание (url (white.png), url (black.png), 25%);
затухание (url (white.png), url (black.png), 50%);
переход (url (white.png), url (black.png), 75%);
затухание (url (white.png), url (black.png), 100%);
В реализованном синтаксисе сначала объявляются два изображения, разделенных запятыми, за ними следует запятая и требуемое процентное значение.Если пропустить запятую или процент, значение станет недействительным. Процент — это непрозрачность первого объявленного изображения. Включенный процент вычитается из 100% с разницей в непрозрачности второго изображения.
Пример зеленого / красного (с общим процентом 150%) и пример желтого / красного / синего (с тремя изображениями) из раздела синтаксиса спецификации невозможны в этой реализации.
кроссфейд (, ?) где
= <процент>? && <изображение>
= <изображение> | <цвет> , где
<изображение> =
| <изображение ()> | <набор изображений ()> | | <краска ()> | <плавное затухание ()> | <градиент>
<цвет> =| | | | <шестнадцатеричный цвет> | <имя-цвета> | текущий цвет | где
= image ( ? [ ?, ?]!)
= набор изображений ( #)
= element ( )
= paint ( , ?)
= cross-fade ( , ?)
= | <повторяющийся линейный градиент ()> | <радиальный градиент ()> | <повторяющийся радиальный градиент ()> |
= rgb (<процент> {3} [/ ]?) | rgb (<число> {3} [/ <альфа-значение>]?) | rgb (<процент> # {3}, <альфа-значение>?) | rgb (<число> # {3}, <альфа-значение>?)
= rgba (<процент> {3} [/ <альфа-значение>]?) | rgba (<число> {3} [/ <альфа-значение>]?) | rgba (<процент> # {3}, <альфа-значение>?) | rgba (<число> # {3}, ?)
= hsl ( [/ ]?) | hsl (<оттенок>, <процент>, <процент>, <альфа-значение>?)
= hsla (<оттенок> <процент> <процент> [/ <альфа-значение>]?) | hsla (<оттенок>, <процент>, <процент>, <альфа-значение>?) , где
<теги-изображения> = ltr | rtl
= |
= [ | <строка>] [<разрешение> || type ( )]
=
= linear-gradient ([ | to ]?, <цвет -stop-list>)
<повторяющийся-линейный-градиент ()> = повторяющийся-линейный-градиент ([<угол> | до <бокового-или-угла>]?, <список-остановок-цветов>)
<радиальный -gradient ()> = radial-gradient ([|| ]? [at ]?, )
<повторяющийся-радиальный-градиент ()> = Repeating-Radial-gradient ([|| ]? [at ]?, )
= конический градиент ([от <угол>]? [в <положение>] ?, <список-углов-остановок>)
<альфа-значение> = <число> | <процент>
<оттенок> = <число> |, где
= [left | справа] || [наверх | внизу]
<список-остановок-цветов> = [<остановка-цветов> [, <подсказка-цветов>]? ] #,
= круг | эллипс
<размер> = ближайшая сторона | дальняя сторона | ближайший угол | дальний угол | <длина> | <длина-процент> {2}
<позиция> = [[слева | центр | справа] || [наверх | центр | внизу] | [слева | центр | право | <длина- процент>] [наверх | центр | внизу | <длина-процент>]? | [[слева | справа] <длина-процент>] && [[вверх | снизу] <процент-длины>]]
<список-углов-остановок> = [<углов-цвет-остановка> [, <угловой-цвет-подсказка>]? ] #,где
= ?
<линейный-цвет-подсказка> = <длина-процент>
<длина-процент> = <длина> | <процент>
<угловой-цвет-стоп> = <цвет> && <цвет-стоп-угол>?
= , где
= {1,2}
= {1,2}
<угол-процент> = <угол> |
10 кнопок закрытия CSS
Коллекция отобранных вручную бесплатных кнопок закрытия HTML и CSS примеров кода.
- CSS-кнопки
- CSS-эффекты при наведении курсора на кнопку
- CSS 3D-кнопки
- Кнопки отправки CSS
- Кнопки с градиентом CSS
- Плоские кнопки CSS
- Кнопки загрузки CSS
- CSS Кнопки воспроизведения / паузы
- CSS Эффекты нажатия кнопки
Автор
- merrybottle
О коде
CSS Кнопка закрытия
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
О коде
Закрыть Анимация
Маленькая анимация закрытия, это не гамбургер для закрытия.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
Автор
- Мариус Никула
О коде
Интерактивная кнопка закрытия
Простая, но интерактивная кнопка закрытия
.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
О коде
Анимированный значок закрытия
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
Автор
- Джером Рендерс
Сделано с
- HTML (мопс) / CSS (Sass) / JavaScript
О коде
Анимация кнопки открытия / закрытия
Совместимые браузеры: Chrome, Firefox, Opera, Safari
Зависимости: font-awesome.css
Автор
- Джонатан Блэр
Сделано с
- HTML / CSS (SCSS) / JavaScript
О коде
Открыть / Закрыть
Реализация «анимации значков открытия и закрытия» Данна Петти https://dribbble.com/shots/1621359-Open-Close-Icon-Animation.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
Автор
- Стефано
О коде
Вернуться закрыть
На основе «Back To Close» Сандипа Вирка https: // dribbble.com / shots / 1980182-Back-to-Close
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
Автор
- Параскевас Нтинакис
О коде
Кнопка закрытия
Простая кнопка закрытия в HTML и CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
О коде
Кнопки закрытия на чистом CSS
Концепт Рубена Рейеса.Не стесняйтесь поэкспериментировать с ним, оживить его, интегрировать с иконками бургеров и т. Д.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
О коде
Кнопка закрытия
Для сайта требуется кнопка закрытия , поэтому я подумал, что протестирую что-нибудь, чтобы увидеть требуемый код. Это простая анимация, но выглядит чертовски хорошо.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Зависимости: —
Советы по кросс-браузерной разработке: часть 1 — CSS
Знаете ли вы, что люди до сих пор используют Internet Explorer 8 (IE8)? В рамках недавнего крупного редизайна Tinfoil, потребовавшего полного переписывания интерфейса, нам пришлось принять твердое решение о том, какие браузеры и какие версии этих браузеров поддерживать.Двумя основными целями при переписывании были заменить как можно больше изображений с помощью CSS и HTML (кнопки, стрелки и т. Д.) И перенести большую часть взаимодействий и переходов с полностраничных обновлений на динамические страницы с AJAX. Согласно нашей аналитике, 2% нашего трафика поступает из IE8 и выше. Остальной трафик поступает от браузеров, которые автоматически обновляются до последней версии и достаточно современны, чтобы поддерживать все функции, которые нам нужны.
В идеальном мире мы бы кодировали в соответствии со стандартами, установленными Консорциумом всемирной паутины (W3C), и считали бы это днем, будучи уверенными, что каждый браузер будет отображать наше приложение одинаково.На практике, однако, стандарты могут занять годы, прежде чем они станут стандартными, а в старых браузерах всегда будут отсутствовать или не работать функции. Тем не менее, мы, как разработчики интерфейса, должны позаботиться о том, чтобы наше приложение работало для всех наших пользователей. Учитывая это, а также тот факт, что люди все еще используют IE8 и выше для использования нашего приложения, мы приняли исполнительное решение поддерживать все браузеры обратно до Internet Explorer 8.
Теперь, когда наш редизайн в дикой природе, я хотел бы воспользоваться этой возможностью, чтобы поделиться наиболее важными уроками, которые мы извлекли из дикого мира кроссбраузерной интерфейсной разработки, и того, что значит писать код, который работает. браузер, выпущенный в 2009 году и последний раз обновлявшийся более трех лет назад.
Тестировать, тестировать и снова тестировать в IE8
Изначально я думал, что могу пойти по ленивому пути. Я перепробовал множество инструментов эмуляции браузера и фреймворков для тестирования совместимости IE8, пытаясь выполнить свою задачу по кроссбраузерному тестированию без установки Windows XP (или того хуже, Vista). Все это имеет свои преимущества (удобство, стоимость и т. Д.), Но ничто не сравнится с настоящим. Даже режим совместимости IE9 отображает страницы несколько иначе, чем чистый IE8. Получите виртуальную машину или настоящий ПК, установите Windows XP и убедитесь, что вы не обновляете IE до более ранней версии 8.Всякий раз, когда вы тестируете какую-либо новую функциональность интерфейса, запустите свой компьютер с Windows XP, протестируйте его в IE8 и включите этот процесс в свой обычный рабочий процесс. Первоначальная стоимость создания такой среды может быть высокой или нет, но в целом это реальная экономия времени.
Начните свой CSS с помощью таблицы стилей сброса браузера
Все браузеры имеют разумные настройки стиля и макета по умолчанию. Однако не все механизмы рендеринга имеют одинаковые значения по умолчанию. Один браузер может постановить, что тег body должен иметь поле 8 пикселей (текущий стандарт де-факто), другой может настаивать на 10 пикселей.Интересный факт: IE7 по умолчанию использует верхнее / нижнее поле в 15 пикселей и левое / правое поле в 10 пикселей по умолчанию.
Хотя вы, как веб-разработчик, не можете контролировать, какой браузер выберет пользователь, ваша задача — обеспечить единообразие макета вашего сайта для всех из них. Вот здесь и пригодится таблица стилей сброса браузера. Идея, лежащая в основе таблицы стилей сброса браузера, заключается в том, чтобы дать вам возможность контролировать стиль по умолчанию для всех элементов. Вместо того, чтобы полагаться на поле тела 8 пикселей в большинстве браузеров, вы можете быть уверены, что все теги тела будут иметь поле 0 пикселей или что вы решите.Действительно минимальная отправная точка для сценария сброса может выглядеть так.
Запуск этого фрагмента CSS перед всеми другими таблицами стилей позволяет вам переопределить любые свойства элемента, которые вы хотите, зная, что все, что вы не переопределяете, по крайней мере будет выглядеть согласованно во всех браузерах.
Использовать префиксы поставщика и резервные варианты для свойств CSS3
Хотите использовать гладкий градиент CSS3? Как насчет закругленных прямоугольников? Поскольку стандарты W3C постоянно развиваются, важно, чтобы в ваших стилях были разумные резервы на случай, если браузер не поддерживает свойство CSS.Старые браузеры будут понимать эти резервные варианты и пропускать код, который они не могут понять, в то время как новые браузеры будут понимать как резервные варианты, так и новые свойства. Чтобы это работало, резервные копии должны появляться непосредственно перед новыми свойствами в вашем CSS, чтобы новые браузеры предпочитали новые свойства.
Не менее важно использовать различные префиксы поставщиков для браузеров, у которых есть собственная, незавершенная версия стандарта. Правильный способ использования градиента CSS3 — сначала перечислить все префиксы поставщика и, наконец, закончить свойством стандартного градиента W3C.Старые браузеры, которые поддерживают только свои собственные префиксы поставщиков, будут использовать их, а те браузеры, которые реализовали стандарт, предпочтут это, поскольку он указан последним. Ниже приводится таблица префиксов поставщиков для каждого из популярных браузеров.
Следующий код может выглядеть некрасиво, но он совместим как с предыдущими, так и с предыдущими версиями. Именно так мы определяем наши синие градиенты на нашем веб-сайте с помощью чистого CSS. Мы используем библиотеку под названием Compass, фреймворк Sass, который управляет для нас всем, что связано с префиксами поставщиков.Все, что нам нужно сделать, это поддерживать библиотеку в актуальном состоянии, а все остальное позаботится само. Я очень рекомендую это. С Compass приведенный выше пример эквивалентен следующему.
Конкретно целевой IE8
Итак, вы попробовали описанные выше методы, но у вас все еще возникают проблемы в IE8? У вас может не быть другого выбора, кроме как использовать условные комментарии IE. Эти уловки были добровольно добавлены Microsoft в свои браузеры, чтобы помочь в устранении несоответствий IE. К счастью, они представлены в виде комментариев HTML, поэтому другие браузеры просто проигнорируют их.
Приведенный выше простой оператор «if» может быть заменен чем-то более сложным, если вы хотите настроить таргетинг на все IE старше определенной версии.
Я оставил эту технику напоследок, потому что она действительно должна быть вашим последним средством. Большинство проблем с несогласованностью CSS можно решить, используя подходящие резервные варианты и разумно упорядочивая стили. Чем меньше кодовых путей вы должны поддерживать, тем легче поддерживать стабильность вашего кода.
Часть 2 будет посвящена JavaScript, так что следите за обновлениями.Чтобы ознакомиться с нашими разработками, запустите IE8, зарегистрируйтесь и поиграйте.
Принципы кросс-браузерного кодирования CSS — Smashing Magazine
Краткое резюме ↬ Можно утверждать, что в веб-дизайне нет цели более удовлетворительной, чем сделать так, чтобы красивый и интуитивно понятный дизайн выглядел одинаково одинаково во всех используемых браузерах.К сожалению, обычно считают, что достичь этой цели практически невозможно. Некоторые даже заявили, что безупречная кроссбраузерная совместимость не обязательна. [Ссылки проверены и исправлены 6 марта 2017 г.]Хотя я согласен с тем, что создание единообразного опыта для каждого пользователя в каждом браузере (если оставить в стороне мобильные платформы) никогда не произойдет для каждого проекта, я считаю, что почти точный кроссбраузерный опыт достижим во многих случаях .
Наша цель как разработчиков — не просто заставить его работать в каждом браузере; наша цель должна состоять в том, чтобы заставить его работать в каждом браузере с минимальным объемом кода, чтобы обеспечить бесперебойное обслуживание веб-сайта в будущем.
В этой статье я опишу то, что, по моему мнению, является некоторыми из наиболее важных принципов CSS и советов , которые могут помочь как начинающим, так и опытным разработчикам интерфейсов достичь как можно более единообразного кроссбраузерного взаимодействия с как можно меньше кода CSS.
Больше после прыжка! Продолжить чтение ниже ↓Понимание модели бокса CSS
Это одна из первых вещей, с которой вам следует полностью ознакомиться, если вы хотите получить кроссбраузерных макетов с очень небольшим количеством приемов и обходных путей. . К счастью, блочная модель не является трудной для понимания и в целом работает одинаково во всех браузерах, за исключением обстоятельств, связанных с определенными версиями Internet Explorer (подробнее об этом позже).
Модель блока CSS отвечает за вычисление:
- Сколько места занимает элемент уровня блока
- Независимо от того, перекрываются ли границы и / или поля или нет
- Размеры ящика
- В некоторой степени, положение блока относительно другого содержимого на странице.
Блочная модель CSS имеет следующие основные правила:
- Элементы блочного уровня по существу прямоугольные (как и все элементы на самом деле)
- Размеры блочного элемента рассчитываются по ширине, высоте, заполнению, границам и полям
- Если высота не указана, высота элемента блока будет равна его содержанию, плюс заполнение (если нет числа с плавающей запятой, о чем см. Ниже)
- Если ширина не указана, неплавающий прямоугольник будет расширяться, чтобы соответствовать ширине своего родительского элемента без заполнения (подробнее об этом позже)
Некоторые важные вещи, о которых следует помнить при работе с элементами уровня блока:
- Если для блока задана ширина «100%», у него не должно быть полей, отступов или границ, в противном случае он будет выходить за пределы своего родителя.
- Смежные по вертикали поля могут вызвать некоторые сложные проблемы со сворачиванием, которые могут вызвать проблемы с макетом
- Элементы, расположенные относительно или абсолютно, будут вести себя по-разному, подробности чего обширны и выходят за рамки данной статьи
- Приведенные выше правила и принципы сформулированы в предположении, что страница, содержащая элементы уровня блока, отображается в стандартном режиме (этот пункт был добавлен позже после просмотра опубликованных комментариев).
Модель окна, отображаемая с помощью Firebug в Firefox
Понимание разницы между блочным и встроенным
Для опытных разработчиков это еще одна легкая задача.Однако это еще одна важная область, которая при полном понимании приведет к появлению лампочки, можно избежать многих головных болей, , и вы будете чувствовать себя намного увереннее при создании кросс-браузерных макетов.
Изображение ниже иллюстрирует разницу между блочными и встроенными элементами:
Вот несколько основных правил, которые отличают блочные элементы от встроенных:
- Элементы блока по умолчанию естественным образом расширяются по горизонтали, чтобы заполнить их родительский контейнер, поэтому нет необходимости устанавливать ширину «100%»
- Блочные элементы по умолчанию начинаются с самого левого края родительского блока, под любыми предыдущими блочными элементами (если не используются поплавки или позиционированные элементы; см. Ниже)
- Встроенные элементы игнорируют настройки ширины и высоты
- Встроенные элементы перемещаются вместе с текстом и имеют типографские свойства, такие как
пробел
,размер шрифта
имежбуквенный интервал
- Встроенные элементы можно выровнять с помощью свойства
vertical-align
, но блочные элементы не могут - У встроенных элементов будет некоторое естественное пространство под ними, чтобы разместить текстовые элементы, которые опускаются ниже линии (например, буква «g»).
- Встроенный элемент станет блочным, если он перемещается
Общие сведения о перемещении и очистке
Для макетов с несколькими столбцами, которые относительно легко поддерживать, лучший метод — использовать числа с плавающей запятой.Таким образом, наличие твердого понимания того, как работают числа с плавающей запятой, является еще одним важным фактором в достижении кроссбраузерности.
Плавающий элемент может перемещаться влево или вправо, в результате чего плавающий элемент будет перемещаться в указанном направлении, пока не достигнет края своего родительского контейнера или края другого плавающего элемента. Все не плавающее, встроенное содержимое, которое появляется под плавающим элементом, будет перемещаться вдоль стороны элемента, противоположной направлению плавающего.
Вот некоторые важные вещи, о которых следует помнить при перемещении и очистке элементов:
- Плавающие элементы удаляются из потока других неплавающих элементов уровня блока; Другими словами, если вы перемещаете блок влево, конечный абзац (уровень блока), который не перемещается, появится за плавающим элементом в стеке, а любой текст внутри абзаца (встроенный уровень) будет обтекать плавающий элемент
- Чтобы содержимое обтекало плавающий элемент, он должен быть либо встроенным, либо перемещаться в том же направлении
- Плавающий элемент без заявленной ширины будет сжиматься до ширины его содержимого, поэтому обычно лучше установить ширину для плавающего элемента
- Если элемент блока содержит плавающие дочерние элементы, он «схлопнется», что потребует исправления.
- Элемент, который «очищен», не будет обтекать плавающие элементы над ними в документе
- Элемент, который очищен и перемещен, очистит себя только от элементов, которые идут до, а не после
Используйте Internet Explorer в первую очередь (или не используйте)
Обратите внимание, что команда Smashing Magazine настоятельно не рекомендует сначала разрабатывать веб-сайты в Internet Explorer.По нашему мнению, сайты должны разрабатываться в «современных» браузерах, сначала со стандартами, а затем настраиваться для версий Internet Explorer с ошибками. Приведенный ниже совет не отражает мнение редакционной группы Smashing. Согласны или не согласны? Прокомментируйте эту статью!
Большая часть того, что я обсуждал до сих пор, касается принципов кодирования и компоновки CSS. Этот принцип больше связан с привычками и предпочтениями большинства дизайнеров. Хотя нам может не понравиться использовать IE6 и IE7 в нашей повседневной работе в Интернете, когда приходит время создавать клиентский проект с нуля, одна из лучших вещей, которые вы можете сделать, — это протестировать свой макет в этих браузерах, находящихся на ранней стадии разработки.Возможно, вы даже захотите открыть отдельную версию IE6 или IE7 и просто начать разработку в этом браузере.
Конечно, у вас не будет доступа к таким инструментам, как Firebug, но обычно для CSS (особенно на ранних этапах разработки) Firebug вам не понадобится. Намного легче сначала заставить макет работать в IE6 и IE7, а затем исправить его для других браузеров, чем делать это наоборот. Если дождаться конца процесса разработки, чтобы открыть IE6 и / или IE7, это может вызвать некоторые, если не все, из следующих проблем:
- Потребуется несколько взломов, требующих отдельных таблиц стилей для разных версий IE, что сделает код раздутым и менее удобным в обслуживании, а также замедлит работу веб-сайта
- Макет в некоторых местах, возможно, придется переделать, что увеличит время разработки
- Время тестирования будет увеличиваться, иногда экспоненциально, оставляя меньше времени для более важных задач
- Макет в других браузерах не будет таким же, как в IE6 и IE7
Я не ожидал, что разработчики будут использовать Internet Explorer так агрессивно для личных проектов, веб-приложений или другой работы, не связанной с клиентом.Но для корпоративных клиентов , пользовательская база которых в основном основана на Internet Explorer, этот совет может предотвратить множество головных болей при правильной работе и определенно сделает кроссбраузерность более вероятной .
Иногда рассмотрение проблем IE как «досадных ошибок» может создать ненужный негатив и затруднить разработку и дальнейшее обслуживание. Работа с IE — это факт жизни дизайнеров и разработчиков, поэтому просто рассматривайте его проблемы, как любую проблему с CSS, — и создавайте оттуда.
Основные проблемы Internet Explorer
Если вы собираетесь начать с IE в своей разработке или, по крайней мере, проверить свой макет в IE на ранней стадии, тогда вы должны понимать, с чем у Internet Explorer (обычно версий 6 и 7) есть проблемы или каковы его ограничения. находятся.
Подробное обсуждение всех возможных проблем, которые могут возникнуть в Internet Explorer, и список всех его проблем совместимости с CSS, безусловно, выходит за рамки этой статьи.Но есть некоторые довольно существенные несоответствия и проблемы, возникающие в связи с IE, о которых должны знать все разработчики CSS. Вот краткое изложение наиболее распространенных проблем, с которыми вам придется столкнуться:
- IE6 станет проблематичным при чрезмерном использовании поплавков, что приведет (как ни парадоксально) к исчезновению содержимого или дублированию текста
- IE6 удвоит маржу для плавающих элементов на стороне, которая имеет то же направление, что и плавающий; настройка дисплея
: встроенный
часто исправляет это - В IE6 и IE7, если элемент не имеет макета, это может вызвать ряд проблем, в том числе не отображается фон, неправильно сжимаются поля и т. Д.
- IE6 не поддерживает свойства CSS на основе минимума и максимума, такие как
min-height
илиmax-width
- IE6 не поддерживает фиксированное позиционирование фоновых изображений
- IE6 и IE7 не поддерживают многие альтернативные значения для свойства
display
(например.грамм.встроенная таблица
,ячейка таблицы
,строка таблицы
и т. Д.) - Вы не можете использовать псевдокласс
: hover
ни для одного элемента в IE6, кроме привязки ( - Некоторые версии IE мало поддерживают определенные селекторы CSS (например, селекторы атрибутов, дочерние селекторы и т. Д.).
- IE версий 6-8 слабо поддерживает CSS3, но есть обходные пути
Есть еще много ошибок, проблем и несоответствий, которые могут возникнуть в Internet Explorer, но они, вероятно, являются наиболее распространенными и наиболее важными, о которых следует помнить при попытке создать кроссбраузерную среду.Я призываю всех разработчиков провести дальнейшее исследование многих проблем , о которых я упомянул выше, чтобы иметь более точное представление о том, какие проблемы могут вызывать эти проблемы и как их решать.
Некоторые вещи никогда не будут выглядеть одинаково
Как уже упоминалось, создание одного и того же визуального и функционального интерфейса в любом браузере возможно, но маловероятно. Вы можете получить макет и расположение элементов, близких к идеальному по пикселям, но есть , некоторые вещи находятся вне контроля разработчика .
Формы часто выглядят иначе
Обсуждение всех различий и причуд, возникающих с элементами формы в разных браузерах и платформах, может быть отдельной статьей, поэтому я не буду вдаваться в подробности здесь. Однако простой визуальной демонстрации должно быть достаточно, чтобы донести суть дела.
Взгляните на изображение ниже, которое отображает элементов
на главной странице Facebook, как показано в 5 различных версиях браузера (скриншоты взяты из Adobe Browserlab):
элемента отображаются по-разному в разных браузерах
Некоторыми элементами формы можно управлять визуально.Например, если клиент требует, чтобы кнопка отправки выглядела одинаково во всех браузерах, это не проблема, вы можете просто использовать изображение вместо стандартного
, которое аналогично < select>
элементов, в разных браузерах будут выглядеть по-разному.
Но другие элементы формы, такие как переключатели, поля textarea и вышеупомянутые элементы
, невозможно стилизовать в кроссбраузерном стиле, не усложняя ситуацию с помощью подключаемых модулей JavaScript (которые некоторые разработчики считают вредными для пользователя).
Типографика всегда будет выглядеть иначе
Еще одна область, в которой мы не можем ожидать идеального по пикселям дизайна, — это шрифты, особенно шрифты в основном тексте. Появились различные методы, помогающие с настраиваемыми шрифтами в заголовках, и недавно запущенный Google Font API будет способствовать этому. Но основной текст, вероятно, всегда будет выглядеть по-разному в разных браузерах.
С типографикой мы не только сталкиваемся с проблемой доступности шрифтов на разных машинах, но в некоторых случаях, даже когда шрифт доступен на двух разных машинах, шрифт будет выглядеть по-разному.Например, Windows ClearType доступен в IE7, но не в IE6, в результате чего один и тот же шрифт выглядит по-разному в двух разных версиях IE.
На приведенном ниже рисунке показаны скриншоты из A List Apart в IE6 и IE7. Зернистый текст в IE6 более заметен в заголовке, чем в основной копии, но весь текст отображает заметную разницу между двумя браузерами (если, конечно, текст не является изображением):
Сравнение типографики A List Apart в IE6 и IE7
Использование сброса CSS
С тех пор, как я начал использовать сброс CSS для своих проектов, моя способность создавать кроссбраузерность значительно увеличилась. .Это правда, что большинство сбросов добавят ненужный код в ваш CSS, но вы всегда можете пройти и удалить любые селекторы, которые, как вы знаете, не будут иметь значения (например, если вы не планируете использовать тег
, затем вы можете удалить ссылку на него и повторить это для любых других неиспользуемых тегов).
Многие различия, связанные с полями и заполнением, которые возникают в разных браузерах, становятся более нормализованными (даже в сложных HTML-формах), когда реализуется сброс CSS.Поскольку сброс приводит к тому, что все элементы начинают с нуля, вы получаете больший контроль над интервалом и выравниванием элементов, потому что все браузеры будут начинать с одних и тех же основных настроек.
Сброс CSS, как показано на панели инструментов разработчика Firefox
Помимо преимуществ кроссбраузерности, сброс также будет полезен, потому что вы не будете использовать столько хаков, ваш код будет менее раздутым, и у вас будет гораздо больше шансов создать поддерживаемый код.Я рекомендую сброс CSS Эрика Мейера, который я использую уже довольно давно.
Используйте справочник CSS SitePoint
Если у вас возникают проблемы с правильным отображением определенного свойства CSS во всех браузерах, поищите это свойство в справочнике CSS SitePoint, чтобы узнать, есть ли у него какие-либо ограничения совместимости. Справочник SitePoint (который также доступен в печатном виде, хотя и не так актуален) включает полезную диаграмму совместимости, в которой отображается поддержка браузером всех стандартных свойств CSS.
Таблицы совместимости SitePoint для свойств CSS
Каждая диаграмма совместимости сопровождается довольно подробным описанием ошибок, возникающих в различных браузерах, и пользователям разрешается добавлять комментарии, чтобы задокументировать новые возникающие ошибки и предоставить дальнейшие объяснения по сложным вопросам CSS.
Используя это в качестве руководства, вы можете сузить круг возможностей и обычно можете определить, является ли проблема CSS следствием ошибки браузера или из-за вашего собственного неправильного применения или неправильного понимания рассматриваемого свойства CSS.
Заключение
Несмотря на то, что существует гораздо больше того, что можно было бы обсудить по теме кроссбраузерности CSS, принципы и рекомендации, которые я здесь представил, должны обеспечить основу, чтобы помочь разработчикам CSS в создании максимально приближенного к единообразному кроссбраузерному взаимодействию. в настоящее время возможно. Кроссбраузерный CSS — достижимая цель в разумных пределах.
Но в качестве эпилога к этой статье я также хотел бы согласиться с теми, кто продвигает использование CSS3 с прогрессивным улучшением, и призвать разработчиков доводить до предела новые методы CSS, даже делая это там, где это возможно, в клиентских проектах.
Дополнительная литература
Принципы, которые я здесь представил, должны помочь разработчикам создать красивый и интуитивно понятный интерфейс IE, обеспечивая при этом extra -beautiful и super -intuitive experience в более современных браузерах. Это кроссбраузерная цель, к которой определенно стоит стремиться.
марок »| Символ и коды
Cyber Definitions
Академический взгляд на Cyber Speak
Коды для символа «крестик»
Щелкните зеленую рамку, чтобы скопировать ее содержимое.Официальное наименование:
крестик
Символ:
❌
Альтернативный код:
Alt 10060
HTML-код:
& # 10060;
HTML-объект:
нет
Код CSS:
\ 274C
Шестнадцатеричный код:
& # x274C;
Юникод:
U + 0274C
Проверьте свои знания знаков препинания
Вот небольшая викторина, чтобы проверить свои знания о наиболее часто используемых знаках препинания.Готовиться…Просмотр символа в разных размерах и шрифтах
ABC ❌ 123
ABC ❌ 123
Атрибут | Настройка | Изменить |
---|---|---|
Размер шрифта | ||
Семейство шрифтов | Arial | ArialArial BlackVerdanaTahomaTrebuchet MSImpactTimes New RomanDidotGeorgiaАмериканская пишущая машинкаCourierLucida ConsoleMonacoBradley Handbrush Script MTLuminariComic Sans MS |
Color / Color |
Как вставить символ ❌
(метод 1) Скопируйте и вставьте символ.
Щелкните символ ❌ в таблице выше. Нажмите кнопку «Копировать», а затем вставьте символ в свой документ.(Метод 2) Используйте «Альтернативный код».
Альтернативный код для ❌ — Alt 10060. Если у вас есть клавиатура с цифровой панелью, вы можете использовать этот метод. Просто удерживайте нажатой клавишу Alt и введите 10060.Когда вы поднимаете клавишу Alt, появляется ❌. («Num Lock» должен быть включен.)(метод 3) Используйте десятичный код HTML (для веб-страниц).
HTML-текст | Вывод |
---|---|
& # 10060; | ❌ |
(метод 4) Используйте код объекта HTML (для веб-страниц).
(метод 5) Используйте код CSS (для веб-страниц).
Текст CSS и HTML | Вывод |
---|---|
<стиль> промежуток: после { content: «\ 274C»;} Символ: | Символ: ❌ |
(метод 6) Используйте шестнадцатеричный код HTML (для веб-страниц).
HTML-текст | Вывод |
---|---|
& # x274C; | ❌ |
(метод 7) Используйте Unicode (для различных, например, Microsoft Office, JavaScript, Perl).
Юникод для ❌ — U + 0274C . Важной частью является шестнадцатеричное число после U + , которое используется в различных форматах. Например, в приложениях Microsoft Office (например, Word, PowerPoint) выполните следующие действия:Тип | Выход |
---|---|
0274C [Удерживайте Alt] [Нажмите x] | ❌ (Обратите внимание, что вы можете опустить любые ведущие нули.) |
Текст JavaScript | Вывод |
---|---|
let str = «\ u274C» document.write («Мой символ:» + str) | Мой символ: ❌ |
(Метод 8) Использовать изображение ( для разных).
HTML-текст | Вывод |
---|---|
❌ |
- Вы не согласны с чем-то на этой странице?
- Вы заметили опечатку?
- Знаете ли вы жаргонный термин, который мы пропустили?