在不更改默认边框的情况下更改输入背景
Change input background without changing default border
我想更改input[type=text]
元素的背景图像和颜色,但当我更改这些时,边框也会更改。我想要原始的(依赖于浏览器的)边框。在IE中,它会是薄黑色,在Webkit中,它将是非常非常薄的灰色。在其他浏览器中可能会有所不同。
有没有一种方法可以在CSS或javascript中做到这一点?我在JS中设置属性,因为涉及到一些计算。下面是一个最小的工作示例:http://jsfiddle.net/nacho4d/k0oxsywp/1/
// <input type="text">
var input = document.querySelector('input');
input.style.backgroundColor = 'yellow'; // Some color calculated in js
input.style.backgroundImage = 'Some image I generate in js';
input.style.border = ??? // Restore browser default style.
注意:例如,在chrome中,默认的输入边框非常薄,我还没有找到复制它的方法。在IE中,它是border: thin solid black
。
我认为你不应该这样做。根据我的经验,你不应该只放默认值并使用它们——最好的解决方案是设置你自己关于边框样式、悬停、焦点和e.t.的规则
如果您想保留默认边界,您应该在进行更改之前获得它。
以下是如何获得它的示例。
http://www.w3schools.com/jsref/prop_style_border.asp
// <input type="text">
var input = document.querySelector('input');
var borderStyle = input.style.border ;
input.style.backgroundColor = 'yellow'; // Some color calculated in js
input.style.backgroundImage = 'Some image I generate in js';
//and then when you change the background or what ever change are set it again
input.style.border = borderStyle;
我没有尝试这种方法,但为了保留默认值,这应该是算法。同样,我的观点是为所有人设置一个默认的边界。
相关文章:
- 是否可以在没有外部输入的情况下使函数具有自我意识
- 在不使用PHP的情况下将表单输入值获取到Javascript中
- 如何在不通过模型验证的情况下屏蔽文本输入中输入的字符
- 默认情况下,在ipython笔记本中隐藏输入单元格
- 如何在不更改Javascript页面的情况下访问用户输入的电子邮件
- 如何在没有表单提交、没有js、没有jquery和没有ajax的情况下将输入的文本框值存储到php变量中
- 如何在不更改输入内容的情况下更改输入值
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 输入文本是't在一种情况下以相同的形式更新与另一种情况相同的角度模型
- html输入获胜't在不按住鼠标左键的情况下进行输入
- 阻止在未填写所有输入的情况下提交订单
- 如何在不隐藏键盘的情况下清除输入搜索?(手机)
- AJAX/JS:是否可以在没有提交按钮和刷新页面的情况下获取输入文本的值
- Angular:如何在没有ng模型的情况下获得输入值
- 在切换情况下未分配输入
- JavaScript 在没有提交按钮的情况下提交,通过键盘输入
- 在这种情况下如何处理数据驱动的输入
- 如何在没有 cookie 的情况下在输入中保存值
- 使用 setTimeout 在不阻止输入的情况下运行大型任务,并使用 Promise 找出任务何时完成
- 有没有一种方法可以在不进行eval的情况下输入Highchart系列数据