Изменить новую ширину Google Recaptcha (v2)
Мы только начали внедрять новую утилиту google recaptcha, как указано https://www.google.com/recaptcha/intro/index.html
Однако новый метод, кажется, содержится внутри iFrame, а не встроен в страницу, тем самым затрудняя применение CSS.
Однако у нас есть наша форма шириной 400 пикселей, поэтому хотелось бы, чтобы recaptcha была одинаковой шириной.
В настоящее время это выглядит, однако мы бы хотели, чтобы он был таким же, как и остальные.
Кто-нибудь знает, как это сделать?
Спасибо
![recaptcha layout example]()
Ответы
Ответ 1
Вот работа, но не всегда отличная, в зависимости от того, насколько вы ее масштабируете. Объяснение можно найти здесь: https://www.geekgoddess.com/how-to-resize-the-google-nocaptcha-recaptcha/
.g-recaptcha {
transform:scale(0.77);
transform-origin:0 0;
}
UPDATE:
Google добавила поддержку меньшего размера с помощью параметра. Взгляните на документы - https://developers.google.com/recaptcha/docs/display#render_param
Ответ 2
Для большей совместимости:
-webkit-transform: scale(0.77);
-moz-transform: scale(0.77);
-ms-transform: scale(0.77);
-o-transform: scale(0.77);
transform: scale(0.77);
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-ms-transform-origin: 0 0;
-o-transform-origin: 0 0;
transform-origin: 0 0;
Ответ 3
Нет, в настоящее время вы не можете. Это было возможно только со старой recaptcha, но я уверен, что вы сможете это сделать в будущем.
У меня нет решения, кроме предложения. У меня была та же проблема, поэтому я сосредоточил recaptcha div
(margin: 0 auto;display: table
), я думаю, что он выглядит намного лучше, чем выровненный слева div.
Ответ 4
Немного поздно, но у меня есть простой способ:
Просто добавьте этот код в свой класс "g-recaptcha":
width: desired_width;
border-radius: 4px;
border-right: 1px solid #d8d8d8;
overflow: hidden;
Ответ 5
Для новой версии noCaptcha Recaptcha для меня работает следующее:
<div class="g-recaptcha"
data-sitekey="6LcVkQsTAAAAALqSUcqN1zvzOE8sZkOq2GMBE-RK"
style="transform:scale(0.7);transform-origin:0;-webkit-transform:scale(0.7);
transform:scale(0.7);-webkit-transform-origin:0 0;transform-origin:0 0;"></div>
Ссылка
Ответ 6
.g-recaptcha{
-moz-transform:scale(1.1);
-ms-transform:scale(1.1);
-o-transform:scale(1.1);
-moz-transform-origin:0;
-ms-transform-origin:0;
-o-transform-origin:0;
-webkit-transform:scale(1.1);
transform:scale(1.1);
-webkit-transform-origin:0 0;
transform-origin:0;
filter: progid:DXImageTransform.Microsoft.Matrix(M11=1.1,M12=0,M21=0,M22=1.1,SizingMethod='auto expand');
}
Ответ 7
У меня есть эта функция в событии готовности документа, так что reCaptcha имеет динамический размер. Любой человек должен иметь возможность отказаться от этого на месте и уйти.
function ScaleReCaptcha()
{
if (document.getElementsByClassName('g-recaptcha').length > 0)
{parentWidth = document.getElementsByClassName('g-recaptcha') [0].parentNode.clientWidth;
childWidth = document.getElementsByClassName('g-recaptcha')[0].firstChild.clientWidth;
scale = (parentWidth) / (childWidth);
new_width = childWidth * scale;
document.getElementsByClassName('g-recaptcha')[0].style.transform = 'scale(' + scale + ')';
document.getElementsByClassName('g-recaptcha')[0].style.transformOrigin = '0 0';
}
}
Ответ 8
Это моя работа:
1) Добавьте обертку div в div recaptcha.
<div id="recaptcha-wrapper"><div class="g-recaptcha" data-sitekey="..."></div></div>
2) Добавьте код javascript/jquery.
$(function(){
// global variables
captchaResized = false;
captchaWidth = 304;
captchaHeight = 78;
captchaWrapper = $('#recaptcha-wrapper');
captchaElements = $('#rc-imageselect, .g-recaptcha');
resizeCaptcha();
$(window).on('resize', function() {
resizeCaptcha();
});
});
function resizeCaptcha() {
if (captchaWrapper.width() >= captchaWidth) {
if (captchaResized) {
captchaElements.css('transform', '').css('-webkit-transform', '').css('-ms-transform', '').css('-o-transform', '').css('transform-origin', '').css('-webkit-transform-origin', '').css('-ms-transform-origin', '').css('-o-transform-origin', '');
captchaWrapper.height(captchaHeight);
captchaResized = false;
}
} else {
var scale = (1 - (captchaWidth - captchaWrapper.width()) * (0.05/15));
captchaElements.css('transform', 'scale('+scale+')').css('-webkit-transform', 'scale('+scale+')').css('-ms-transform', 'scale('+scale+')').css('-o-transform', 'scale('+scale+')').css('transform-origin', '0 0').css('-webkit-transform-origin', '0 0').css('-ms-transform-origin', '0 0').css('-o-transform-origin', '0 0');
captchaWrapper.height(captchaHeight * scale);
if (captchaResized == false) captchaResized = true;
}
}
3) Необязательно: при необходимости добавьте стиль.
#recaptcha-wrapper {
text-align:center;
margin-bottom:15px;
}
.g-recaptcha {
display:inline-block;
}
Ответ 9
Теперь вы можете использовать приведенный ниже код (от Google)
<div class="g-recaptcha" data-sitekey="<yours>" data-size="compact"></div>
Ответ 10
Я нашел следующие лучшие способы изменить размеры Google Recaptchas
Вариант 1. Вы можете изменить размер Google ReCaptcha с помощью встроенного стиля.
Самый первый способ изменить размеры Google Recapture с помощью встроенного стиля. Встроенные стили - это стили CSS, которые применяются к одному элементу непосредственно в HTML страницы с помощью атрибута style. Вот пример, который показывает вам, как правильно оформить Google reCAPTCHA с помощью встроенного стиля.
<div class="g-recaptcha" style="transform: scale(0.77); -webkit-transform: scale(0.77); transform-origin: 0 0; -webkit-transform-origin: 0 0;" data-theme="light" data-sitekey="XXXXXXXXXXXXX"></div>
Вариант 2. Поместив следующий стиль на страницу (Внутренняя таблица стилей).
Во-вторых, вы можете поместить стиль для ReCaptcha на страницу между и. Внутренняя таблица стилей - это раздел HTML-страницы, содержащий определения стилей. Внутренние таблицы стилей определяются с помощью тега в области документа. Вот пример, который показывает, как стилизовать Google reCAPTCHA с помощью внешней таблицы стилей.
<style type="text/css">
.g-recaptcha{
transform:scale(0.77);
-webkit-transform:scale(0.77);
transform-origin:0 0;
-webkit-transform-origin:0 0;
}
</style>
Вариант 3. Изменение размера Google ReCaptcha с помощью внешней таблицы стилей.
Создайте отдельный файл и дайте имя, например style.css, и добавьте ссылку на этот файл между вашим элементом на странице. Например ,
<style type="text/css">
.g-recaptcha{
transform:scale(0.77);
-webkit-transform:scale(0.77);
transform-origin:0 0;
-webkit-transform-origin:0 0;
}
</style>
Ответ 11
Вы можете использовать параметр из reCaptcha. По умолчанию он использует normal
значение для data-size
Вам просто нужно использовать compact
чтобы разместить его на небольших устройствах или в некотором роде с разметкой небольшой ширины.
пример:
<div class="g-recaptcha" data-size="compact"></div>
Ответ 12
Было уже поздно, но я просто хочу помочь другим, если все еще сталкиваюсь с проблемой. Я нашел хорошее решение JS здесь: https://github.com/google/recaptcha/issues/61#issuecomment-376484690
Вот код JavaScript, использующий для этого jQuery:
$(document).ready(function () {
var width = $('.g-recaptcha').parent().width();
if (width < 302) {
var scale = width / 302;
$('.g-recaptcha').css('transform', 'scale(' + scale + ')');
$('.g-recaptcha').css('-webkit-transform', 'scale(' + scale + ')');
$('.g-recaptcha').css('transform-origin', '0 0');
$('.g-recaptcha').css('-webkit-transform-origin', '0 0');
}
});
IMP Примечание: Он будет поддерживать все устройства, шириной свыше 320 пикселей и выше.