- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一条水平线的 div 元素,它们 display:inline-block
且顶部对齐。
我可以添加元素,并且该行会扩展。当我通过将宽度动画设置为 0 来删除元素时,该线不会保留其单线外观,而是强制在动画期间临时显示第二条线。
IE、Webkit 和 Firefox 中的行为相同。
我可以更改界面来避免这个问题,但我仍然想知道是什么原因导致的,以及如何修复它(如果可能)。
这是该问题的缩小示例。
body {
text-align: center;
}
#container {
height: 20px;
border: 1px dashed #AAA;
background: #EEE;
margin: 0 auto;
display:table !important;
display: -moz-inline-stack; /* Pre FF3 fix */
display: inline-block;
zoom: 1; /* IE fix */
*display: inline; /* IE fix */
}
.item {
cursor: pointer;
width: 50px;
height: 18px;
border: 1px solid purple;
vertical-align: top;
display: inline-block;
color: white;
vertical-align: top;
display: -moz-inline-stack; /* Pre FF3 fix */
display: inline-block;
zoom: 1; /* IE fix */
*display: inline; /* IE fix */
}
.outer {
background: orange;
}
$('#add').click(function() {
$(this).before('<div class="item"></div>')
});
$('#add').click().click().click()
$('.item:not(.outer)').live('click', function() {
$(this).animate({width: 1, paddingLeft: 0}, 1000, function() {$(this).remove()});
});
<div id="container"><div class='item outer'></div><div id="add" class="item outer">Add</div></div>
最佳答案
好吧,如果有人感兴趣的话,这是我的解决方案。
我最终对 jQuery 的源代码做了一点修改,看起来效果很好。然后我通过必要的调整将更改放入缩小版本中。
这是我所做的(对于非缩小版):
在 jQuery 的 animate:
函数中,在检查“高度”和“宽度”的 if()
语句中,我添加了以下内容:
// Detect inline-block standard, pre ie8 fix, and pre Firefox 3 fix
opt.ibCheck =(jQuery.css(this,'display') === 'inline-block') ||
(jQuery.css(this,'zoom') !== 'normal' && jQuery.css(this,'display') === 'inline') ||
(jQuery.css(this,'display') === '-moz-inline-stack');
然后在 jQuery.fx.prototype.update:
中,在 if()
语句中检查“height”、“width”和“this.element”。 style',我将 if()
语句更改为以下内容:
if ( ( this.prop === "height" || this.prop === "width" ) && this.elem.style && !this.options.ibCheck ) {
...检查在“animate”中设置的 ibCheck 属性。
一切似乎都进展顺利。它检查内联 block 、常见的 Firefox 3 之前的修复或 ie8 之前的修复。如果找到,它将 ibCheck 设置为“true”。如果 ibCheck 为“true”,update()
函数不会将显示更改为“block”。
可以对 IE 进行更好的检查。我想如果有人对“内联”元素进行动画处理,并将“缩放”设置为“正常”之外的任何内容,它可能会导致问题吗?至于我,直到昨天我才知道 IE 甚至接受了“缩放”属性!
关于jquery - 对内联 block 元素使用 jQuery remove() 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245525/
我的 blockly.js 文件中有以下代码 Blockly.Blocks['account_number'] = { // Other type. init: function() {
首先抱歉我的英语不好,我正在开发 Image Splitter 应用程序并且已经完成,但是现在的要求是当图像被分割(分成几 block /chunks)那么图像 block 的每一 block (ch
#value: 消息的返回值,当发送到一个 block 时,是该 block 中最后一句话的值。所以 [ 1 + 2. 3 + 4. ] value 计算结果为 7。我发现有时很难使用。有没有办法显式
我想构建一个包含 3 div 的响应式导航栏相同的 width和 height . 我申请了 inline-block到每个 block ,我得到一个我不理解的行为。 问题是,第三 block 由 2
我希望使用 Blockly 来允许非技术人员用户指定测试脚本。 它的一部分需要一个文件选择器,但是,我看不到 Blockly 有一个。是吗? 实际上,我找不到完整的标准 block 列表。谁有网址?
仅当您位于父 block 内部时,父 block 的 props.isSelected 才为 true,但当您在该 block 的 innerBlocks 内进行编辑时则不然。 如何从父 block
仅当您位于父 block 内部时,父 block 的 props.isSelected 才为 true,但当您在该 block 的 innerBlocks 内进行编辑时则不然。 如何从父 block
我想创建一个具有不同背景颜色 block 和不同悬停颜色 block 的导航栏 block 。我可以分别创建不同的悬停颜色 block 或不同的背景颜色 block ,但不能一起创建。所以请告诉我如何
我正在使用看到的代码 here定期执行代码: #define DELAY_IN_MS 1000 __block dispatch_time_t next = dispatch_time(DISPATC
为什么 block 必须被复制而不是保留?两者在引擎盖下有什么区别?在什么情况下不需要复制 block (如果有)? 最佳答案 通常,当您分配一个类的实例时,它会进入堆并一直存在,直到它被释放。但是,
我想弄清楚我这样做是否正确: 如果我有一个 block ,我会这样做: __weak MyClass *weakSelf = self; [self performBlock:^{
我想制作一个 4 block 导航菜单,虽然我已经显示了一个 block ,然后单击打开第二个 block ,从第二个开始选择并再次单击出现第三个 block ,第四个 block 相同...这是我的
例如,这样更好吗? try { synchronized (bean) { // Write something } } catch (Int
我想让一只乌龟检查前方小块的颜色并决定移动到哪里。如果前面的补丁不是白色的,那么乌龟向左或向右旋转并移动。我的 If 决策结构中出现错误,显示“此处应为 TRUE?FALSE,而不是 block 列表
我想创建一个 block 对角矩阵,其中对角 block 重复一定次数,非对角 block 都是零矩阵。例如,假设我们从一个矩阵开始: > diag.matrix [,1] [,2] [
我是区 block 链新手。突然我有一个问题,我们是否可以通过区 block 号来访问以太坊区 block 链上之前的区 block 数据。 例如我创建了一个block1、block2。 block
我是区 block 链新手。突然我有一个问题,我们是否可以通过区 block 号来访问以太坊区 block 链上之前的区 block 数据。 例如我创建了一个block1、block2。 block
我创建了一个等距环境,全部使用 Javascript 和 HTML5 (2D Canvas),大部分情况下工作正常。我面临的问题是使用不同高度的图 block ,然后对图 block 上的对象索引进行
这是令我困惑的代码: public Integer getInteger(BlockingQueue queue) { boolean interrupted = false; try
我有一个基于 TPL 数据流的应用程序,它仅使用批处理 block 和操作 block 就可以正常工作。 我已经添加了一个 TransformBlock 以尝试在发布到批处理 block 之前从源中转
我是一名优秀的程序员,十分优秀!