如何设置 Stripes 元素 CSS 以匹配 bootstrap 表单控件输入 CSS 大小、垂直对齐、焦点等属性

How to set a Stripes element CSS to match a bootstrap form-control input CSS properties for size, vertical alignment, focus, etc

我这里有这张信用卡表格。我正在使用 Stripe 的元素来创建卡号输入字段。在卡号上方我有一个名称字段,它垂直居中名称和占位符,具有大小、高度、垂直对齐方式等。

问题 - 我可以使用什么 CSS 属性来将 Stripe 卡号、有效期和 cvc 字段以及占位符字段设置为与bootstrap 输入字段?具体来说,如何将元素内的占位符和文本对齐到垂直中心(如 bootstrap 元素)?

仅供参考 - 看看它在元素中的位置低于 bootstrap 占位符!

我可以像下面这样为元素设置 CSS 属性,但不知道要使用哪些属性?

var style = {
  base: {
    // iconColor: '#666EE8',
    // color: '#31325F',
    // lineHeight: '40px',
    // fontWeight: 300,
    // fontFamily: 'Helvetica Neue',
    // fontSize: '15px',

    '::placeholder': {
      // color: '#CFD7E0',
      // fontSize: '1rem',
      // fontWeight: '400',
      // lineHeight: '1.5'
    },
  },
};


this.cardNumber = elements.create('cardNumber', {
  style: style
});
this.cardNumber.mount(this.cardNumberElement.nativeElement);
<div class="mt-4" [formGroup]="paymentForm">
  <div class="row">
    <div class="form-group col-12">
      <label class="control-label">Name on card</label>
      <input placeholder="ex. John Smith" class="form-control" name="nameOnCard" formControlName="nameOnCard">
    </div>
    <div class="form-group col-6">
      <label class="control-label">Card Number</label>
      <div #cardNumber id="cardNumber" class="form-control py-3"></div>
    </div>
    <div class="form-group col-3">
      <label class="control-label">Expiration</label>
      <div #cardExpiry class="form-control py-3"></div>
    </div>
    <div class="form-group col-3">
      <label class="control-label">Cvc</label>
      <div #cardCvc class="form-control py-3"></div>
    </div>
  </div>
</div>

如果我从元素 class 中删除 py-3,那么它看起来像这样,其中占位符太高,当我给它焦点并按下一个键时,没有任何内容被输入到元素框中。我得到了

更新
由于 stripe 动态创建元素,您必须调整其高度和填充。 (Found the answer here)

  <div class="form-group">
    <label for="card-element">Credit or debit card</label>
    <div id="card-element" class="form-control" style='height: 2.4em; padding-top: .7em;'>
      <!-- A Stripe Element will be inserted here. -->
    </div>
  </div>

原创

从占位符 div 中删除 py-3(填充)就可以了。

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"/>
<div class="mt-4" [formGroup]="paymentForm">
    <div class="row">
        <div class="form-group col-12">
            <label class="control-label">Name on card</label>
            <input placeholder="ex. John Smith" class="form-control" name="nameOnCard" formControlName="nameOnCard">
        </div>
        <div class="form-group col-6">
            <label class="control-label">Card Number</label>
            <div #cardNumber id="cardNumber" class="form-control">1234 1234 1234 1234</div>
        </div>
        <div class="form-group col-3">
            <label class="control-label">Expiration</label>
            <div #cardExpiry class="form-control">MM/YY</div>
        </div>
        <div class="form-group col-3">
            <label class="control-label">Cvc</label>
            <div #cardCvc class="form-control">CVC</div>
        </div>
    </div>
</div>