自定义html5中日期选取器的样式
- 1. 前言
- 1.1 关于 h5 的新特性
- 1.2 使用浏览器
- 2. html5中日期选取器默认样式
- 3. 自定义日期样式
- 3.1 简单定义
- 3.2 花式样式定义
- 4. 改变日期格式
- 5. 参考
- 6. 关于低版本浏览器隐藏小三角
1. 前言
1.1 关于 h5 的新特性
-
可看下面的文章
HTML5 新特性之HTML5 的输入(input)类型(h5没有vue也能实现你想要的炫酷).H5新特性之h5的新标签 以及 全局属性contenteditable.
1.2 使用浏览器
- 说明:
下面都是在谷歌浏览器上测试的,其他浏览器可能不一样,自己测试看
2. html5中日期选取器默认样式
- 默认样式如下:
<input type="date" id="myDate">
3. 自定义日期样式
3.1 简单定义
- 简单修改日期样式的代码如下:
<style>/* 设置 整个日期选择器 外边框的样式 + 年月日字体及日历选择器指示器的大小 */input[type="date"] {border: 3px solid #c69d9d;border-radius: 10px;padding: 8px;font-size: 16px;}/* 自定义 日历选择器指示器 的样式 */input[type="date"]::-webkit-calendar-picker-indicator { /* 设置立体感的边框 */border: 1px solid #890404;background-color: #1d0909;border-radius: 5px;box-shadow: inset 0 1px #722222, 0 1px #732323;/* 设置边框里面的颜色 */background-image: -webkit-linear-gradient(top, green, green);/* 设置 日历选择器指示器 的大小,如果这里不指定就取上面设置的16px */font-size: 20px;}</style>
<label for="myDate">选择日期:</label><input type="date" id="myDate">
- 效果如下:
3.2 花式样式定义
- 感觉没必要,但是可以了解,效果如下:
- 完整代码如下:
<!DOCTYPE html> <html> <head><style>/* 设置 整个日期选择器 外边框的样式 以及 年月日字体的大小 */input[type="date"] {border: 3px solid #c69d9d;border-radius: 10px;padding: 8px;font-size: 18px;}/* 设置年月日的外边框为黑色边框 */input[type="date"]::-webkit-datetime-edit { padding: 2px; /* background: #000000; */border: #1d0909 solid 2px;margin-right: 13px;/* 设置 年月日 的大小,如果这里不指定就取上面设置的18px *//* font-size: 20px; */} /* 设置年月日的背景 */input[type="date"]::-webkit-datetime-edit-fields-wrapper { background-color: #9a9595; /* padding-right: 12px; */} /* text的padding(年月日的padding) */input[type="date"]::-webkit-datetime-edit-text { padding: 0.3em; /* 年月日分隔符“/”的颜色 */color: #2964d3; /* direction: rtl; *//* unicode-bidi: bidi-override; */} /* 年的颜色 */input[type="date"]::-webkit-datetime-edit-year-field { color: purple; } /* 月的颜色 */input[type="date"]::-webkit-datetime-edit-month-field { color: blue; } /* 日的颜色 */input[type="date"]::-webkit-datetime-edit-day-field { color: green; } /* 隐藏按钮 注意,-webkit-inner-spin-button只适用于Webkit浏览器,如果要实现在其他浏览器中隐藏箭头按钮,可能需要使用其他方法或属性。*//* input[type="date"]::-webkit-inner-spin-button { visibility: hidden; } *//* 自定义 日历选择器指示器 的样式 */input[type="date"]::-webkit-calendar-picker-indicator { /* 设置立体感的边框 */border: 1px solid #890404;background-color: #1d0909;border-radius: 5px;box-shadow: inset 0 1px #722222, 0 1px #732323;/* 设置边框里面的颜色 */background-image: -webkit-linear-gradient(top, green, green);/* 设置 日历选择器指示器 的大小,如果这里不指定就取上面设置的18px *//* font-size: 25px; */}</style> </head> <body><label for="myDate">选择日期:</label><input type="date" id="myDate"></body> </html>
4. 改变日期格式
- 想实现渲染成yyyy-MM-dd的格式,但是没实现,不知道怎么在原控件中实现。
- 也可以用一个很low的方式暂且凑合,如下:
<body><form><label for="myDate">选择日期:</label><input type="date" id="myDate"><input type="text" id="formattedDate"></form><script>document.getElementById('myDate').addEventListener('input', function() {var inputDate = this.value;// var formattedDate = inputDate.split('-').reverse().join('-');// document.getElementById('formattedDate').innerText = formattedDate;var formattedDate = inputDate.split('-').join('-');document.getElementById('formattedDate').value = formattedDate;});</script></body>
5. 参考
- html如何改变日期样式,html如何修改日期样式.
6. 关于低版本浏览器隐藏小三角
-
代码实现如下:
<!DOCTYPE html> <html> <head><style>/* input[type="date"] {position: relative;} *//* 隐藏上下小箭头三角 */input[type="date"]::-webkit-inner-spin-button{visibility: hidden;}/* 设置透明度 隐藏 日历选择器指示器 的小三角 */input[type="date"]::-webkit-calendar-picker-indicator { position: relative;/* width: 45px;height: 35px; *//* 设置透明度 */opacity:0;/* 这里要大于背景图 */z-index:1;}input[type="date"]::after{content: '';position: absolute;width: 5%; height: 5%;/* top: 20px; *//* right: 19px;top: 5px; */padding-left: 105px;background: url('date.png') no-repeat right center;}</style> </head> <body><label for="myDate">选择日期:</label><input type="date" id="myDate"></body> </html>
-
我这里是高版本的浏览器,没有那个小箭头,所以,具体可参考下面的一篇文章:
input type为date时,设置背景图片并隐藏小三角和小箭头.