【问题标题】:Positioning reCAPTCHA widget with CSS使用 CSS 定位 reCAPTCHA 小部件
【发布时间】:2015-11-10 21:04:06
【问题描述】:

我正在尝试将 reCAPTCHA 小部件与我的输入字段对齐,但设置 .g-recaptcha 的样式似乎并没有多大效果。有谁知道我可以使用的选择器吗?

表单 HTML:

<div class="contact-form">
  <form role="form" method="post" action="contact-form.php">
    <label for="name"><span>Name</span><input type="text" class="input-field" name="name" required data-errormessage-value-missing="Please enter your name." /></label>
    <label for="email"><span>Email</span><input type="email" class="input-field" name="email" required data-errormessage-value-missing="Please enter your email address." /></label>
    <label for="message"><span>Message</span><textarea name="message" class="textarea-field" required data-errormessage-value-missing="Please enter your message."></textarea></label>
    <span>&nbsp;</span>
    <div id="recaptcha">
      <div class="g-recaptcha" data-sitekey="6LcBawsTAAAAAKBPfGs1jApXNRLvR2MIPng0Fxol" style="margin: 0;"></div>
    </div>
    <label><span>&nbsp;</span><input type="submit" value="" class="submit-button" /></label>
  </form>
</div>

CSS:

.contact-form {
    margin: 0 auto;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    max-width: 600px;
    font-family: 'LinotypeUniversW01-Thin_723604', Arial, sans-serif;
    font-size: 20px;
}

.contact-form label {
    display: block;
    margin: 0px 0px 15px 0px;
}

.contact-form label > span {
    width: 100px;
    text-align: right;
    float: left;
    padding-top: 8px;
    padding-right: 20px;
}

.contact-form input, .contact-form textarea {
    margin-bottom: 15px;
    padding: 10px;
    border: none;
}

.contact-form input.input-field {
    width: 70%;
    height: 20px;
    font-size: 18px;
}

.contact-form .textarea-field {
    width: 70%;
    height: 250px;
    font-size: 18px;
}

textarea {
    resize: none;
}

textarea:focus, input:focus {
    outline: 0;
}

#recaptcha {
    width: 304px;
    margin: 0;
}

.g-recaptcha {
    text-align: left;
}

input.submit-button {
    background-image: url("../img/submit-button.jpg");
    width: 225px;
    height: 60px;
    border: none;
}

任何帮助将不胜感激!

【问题讨论】:

  • 使用可以使用!important;关键字与您的样式覆盖内联样式

标签: html css forms recaptcha


【解决方案1】:

只需修改现有的 CSS:

.contact-form label, #recaptcha {
    display: block;
    margin: 0px 0px 15px 0px;
}
.contact-form label > span, #recaptcha::before {
    width: 100px;
    text-align: right;
    float: left;
    padding-top: 8px;
    padding-right: 20px;
    content:""; //Make sure you add this as well
}
.contact-form .textarea-field, .g-recaptcha {
    width: 70%;
    height: 250px;
    font-size: 18px;
    display: inline-block;
}

这里使用了伪元素,因此您不必更改标记。 :before 在标签内用作跨度,从而在您的 html 结构中提供统一性,从而解决对齐问题

【讨论】:

  • 不得不在.g-recaptcha&lt;span&gt; 周围添加&lt;label&gt;,我不知何故遗漏了它,并稍微调整了CSS,但这样做了。谢谢!
【解决方案2】:

要将reCAPTCHA 与其他form-fields 对齐,您必须更改DOM 结构,如下所示:

HTML:

<label for="captcha">
   <span>&nbsp;</span>
      <div id="recaptcha">
             ...

然后也更改/写入CSS

#recaptcha {
   margin: 0px;
   width: 304px;
   position: relative;
   float: left;
}

#recaptcha iframe {
   position: absolute;
   left: 0px;
   top: 0px;
}

这将为您解决问题。

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 2011-04-04
    • 1970-01-01
    • 2020-09-16
    • 2017-08-16
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    相关资源
    最近更新 更多