Webkit CSS来控制一个颜色的输入框[color = color]?

是否有一个Webkit特定的CSS样式,将允许我在输入[type = color]中控制颜色的颜色/大小/样式。我正在设置输入的颜色和背景颜色,因此我使用旧的Chrome和Firefox时的交叉兼容性聚合物,看起来不错。但是现在,Chrome实际上有一个颜色选择器,当颜色和背景颜色被设置为相同的颜色时,颜色周围有一个框,留下一个1px灰色框在输入的中间。有没有一些CSS让我摆脱它,要么将该框的宽度设置为0,将样式更改为none,或者最坏的情况下将颜色设置为与颜色和背景颜色相同。

在这个形象中,我正在谈论白色和绿色之外的灰色框。
http://www.cssjockey.com/wp-content/uploads/2012/04/Screen-Shot-2012-04-08-at-4.52.33-PM-442×350.png

我找到了一个解决方法,它是设置一个足够高的填充,框(灰色边框和绿色内容)被压缩到大小0.但这真的很奇怪,在Firefox中看起来不是很好。

解决方法

WebKit有 special CSS selectors可以用来自定义表单控件,但它们不是官方的。
未来WebKit的更新可能会破坏它。

请不要用于生产!

但是,为了个人项目,请随意玩:)

方法1

使用特定于Webkit的选择器来主要隐藏输入的无色部分。

input[type="color"] {
	-webkit-appearance: none;
	border: none;
	width: 32px;
	height: 32px;
}
input[type="color"]::-webkit-color-swatch-wrapper {
	padding: 0;
}
input[type="color"]::-webkit-color-swatch {
	border: none;
}
<input type=color value="#ff0000">

方法2

隐藏颜色输入(不透明度:0),并使用JavaScript将包装器的背景设置为输入的值。

var color_picker = document.getElementById("color-picker");
var color_picker_wrapper = document.getElementById("color-picker-wrapper");
color_picker.onchange = function() {
	color_picker_wrapper.style.backgroundColor = color_picker.value;    
}
color_picker_wrapper.style.backgroundColor = color_picker.value;
input[type="color"] {
	opacity: 0;
	display: block;
	width: 32px;
	height: 32px;
	border: none;
}
#color-picker-wrapper {
	float: left;
}
<div id="color-picker-wrapper">
	<input type="color" value="#ff0000" id="color-picker">
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


css的bordercolor属性怎么使用
CSS中contain属性的作用和语法
深入学习响应式布局框架:适合初学者到专家的详尽指南
CSS3选择器优先级规则
margin-top用法
选择最适合您的响应式布局框架:综合评估不同工具
使用CSS中的content属性
设计一个无缝适应不同屏幕尺寸的网站
如何处理CSS样式的层叠问题
探究最佳响应式布局框架:竞争激烈!
学习基本数据类型的快速入门:掌握常用操作技巧
CSS中float布局介绍
一同探讨响应式布局的益处
掌握响应式设计的益处,让网页在不同设备上展现完美适配!
可能导致CSS加载失败的原因有哪些?
各种基本数据类型的全面操作指南
CSS3选择器是否用于设计界面结构?
响应式布局优化移动设备适配的策略与实用技巧
伪元素怎么清除浮动
利用CSS响应式布局创作独特网页设计的设计技巧