有没有办法删除 safari 中的默认占位符文本?

问题描述 投票:0回答:1

我正在尝试创建一个带有日期和时间输入字段的表单。我有一个占位符文本,当用户单击该字段时,它会上升 X 像素。

表单在 Chrome 上看起来符合预期,但在 Safari 中,表单字段存在重叠。 我如何在 Safari 中修复它?

野生动物园

HTML -

      <div class="form-field col-sm-6">
        <input id="date" name="birthdate" class="input-text js-input" type="date" placeholder="" required />
        <label class="label" for="birthdate">Date of Birth</label>
      </div>
      <div class="form-field col-sm-6">
        <input id="birthtime" name="birthtime" class="input-text js-input" type="time" placeholder="" required />
        <label class="label" for="birthtime">Time of Birth</label>
      </div>

CSS -

.contact-form .input-text:focus {
  outline: none;
}
.contact-form .input-text:focus + .label,
.contact-form .input-text.not-empty + .label {
  -webkit-transform: translateY(-24px);
  transform: translateY(-24px);
}
.contact-form .label {
  position: absolute;
  left: 20px;
  bottom: 11px;
  font-size: 18px;
  line-height: 26px;
  font-weight: 400;
  color: #b1afaf;
  cursor: text;
  transition: -webkit-transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
}
javascript html css safari bootstrap-5
1个回答
0
投票

我准备了如下代码。与 Bootstrap 5 兼容。如果你愿意,如果你的语言不是英语,你可以翻译关于日历的文本成你自己的语言。我在 mac 上的 safari 在线浏览器测试门户上尝试了此代码。他们工作正常。但它需要用移动设备的媒体查询进行编辑

$(function () {
  $("#datepicker").datepicker();
});

$(".clockpicker").clockpicker();

$.fn.datepicker.dates["en"] = {
  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
  today: "Today",
  clear: "Clear",
  format: "mm/dd/yyyy",
  titleFormat: "MM yyyy" /* Leverages same syntax as 'format' */,
  weekStart: 0,
};
body {
  margin-top: 3em !important;
  display: flex;
  justify-content: center;
  background-color: white;
}

span i.bi.bi-clock::before {
  font-size: large;
  margin-top: 10px !important;
  margin-left: 5px !important;
}

[placeholder]:focus::-webkit-input-placeholder {
  transition: text-indent 0.5s 0.5s ease;
  text-indent: -100%;
  opacity: 1;
}

input[type="text"],
textarea {
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  outline: none;
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
}

input[type="text"]:focus,
textarea:focus {
  box-shadow: 0 0 5px rgba(81, 203, 238, 1);
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
}

input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-bottom: 2px solid rgb(5, 5, 5);
}

input[class="form-control"],
textarea {
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  outline: none;
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
}

input[class="form-control"]:focus,
textarea:focus {
  box-shadow: 0 0 5px rgba(81, 203, 238, 1);
  padding: 3px 0px 3px 3px;
  margin: 5px 1px 3px 0px;
}

input[class="form-control"] {
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-bottom: 2px solid rgb(5, 5, 5);
}

span.input-group-text.bg-light.d-block {
  background-color: #fff !important;
  border: none !important;
}
.input-group-append {
  cursor: pointer;
}

i.fa.fa-calendar {
  padding: 4px;
}
.datepicker td,
th {
  text-align: center;
  padding: 8px 12px;
  font-size: 14px;
}
.datepicker {
  top: 6em !important;
  border: 1px solid black;
}
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Date-Time Picker</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" />
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/clockpicker/0.0.7/bootstrap-clockpicker.css" integrity="sha512-BB0bszal4NXOgRP9MYCyVA0NNK2k1Rhr+8klY17rj4OhwTmqdPUQibKUDeHesYtXl7Ma2+tqC6c7FzYuHhw94g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/clockpicker/0.0.7/bootstrap-clockpicker.min.css" integrity="sha512-MT4B7BDQpIoW1D7HNPZNMhCD2G6CDXia4tjCdgqQLyq2a9uQnLPLgMNbdPY7g6di3hHjAI8NGVqhstenYrzY1Q==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="/style.css" />
  </head>
  <body>
    <div class="container">
      <div class="row">
        <label for="date" class="col-1 col-form-label">Date</label>
        <div class="col">
          <div class="input-group date" id="datepicker">
            <input type="text" class="form-control" id="date" placeholder="Date Of Birth" />
            <span class="input-group-append">
              <span class="input-group-text bg-light d-block">
                <i class="fa fa-calendar"></i>
              </span>
            </span>
          </div>
        </div>
        <label for="date" class="col-1 col-form-label">Time</label>
        <div class="col">
          <div class="input-group clockpicker" data-placement="bottom" data-align="bottom" data-autoclose="true">
            <input type="text" class="form-control" placeholder="Time Of Birth" />
            <span class="input-group-addon">
              <i class="bi bi-clock"></i>
            </span>
          </div>
        </div>
      </div>
    </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.3/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/clockpicker/0.0.7/jquery-clockpicker.min.js" integrity="sha512-x0qixPCOQbS3xAQw8BL9qjhAh185N7JSw39hzE/ff71BXg7P1fkynTqcLYMlNmwRDtgdoYgURIvos+NJ6g0rNg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/clockpicker/0.0.7/bootstrap-clockpicker.js" integrity="sha512-1QoWYDbO//G0JPa2VnQ3WrXtcgOGGCtdpt5y9riMW4NCCRBKQ4bs/XSKJAUSLIIcHmvUdKCXmQGxh37CQ8rtZQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="date-picker.js"></script>
  </body>
</html>

1920x1080 分辨率 Safari 浏览器

1680x1050 分辨率 Safari 浏览器

© www.soinside.com 2019 - 2024. All rights reserved.