Wenn Sie die CSS-Lösung nicht gefällt, können Sie die JS versuchen.
Die Idee ist, dynamisch zwischen dem kompakten und normalen Modus des Recaptcha-Plugins zu wechseln.
Ich werde ein Beispiel mit jQuery onboard liefern, aber es sollte nicht viel sein, es auf reines JS zu portieren.
Ich nehme an, Sie haben folgenden HTML-Code auf der Website.
<div>
<div class="g-recaptcha" data-sitekey="[your-key-here]"></div>
</div>
Zunächst müssen Sie gRecaptcha 2 ausdrücklich und bieten onload
Rückruf laden:
<script type='text/javascript' src='https://www.google.com/recaptcha/api.js?hl=en&onload=recaptchaCallback&render=explicit'>
Als Nächstes erstellen Sie Ihre Callback-Funktion, die auch sein wird, Ihr Javascript Medienabfrage.
function recaptchaCallback()
{
var mq = window.matchMedia("(max-width: 400px)");
mq.addListener(recaptchaRenderer);
recaptchaRenderer(mq);
}
Die letzte Sache ist, das recaptcha Widget zu rendern.
Sie wundern sich vielleicht, warum ich das div entleere und den ganzen g-recaptcha Inhalt kloniere. Das liegt daran, dass gRecaptcha 2 das zweite Mal nicht zum selben Element rendern würde. Es könnte einen besseren Weg geben, aber es ist alles, was ich für jetzt gefunden habe.