html5 input step,HTML5 Data Input 元素介绍

我们在网页中经常要使用到日期时间选择器。通常这些效果都是由一些jQuery插件来完成,但是HTML5为我们提供了一个元素的data输入框。这个data元素可以完成日期的输入,并且它的浏览器兼容性非常好,很可惜的是Firefox和Safari浏览器目前还不支持这个元素。

data输入框的基本HTML结构可以像下面这样:

出版日期:

在你的浏览器中,可以得到下面的结果:

出版日期:

data输入框的外观和语言取决于浏览器。可以使用value属性为它设置一个默认值。在不支持data元素的浏览器中,会将它简单的渲染为一个普通的输入框,添加一个placeholder属性,可以在不支持的浏览器中直接显示出这个日期。

DATA元素的日期范围

一般一个日期选择器会允许用户选择某个时间范围的日期。data输入框元素默认允许选择完整的日期范围。我们可以通过max和min属性来限制某个时间范围。

得到的结果如下:

data输入框中的值可以通过PHP或javascript来动态改变。

使用PHP来限制日期选择范围

我们可以在value、min和max属性中使用PHP代码来调用日期,这样所有的日期都会动态更新。

" value="=date('Y-m-d')>" >

上面的代码将设置max属性为比当前日期多7天。

使用JAVASCRIPT来限制日期选择范围

我们也可以使用javascript来做同样的事情:

function convertToISO(timebit) {

timebit.setHours(0, -timebit.getTimezoneOffset(), 0, 0);

// remove GMT offset

var isodate = timebit.toISOString().slice(0,10);

// format convert and take first 10 characters of result

return isodate;

}

var bookdate = document.getElementById('bookdate');

var currentdate = new Date();

bookdate.min = convertToISO(currentdate);

bookdate.placeholder = bookdate.min;

var futuredate = new Date();

futuredate.setDate(futuredate.getDate() + 7);

// go forward 7 days into the future

bookdate.max = convertToISO(futuredate);

使用step属性限制日期选择范围

我们HIA可以通过step属性来限制时间范围。step属性设置为2的话,日期只能在两天内来回选择。step属性设置为7,可以在一个星期的时间范围内进行选择。

使用Datalist来限制日期选择范围

你还可以通过元素来限制某个有效的时间范围。在元素中,每一个都关联一个可用的日期。下面的代码中,元素是可选的,它用于一些提示信息:

法定节假日

2015-01-01

2015-05-01

2015-10-01

2016-02-08

得到的结果如下:

法定节假日

2015-01-01

2015-05-01

2015-10-01

2016-02-08

自定义Data的样式

我们在自定义data元素的样式的时候有很多局限性。和HTML5 color元素一样,data元素的UI外观样式取决于底层的操作系统和浏览器。在IOS8系统中的data元素组件的样式和桌面浏览器中的样式是完全不同的。

Chrome浏览器允许我们使用Shadow DOM伪元素来修改data元素的外观。

input[type=date] { border: none; width: 18rem; background: black; color: #fff; padding: 1rem; font-size: 1.4rem; }

::-webkit-datetime-edit { font-size: 1.4rem; }

::-webkit-datetime-edit-fields-wrapper { padding: 1rem; }

::-webkit-datetime-edit-text { color: red; padding: 0 0.5em; }

::-webkit-datetime-edit-month-field { color: blue; }

::-webkit-datetime-edit-day-field { color: green; }

::-webkit-datetime-edit-year-field[aria-valuetext=blank] { color: white; }

::-webkit-datetime-edit-year-field { color: purple; }

::-webkit-inner-spin-button { display: none; }

::-webkit-clear-button {

display: none; -webkit-appearance: none;

}

::-webkit-calendar-picker-indicator {

background: none; color: red;

font-size: 2rem; margin-right: 1rem; transition: .4s;

}

::-webkit-calendar-picker-indicator:hover { color: yellow; }

得到的结果如下:

上面的代码纤维所有的浏览器指定data元素的统一样式,在为Webkit内核的浏览器指定特别的样式。

如果你需要能完全控制日期选择器的外观和行为,建议你使用jQueryUI或其它的一些框架。

小结

HTML5还有一些和data相关的元素,如month、week和datetime-local等。data实际上就是一个日期选择器组件,通过data元素,我们可以设置某个范围的日期让用户可以进行选择。希望以上内容对你有所帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值