【问题标题】:Why does a Bootstrap 3 date input look different in Firefox compared to Chrome?为什么与 Chrome 相比,Firefox 中的 Bootstrap 3 日期输入看起来不同?
【发布时间】:2020-02-15 04:38:32
【问题描述】:

有谁知道为什么在 Mozilla Firefox(版本 69.0.1)和 Google Chrome(版本 77.0.3865.120)中 Bootstrap 3 日期选择器输入的外观有所不同?

是否可以修复外观,如果可以,我该如何解决?问题是该值试图坚持在 Firefox 中任何给定日期输入的底部。

在谷歌浏览器中:

在 Mozilla Firefox 中:

<link href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<div class="container">
  <div class="row">
    <div class="col-md-12">
      <div class="form-group">
        <label for="sampleInput">Sample input</label>
        <input type="date" class="form-control" id="sampleInput" placeholder="">
      </div>
    </div>
  </div>
</div>

JSFiddle

【问题讨论】:

  • 它似乎是由 line-height: 34px 在内联样式的媒体查询 (@media screen and (-webkit-min-device-pixel-ratio: 0) {}) 中设置的。它看起来是 Firefox 中的一个错误,因为该部分的评论提到它只应该适用于 iOS Mobile Safari。
  • 我的小伙伴找到了解决问题的方法here

标签: html css twitter-bootstrap firefox twitter-bootstrap-3


【解决方案1】:

正如 Tyler 在 cmets 中提到的,这是由媒体查询引起的

@media screen and (-webkit-min-device-pixel-ratio: 0)

在 bootstrap.min.css 中。这有 -webkit- 前缀,因此它被设计为仅在基于 Webkit 的浏览器中使用,但问题是 Firefox 有一个设置使其也处理 -webkit- 前缀,这导致了这个问题。

要关闭此功能,请转到 Firefox 中的 about:config 并设置 layout.css.prefixes.webkitlayout.css.prefixes。 device-pixel-ratio-webkitfalse。 (这两个中的哪一个会起作用,似乎取决于 Firefox 的版本。)

或者,如果您不希望您的用户在 Firefox 中更改高级设置,您可以通过在您自己的 CSS 中将这些输入的 line-height 设置回 normal 来撤消 Bootstrap CSS。

input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control {
  line-height:normal;
}

【讨论】:

  • 但是如果用户不知道这个问题怎么办?即使它们的设置不同,我是否需要应用程序的代码仍然正确可见?我现在不需要指示/要求我的应用程序的用户启用某些浏览器设置吗?
  • 好吧,您可以将行高重置为normal,然后可能使用一些填充使其在所有浏览器中都以您想要的方式显示。
  • 这也是我在解决方案中发现的。我还看了你上面描述的设置,显然没有 prefixes.webkit 的记录。
  • 我也缺少 about:config 中的这样一个属性(运行 FF 69.0.2)
  • 对不起;显然,不同版本的 Firefox 有不同的设置。 layout.css.prefixes.webkit 在我的 FF 60ESR 机器上工作,但对于 FF 71 Nightly,我需要更改 layout.css.prefixes.device-pixel-ratio-webkit。我现在更新了我的答案。
猜你喜欢
  • 2018-08-10
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2012-05-30
相关资源
最近更新 更多