Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MaskedInput] Не использовать кастомный шрифт для символа маски #2181

Closed
zhzz opened this issue Oct 26, 2020 · 0 comments · Fixed by #2187
Assignees

Comments

@zhzz
Copy link
Member

zhzz commented Oct 26, 2020

Сейчас в инпуте с маской используется отдельный шрифт с одним символом "_".

import maskCharFontEot from './mask-char-font/font.eot';
import maskCharFontWoff from './mask-char-font/font.woff';
import maskCharFontWoff2 from './mask-char-font/font.woff2';
injectGlobal`
@font-face {
font-family: kontur-mask-char;
src: url('${maskCharFontEot}'); /* For IE11 in IE8 mode. */
src: url('${maskCharFontEot}?#iefix') format('embedded-opentype'),
url('${maskCharFontWoff2}') format('woff2'), url('${maskCharFontWoff}') format('woff');
}
`;
const styles = {
container() {
return css`
display: inline-flex;
position: relative;
/* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
font-family: kontur-mask-char, Segoe UI, Helevetica Neue; /* IE use Times New Roman as default font */
font-size: inherit;
flex: 100% 1 1;
`;

Он нужен для того, чтобы дефолтный символ маски был равен по ширине символам цифр, и, таким образом, при вводе чисел (самый популярный кейс) маска не смещалась в сторону.

Это работает, но требует настройки дополнительных лоадеров вебпака и заставляет конечных пользователей загружать дополнительную статику. Также мешает использовать серверный рендеринг в Next.js.

Можно попробовать заменить в маске этот символ "_" с кастомным шрифтом на какой-нибудь эквивалентный <span /> с прозрачной цифрой внутри (для ширины) и тенью (или бордером) для эмитации символа подчеркивания.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

2 participants