Я создаю адаптивный веб-сайт, используя полосу для платежей, включая Stripe card-element
, который используется для приема платежей по кредитным картам.
Естественно, с изменением размера области просмотра изменяется размер шрифта абзаца. То же самое должно быть верно для полосы card-element
, которую я создаю с помощью var card = elements.create('card')
. Элемент карты Stripe - это iframe, потому что данные платежа направляются прямо на серверы Stripe, а не на мой, а это означает, что относительный размер шрифта с использованием em
не работает и не выполняет медиазапросы. Поскольку, конечно, этот iframe совершенно не заботится о моем CSS, все инструкции по форматированию в настоящее время передаются stripe.elements.create
, когда я создаю экземпляр элемента card.
Как я могу сделать свойства стиля (в этомcase размер шрифта) адаптивного элемента Stripe?
Единственный способ, который я могу придумать, - это проверить размер окна просмотра в JS и создать экземпляр этого элемента при изменении размера окна просмотра;но это кажется уродливым и излишним.
var card = stripe.elements.create('card', {
hidePostalCode: true,
style: {
base: {
fontSize: "1em"
}
}
});
card.mount('#card-element');
@media only screen and (min-width: 992px) {
p {
font-size: 9pt;
}
#card-element {
font-size: 9pt; // Does not work.
}
}
@media only screen and (min-width: 1200px) {
p {
font-size: 12pt;
}
#card-element {
font-size: 12pt; // Does not work.
}
}
<html>
<head>
<script src="https://js.stripe.com/v3"></script>
</head>
<body>
<p>Some text preceding the card element</p>
<div id="card-element"></div>
</body>
</html>