Não tive muito sucesso em descobrir como estilizar o novo recaptcha do Google (v2). O objetivo final é torná-lo responsivo, mas estou tendo dificuldade em aplicar estilos até mesmo para coisas simples como largura.
A documentação da API deles não parece fornecer detalhes sobre como controlar o estilo, exceto o parâmetro do tema , e soluções simples de CSS e JavaScript não funcionaram para mim.
Basicamente, preciso ser capaz de aplicar CSS à nova versão do reCaptcha do Google. Usar JavaScript com ele é aceitável.
javascript
css
captcha
recaptcha
jhawes
fonte
fonte
Respostas:
Visão geral:
Desculpe responder a más notícias, mas depois de pesquisar e depurar, fica bem claro que não há como personalizar o estilo dos novos controles do reCAPTCHA. Os controles são envolvidos em um
iframe
, o que impede o uso de CSS para estilizá-los, e a política de mesma origem impede que o JavaScript acesse o conteúdo, descartando até mesmo uma solução hacky.Por que não personalizar API ?:
Ao contrário do reCAPTCHA API Versão 1.0 , não há opções de personalização na API Versão 2.0 . Se considerarmos como essa nova API funciona, não é nenhuma surpresa por quê.
Trecho de Você é um robô? Apresentando “No CAPTCHA reCAPTCHA” :
Se você pudesse manipular diretamente o estilo dos elementos de controle, poderia facilmente interferir na lógica de criação de perfil do usuário que torna o novo reCAPTCHA possível.
E um tema personalizado ?:
Agora, a nova API oferece uma
theme
opção , pela qual você pode escolher um tema predefinido comolight
edark
. No entanto, atualmente não há uma maneira de criar um tema personalizado. Se inspecionarmos oiframe
, descobriremos que otheme
nome é passado na string de consulta dosrc
atributo. Este URL se parece com o seguinte.Este parâmetro determina qual nome de classe CSS é usado no elemento wrapper no
iframe
e determina o tema predefinido a ser usado.Explorando a fonte minimizada, descobri que existem na verdade 4 valores de tema válidos, que são mais do que os 2 listados na documentação, mas
default
estandard
são os mesmos quelight
.Podemos ver o código que seleciona o nome da classe deste objeto aqui.
Não há código para um tema personalizado e, se qualquer outro
theme
valor for especificado, ele usará ostandard
tema.Em conclusão:
No momento, não há como estilizar totalmente os novos elementos reCAPTCHA, apenas os elementos de invólucro ao redor do
iframe
podem ser estilizados. Isso quase certamente foi feito intencionalmente, para evitar que os usuários quebrassem a lógica de criação de perfil do usuário que torna possível a nova caixa de seleção livre de captcha. É possível que o Google possa implementar uma API de tema personalizado limitada, talvez permitindo que você escolha cores personalizadas para os elementos existentes, mas não espero que o Google implemente um estilo CSS completo.fonte
Como vocês mencionaram acima, não existe caixa eletrônico. mas, ainda assim, se houver alguém interessado, ao adicionar apenas duas linhas você pode pelo menos fazer com que pareça razoável, se quebrar em qualquer tela. você pode atribuir valores diferentes na consulta @media.
Espero que isso ajude alguém :-).
fonte
Infelizmente não podemos estilizar o reCaptcha v2, mas é possível fazer com que pareça melhor, aqui está o código:
Clique aqui para visualizar
fonte
Adicione uma propriedade data-size ao elemento google recaptcha e torne-o igual a "compacto" no caso de celular.
Consulte: google recaptcha docs
fonte
Eu uso o truque abaixo para torná-lo responsivo e remover bordas. esses truques podem esconder mensagem / erro de recaptcha.
Este estilo é para rtl lang, mas você pode alterá-lo facilmente.
fonte
O que você pode fazer é ocultar o controle ReCaptcha atrás de um div. Então faça seu estilo neste div. E defina o css "ponteiro-eventos: nenhum" nele, para que você possa clicar no div ( Clique em um DIV para os elementos subjacentes ).
A caixa de seleção deve estar em um local onde o usuário está clicando.
fonte
Você pode recriar o recaptcha, embrulhá-lo em um recipiente e apenas deixar a caixa de seleção visível. Meu principal problema era que eu não conseguia pegar a largura total, então agora ela se expande para a largura do contêiner. O único problema é a expiração, você pode ver um movimento, mas assim que acontece eu zero.
Veja esta demonstração http://codepen.io/alejandrolechuga/pen/YpmOJX
fonte
Ótimo! Agora, aqui está o estilo disponível para reCaptcha .. Eu apenas uso o estilo embutido como:
tudo o que você deseja fazer pequenas personalizações em estilo embutido ...
Espero que ajude você !!
fonte
Basta adicionar uma solução hack-ish para torná-la responsiva.
Envolva a recaptcha em um div extra:
Adicione estilos. Isso assume o tema escuro.
Isso resulta no seguinte:
Agora ele será redimensionado horizontalmente e não tem uma borda. O logotipo da recaptcha seria cortado à direita, então estou escondendo com uma borda à direita. Ele também está ocultando os links de privacidade e termos, então você pode querer adicioná-los novamente.
Tentei definir uma altura no elemento de invólucro e, em seguida, centralizar verticalmente o recaptcha para reduzir a altura. Infelizmente, qualquer combinação de estouro: oculto e uma altura menor parece matar o iframe.
fonte
na V2.0 não é possível. O iframe bloqueia todo o estilo disso. É difícil adicionar um tema personalizado em vez de escuro ou claro.
fonte
Com a integração do reCAPTCHA invisível, você pode fazer o seguinte:
fonte
No caso de alguém ter dificuldades com o recaptcha do formulário de contato 7 (wordpress) aqui está uma solução funcionando para mim
fonte
Atrasado para a festa, mas talvez minha solução ajude alguém.
Não encontrei nenhuma solução que funcione em um site responsivo quando a janela de visualização muda ou o layout é fluido.
Portanto, criei um script jQuery para django-cms que se adapta dinamicamente a uma janela de visualização em mudança. Vou atualizar esta resposta assim que tiver a necessidade de uma variante moderna dela que seja mais modular e não tenha dependência de jQuery.
html
css
js
fonte
Se alguém ainda estiver interessado, existe uma biblioteca javascript simples (sem dependência jQuery), chamada recaptcha personalizada. Ele permite que você personalize o botão com css e implemente alguns eventos js (prontos / marcados). A ideia é tornar o recaptcha padrão "invisível" e colocar um botão sobre ele. Basta alterar o id do recaptcha e pronto.
Consulte https://azentreprise.org/read.php?id=1 para obter mais informações.
fonte
Estou apenas adicionando este tipo de solução / correção rápida para que não se perca no caso de um link quebrado.
Link para esta solução "Deseja adicionar um link Como redimensionar o Google noCAPTCHA reCAPTCHA | A Deusa Geek" foi fornecido por Vikram Singh Saini e simplesmente descreve que você pode usar CSS embutido para reforçar o enquadramento do iframe.
fonte
Você também pode escolher entre um tema ReCaptcha escuro ou claro . Eu usei isso em um dos meus 8 aplicativos Angular
fonte
Me deparei com esta resposta tentando estilizar o ReCaptcha v2 para um site que tem um modo claro e escuro. Brinquei mais um pouco e descobri que
transform
, além disso ,filter
também é aplicado aosiframe
elementos então acabamos usando o ReCaptcha padrão / claro e fazendo isso quando o usuário está no modo escuro:O
hue-rotate(180deg)
faz com que o logotipo ainda é azul ea marca de seleção ainda é verde quando o usuário clica nele, mantendo brancoinvert()
ed' a preto e vice-versa.Não vi isso em nenhuma resposta ou comentário, então decidi compartilhar, mesmo que seja um tópico antigo.
fonte
Você pode usar CSS para o estilo do Google reCAPTCHA v2 em seu site:
- Alterar plano de fundo e cor do widget Google reCAPTCHA v2:
ou
- Redimensione o widget Google reCAPTCHA v2 usando este snippet:
- Responsivo seu Google reCAPTCHA v2:
Todos os elementos, propriedade do CSS acima, é apenas para sua referência. Você pode alterá-los por conta própria (apenas usando o seletor de classe CSS).
Consulte o blog OIW - Como editar CSS do Google reCAPTCHA ( redefinir o estilo, alterar posição, redimensionar selo reCAPTCHA)
Você também pode encontrar o estilo do Google reCAPTCHA v3 lá.
fonte