本文整理汇总了C++中LayoutObject::hasClipOrOverflowClip方法的典型用法代码示例。如果您正苦于以下问题:C++ LayoutObject::hasClipOrOverflowClip方法的具体用法?C++ LayoutObject::hasClipOrOverflowClip怎么用?C++ LayoutObject::hasClipOrOverflowClip使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LayoutObject
的用法示例。
在下文中一共展示了LayoutObject::hasClipOrOverflowClip方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findParentLayerOnClippingContainerChain
static const DeprecatedPaintLayer* findParentLayerOnClippingContainerChain(const DeprecatedPaintLayer* layer)
{
LayoutObject* current = layer->layoutObject();
while (current) {
if (current->style()->position() == FixedPosition) {
for (current = current->parent(); current && !current->canContainFixedPositionObjects(); current = current->parent()) {
// All types of clips apply to fixed-position descendants of other fixed-position elements.
// Note: it's unclear whether this is what the spec says. Firefox does not clip, but Chrome does.
if (current->style()->position() == FixedPosition && current->hasClipOrOverflowClip()) {
ASSERT(current->hasLayer());
return static_cast<const LayoutBoxModelObject*>(current)->layer();
}
// CSS clip applies to fixed position elements even for ancestors that are not what the
// fixed element is positioned with respect to.
if (current->hasClip()) {
ASSERT(current->hasLayer());
return static_cast<const LayoutBoxModelObject*>(current)->layer();
}
}
} else {
current = current->containingBlock();
}
if (current->hasLayer())
return static_cast<const LayoutBoxModelObject*>(current)->layer();
// Having clip or overflow clip forces the LayoutObject to become a layer.
ASSERT(!current->hasClipOrOverflowClip());
}
ASSERT_NOT_REACHED();
return nullptr;
}