- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个简单的脚本,可以分别在 focus
/blur
的文本区域/输入中添加和删除 padding-left
。这是为了在字段左侧为一个绝对定位的小按钮腾出空间,而不会阻挡其下方的文本。 [编辑] 它还同时更改元素的宽度,以保持 block 的总大小一致。
在几乎所有浏览器中,这都工作得很好,但 MSIE 9 除外。 [编辑] 尽管框保持相同大小,表明两个属性的 CSS 已正确更新,但输入/文本区域中的文本表现得好像填充没有改变。我知道 focus
/blur
事件的回调会正确触发和更新 DOM 对象的样式属性,因为获取属性的当前值总是会为您提供预期的值。
即
var field = $(field);
field.css({
'padding-left' : 0
});
console.log(field.css('padding-left')); // '0px'
但是输入/文本区域中的文本仍然显示之前的填充。基本上,当您尝试同时更改宽度和填充时,在这些字段出现的上下文中,似乎有些东西混淆了 MSIE9 的渲染引擎。
只要您开始在字段中键入,MSIE 就会修复该问题并使输入/文本区域中的文本遵循当前填充。意识到这一点,我尝试将 field.val(field.val());
添加到 blur
和 focus
回调的末尾。这解决了一个问题,并以将插入符号位置重置为输入/文本区域开头的形式引入了另一个问题。
有什么方法可以强制浏览器重绘给定元素,而无需经历将其移除并重新插入 DOM 的过程?
[编辑]
这是一个 fiddle ,显示了代码的缩写形式(在其实际上下文中具有附加功能):
您会看到填充已更新,但在您开始输入之前没有任何可见的变化。
如果我也选择不更改 width 属性,那么这个问题就会消失,尽管我需要这样做才能使我的应用程序中的框大小保持不变。
最佳答案
我不明白这是为什么;绝对是 IE9 中的错误,但如果您将填充设置为空字符串 ''
而不是 '0px'
,它就可以工作。
field.css({
'padding-left' : '' // <- Use '' instead of 0.
});
这是一个工作 fiddle :http://jsfiddle.net/KYrXM/4/
或者,如果您将它设置为 1
而不是 0
,它也可以工作,并且您可以围绕额外的像素进行编程。
关于javascript - MSIE9 -- 当同时调整宽度和填充的 CSS 时,输入/文本区域中的文本不服从当前填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379308/
我在让简单的 HTML5 DOM 处理在 MSIE 9 上工作时遇到问题。它在没有 DOCTYPE 标记的情况下工作。但是由于包含 DOCTYPE html(表示 html5),MSIE 9 不处理它
任何人都知道什么样的配置会导致 MSIE 8 报告一个字符串,其中还包含 MSIE 6(精简版本到最小值)? Mozilla/4.0 (compatible; MSIE 8.0; Windows NT
我正在尝试在 MVC 4 View 中创建 JQGrid 并获取 Unable to get property 'msie' of undefined or null reference 添加 JQG
我目前在 IE9 中遇到以下错误 - 对于以下 Jquery 函数,无法获取属性“msie”对象的值为 null 或未定义的值。 我正在使用 Jquery-1.8.2 插件来实现以下 jquery 功
我可以在 Firefox 中以编程方式轻松设置 2+ 个元素的选择,但是在 IE 上没有成功,所以我希望这里的任何人都可以帮助我。 最佳答案 IE 不支持多个并发选定的 TextRanges,无论是通
我试图在 MSIE 中重新调整两个按钮的大小,使它们变得超大,但我得到了难看的别名。 ugly button button { height:100px;
这适用于 FF、Chrome 和除 IE8 以外的其他浏览器: Please select a color $('.cart_warning').css({opacity: 0, color
在 Chrome 上调试时,我经常使用控制台即时执行 JavaScript 命令,例如在断点处检查变量。 如何在 MSIE 的开发工具中做同样的事情? 当我在控制台中输入一些东西时,例如 consol
我正在尝试在 IE 中重现径向渐变,元素的背景颜色和径向不透明度以及子元素的另一种颜色。但是元素是圆形的,半透明的颜色超出了圆度。四舍五入是用 pie.css 实现,所以它是围绕这些东西的 vml。有
谁能为此想到一个优雅的降级选项?它在 Chrome 和 Firefox 中看起来不错,但由于 MSIE 不支持文本剪辑 CSS 选项,因此在该浏览器中看起来很差。 div#svg-heading {
出于某种目的,我想将 Window.Event 对象缓存在变量中 并在以后使用它,但 MSIE 一直告诉我这是“未知”。 只需在 IE 中运行下面的代码,你就会明白我的意思了 我只想问一下怎么会这样?
我的以下 css 代码在 msie 中不起作用。 #block a { border-right: 2px none #eee; border-bottom: 2px none #eee;
这可能是一个需要回答的微不足道的问题,但是有没有等同于 input { border: initial; 可以在 IE8 和 9 中运行吗? 如果有人知道颜色是什么(因为在其他浏览器中可以用 init
我认为这确实是 Microsoft Internet Explorer 10 中的错误,但我在任何地方都找不到对该问题的任何解释。可以在 http://jsfiddle.net/37Bu5/ 找到问题
模仿 Internet Explorer 6 中的 CSS 属性最小宽度的最终方法是什么?最好不要尝试吗? 最佳答案 foo { min-width: 100px } // for ever
这个问题在这里已经有了答案: Internet Explorer 11 detection (12 个答案) 关闭 8 年前。 我不想让用户使用 Microsoft Internetexplorer(
这个问题在这里已经有了答案: Internet Explorer 11 detection (12 个答案) 关闭 8 年前。 我不想让用户使用 Microsoft Internetexplorer(
我正在构建一个网页,该网页使用slidejs图像 slider 来显示一系列图像。 当我从 Firefox 和 Safari 运行页面时,页面看起来应有的样子。然而,当我在 MSIE 9 中运行相同的
我正在尝试使用 Win32 API 清除 WinInet 缓存 - 通过使缓存条目无效或删除它们(无关紧要)。我找不到任何方法对整个缓存执行此操作(除了迭代每个条目 - example in C# 、
以下 Jasmine 测试适用于 PhantomJS 或 Chrome,但不适用于 MSIE 10。 describe("utility", function () { var utility
我是一名优秀的程序员,十分优秀!