拖动画布本身后,画布上的元素跳转

问题描述:

如前所述,拖动画布本身后,画布上的元素会跳转。我正在使用-webkit-transform:translate(x,y)来拖动画布。有什么想法来解决这个问题?拖动画布本身后,画布上的元素跳转

+2

你需要显示的最小代码段抄录的问题。另外,你使用哪个浏览器来测试它? – andand 2012-07-19 15:42:42

查找导致回流在CSS的变化:

  • visibility:hidden的/可见
  • 显示:无
  • :悬停

和JavaScript:

  • offsetWidth或offsetHeight
  • 滚动事件

可悲的事实对CSS3选择器是他们真的不应该,如果你在意页面的性能在所有使用。使用类和ID修饰标记并纯粹匹配这些标记,同时避免使用兄弟,后代和子选择器的所有用途实际上会使页面在所有浏览器中表现得更好。 使用父代选择器时,意外导致文档范围内的混乱变得非常容易。人们可以并且会滥用这个选择器。支持它给人们一大堆绳索。

完整的配置文件适用于对性能不敏感的上下文。例如,选择器API规范[SELECTORS-API]的实现应使用'完整'配置文件。它包括本文档中定义的所有选择器。

符合选择器级别4的CSS实现必须使用“快速”配置文件进行CSS选择。

快速配置文件适用于任何环境,包括动态浏览器CSS选择器匹配。它包括本文档中定义的每个选择器,但以下内容除外:

组合器位于:matches(),:not(),:nth-​​match()和:nth-​​last-match()。

参考组合子

主题指示

尤其形势的浏览器正在最多,正在考虑不考虑的元素相匹配的选择的。所以这个问题变成了决定选择器不尽快匹配的问题。如果在匹配的情况下需要额外的工作,那么由于在不匹配的情况下保存的所有工作,您仍然会赢。

使用特定浏览器选择目标文件本身:

@-moz-document url-prefix() 
    { 
    @media all 
    { 
    .foo { color: red } /* Firefox */ 
    } 
    } 

*::-ms-backdrop, .foo { color: red } /* IE11 */ 

*:-webkit-any-link, .foo { color: red } /* Webkit */ 

如果您要根据上下文来引用一个子元素,使用HTML5和CSS3命名空间的XML序列化:

@namespace m "http://www.w3.org/1998/Math/MathML/"; 

m|math { border: 1px solid blue; } 

如果要显示基于父伪类的子元素,可以定义子元素的默认状态,然后为父级的每个状态更改重新定义它:

li:hover > a * { display: none; } 

li:hover > a:hover * { display: block; } 

参考