自定义html5中日期选取器的样式

自定义html5中日期选取器的样式

  • [1. 前言](#1. 前言)
    • [1.1 关于 h5 的新特性](#1.1 关于 h5 的新特性)
    • [1.2 使用浏览器](#1.2 使用浏览器)
  • [2. html5中日期选取器默认样式](#2. html5中日期选取器默认样式)
  • [3. 自定义日期样式](#3. 自定义日期样式)
    • [3.1 简单定义](#3.1 简单定义)
    • [3.2 花式样式定义](#3.2 花式样式定义)
  • [4. 改变日期格式](#4. 改变日期格式)
  • [5. 参考](#5. 参考)

1. 前言

1.1 关于 h5 的新特性

1.2 使用浏览器

  • 说明:
    下面都是在谷歌浏览器上测试的,其他浏览器可能不一样,自己测试看

2. html5中日期选取器默认样式

  • 默认样式如下:

    html 复制代码
    <input type="date" id="myDate">


3. 自定义日期样式

3.1 简单定义

  • 简单修改日期样式的代码如下:

    css 复制代码
    <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>
    html 复制代码
      <label for="myDate">选择日期:</label>
      <input type="date" id="myDate">
  • 效果如下:

3.2 花式样式定义

  • 感觉没必要,但是可以了解,效果如下:

  • 完整代码如下:

    html 复制代码
    <!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的方式暂且凑合,如下:

    html 复制代码
    <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. 参考

相关推荐
带娃的IT创业者1 小时前
《Python Web部署应知应会》Flask网站隐藏或改变浏览器URL:从Nginx反向代理到URL重写技术
前端·python·flask
Json____2 小时前
使用vue2 开发一个纯静态的校园二手交易平台-前端项目练习
前端·vue2·前端模板·vue脚手架·校园二手交易平台·项目项目练习
小二·2 小时前
前端技巧——性能优化篇
前端·性能优化
agenIT2 小时前
micro-app前端微服务原理解析
前端·微服务·架构
小宁爱Python3 小时前
深入理解CSS显示模式与盒子模型
前端·css
只可远观3 小时前
Git 忽略文件配置 .gitignore
android·前端·git
我是大头鸟4 小时前
SpringMVC 通过ajax 前后端数据交互
前端·javascript·ajax
北观止4 小时前
批量删除OpenStack实例
linux·前端·chrome·openstack
BillKu5 小时前
Vue3中AbortController取消请求的用法详解
前端·javascript·vue.js
heroboyluck6 小时前
rust 全栈应用框架dioxus
前端·rust·dioxus