📄 csscomputedstyledeclaration.cpp
字号:
case CSSPropertyBackgroundImage: if (style->backgroundImage()) return style->backgroundImage()->cssValue(); return CSSPrimitiveValue::createIdentifier(CSSValueNone); case CSSPropertyWebkitBackgroundSize: { RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); list->append(CSSPrimitiveValue::create(style->backgroundSize().width())); list->append(CSSPrimitiveValue::create(style->backgroundSize().height())); return list.release(); } case CSSPropertyBackgroundRepeat: return CSSPrimitiveValue::create(style->backgroundRepeat()); case CSSPropertyWebkitBackgroundComposite: return CSSPrimitiveValue::create(style->backgroundComposite()); case CSSPropertyBackgroundAttachment: if (style->backgroundAttachment()) return CSSPrimitiveValue::createIdentifier(CSSValueScroll); return CSSPrimitiveValue::createIdentifier(CSSValueFixed); case CSSPropertyWebkitBackgroundClip: case CSSPropertyWebkitBackgroundOrigin: { EFillBox box = (propertyID == CSSPropertyWebkitBackgroundClip ? style->backgroundClip() : style->backgroundOrigin()); return CSSPrimitiveValue::create(box); } case CSSPropertyBackgroundPosition: { RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); list->append(CSSPrimitiveValue::create(style->backgroundXPosition())); list->append(CSSPrimitiveValue::create(style->backgroundYPosition())); return list.release(); } case CSSPropertyBackgroundPositionX: return CSSPrimitiveValue::create(style->backgroundXPosition()); case CSSPropertyBackgroundPositionY: return CSSPrimitiveValue::create(style->backgroundYPosition()); case CSSPropertyBorderCollapse: if (style->borderCollapse()) return CSSPrimitiveValue::createIdentifier(CSSValueCollapse); return CSSPrimitiveValue::createIdentifier(CSSValueSeparate); case CSSPropertyBorderSpacing: { RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); list->append(CSSPrimitiveValue::create(style->horizontalBorderSpacing(), CSSPrimitiveValue::CSS_PX)); list->append(CSSPrimitiveValue::create(style->verticalBorderSpacing(), CSSPrimitiveValue::CSS_PX)); return list.release(); } case CSSPropertyWebkitBorderHorizontalSpacing: return CSSPrimitiveValue::create(style->horizontalBorderSpacing(), CSSPrimitiveValue::CSS_PX); case CSSPropertyWebkitBorderVerticalSpacing: return CSSPrimitiveValue::create(style->verticalBorderSpacing(), CSSPrimitiveValue::CSS_PX); case CSSPropertyBorderTopColor: return currentColorOrValidColor(style.get(), style->borderTopColor()); case CSSPropertyBorderRightColor: return currentColorOrValidColor(style.get(), style->borderRightColor()); case CSSPropertyBorderBottomColor: return currentColorOrValidColor(style.get(), style->borderBottomColor()); case CSSPropertyBorderLeftColor: return currentColorOrValidColor(style.get(), style->borderLeftColor()); case CSSPropertyBorderTopStyle: return CSSPrimitiveValue::create(style->borderTopStyle()); case CSSPropertyBorderRightStyle: return CSSPrimitiveValue::create(style->borderRightStyle()); case CSSPropertyBorderBottomStyle: return CSSPrimitiveValue::create(style->borderBottomStyle()); case CSSPropertyBorderLeftStyle: return CSSPrimitiveValue::create(style->borderLeftStyle()); case CSSPropertyBorderTopWidth: return CSSPrimitiveValue::create(style->borderTopWidth(), CSSPrimitiveValue::CSS_PX); case CSSPropertyBorderRightWidth: return CSSPrimitiveValue::create(style->borderRightWidth(), CSSPrimitiveValue::CSS_PX); case CSSPropertyBorderBottomWidth: return CSSPrimitiveValue::create(style->borderBottomWidth(), CSSPrimitiveValue::CSS_PX); case CSSPropertyBorderLeftWidth: return CSSPrimitiveValue::create(style->borderLeftWidth(), CSSPrimitiveValue::CSS_PX); case CSSPropertyBottom: return getPositionOffsetValue(style.get(), CSSPropertyBottom); case CSSPropertyWebkitBoxAlign: return CSSPrimitiveValue::create(style->boxAlign()); case CSSPropertyWebkitBoxDirection: return CSSPrimitiveValue::create(style->boxDirection()); case CSSPropertyWebkitBoxFlex: return CSSPrimitiveValue::create(style->boxFlex(), CSSPrimitiveValue::CSS_NUMBER); case CSSPropertyWebkitBoxFlexGroup: return CSSPrimitiveValue::create(style->boxFlexGroup(), CSSPrimitiveValue::CSS_NUMBER); case CSSPropertyWebkitBoxLines: return CSSPrimitiveValue::create(style->boxLines()); case CSSPropertyWebkitBoxOrdinalGroup: return CSSPrimitiveValue::create(style->boxOrdinalGroup(), CSSPrimitiveValue::CSS_NUMBER); case CSSPropertyWebkitBoxOrient: return CSSPrimitiveValue::create(style->boxOrient()); case CSSPropertyWebkitBoxPack: { EBoxAlignment boxPack = style->boxPack(); ASSERT(boxPack != BSTRETCH); ASSERT(boxPack != BBASELINE); if (boxPack == BJUSTIFY || boxPack== BBASELINE) return 0; return CSSPrimitiveValue::create(boxPack); } case CSSPropertyWebkitBoxReflect: return valueForReflection(style->boxReflect()); case CSSPropertyWebkitBoxShadow: return valueForShadow(style->boxShadow()); case CSSPropertyCaptionSide: return CSSPrimitiveValue::create(style->captionSide()); case CSSPropertyClear: return CSSPrimitiveValue::create(style->clear()); case CSSPropertyColor: return CSSPrimitiveValue::createColor(style->color().rgb()); case CSSPropertyWebkitColumnCount: if (style->hasAutoColumnCount()) return CSSPrimitiveValue::createIdentifier(CSSValueAuto); return CSSPrimitiveValue::create(style->columnCount(), CSSPrimitiveValue::CSS_NUMBER); case CSSPropertyWebkitColumnGap: if (style->hasNormalColumnGap()) return CSSPrimitiveValue::createIdentifier(CSSValueNormal); return CSSPrimitiveValue::create(style->columnGap(), CSSPrimitiveValue::CSS_NUMBER); case CSSPropertyWebkitColumnRuleColor: return currentColorOrValidColor(style.get(), style->columnRuleColor()); case CSSPropertyWebkitColumnRuleStyle: return CSSPrimitiveValue::create(style->columnRuleStyle()); case CSSPropertyWebkitColumnRuleWidth: return CSSPrimitiveValue::create(style->columnRuleWidth(), CSSPrimitiveValue::CSS_PX); case CSSPropertyWebkitColumnBreakAfter: return CSSPrimitiveValue::create(style->columnBreakAfter()); case CSSPropertyWebkitColumnBreakBefore: return CSSPrimitiveValue::create(style->columnBreakBefore()); case CSSPropertyWebkitColumnBreakInside: return CSSPrimitiveValue::create(style->columnBreakInside()); case CSSPropertyWebkitColumnWidth: if (style->hasAutoColumnWidth()) return CSSPrimitiveValue::createIdentifier(CSSValueAuto); return CSSPrimitiveValue::create(style->columnWidth(), CSSPrimitiveValue::CSS_NUMBER); case CSSPropertyCursor: { RefPtr<CSSValueList> list; CursorList* cursors = style->cursors(); if (cursors && cursors->size() > 0) { list = CSSValueList::createCommaSeparated(); for (unsigned i = 0; i < cursors->size(); ++i) list->append(CSSPrimitiveValue::create((*cursors)[i].cursorImage->url(), CSSPrimitiveValue::CSS_URI)); } RefPtr<CSSValue> value = CSSPrimitiveValue::create(style->cursor()); if (list) { list->append(value); return list.release(); } return value.release(); } case CSSPropertyDirection: return CSSPrimitiveValue::create(style->direction()); case CSSPropertyDisplay: return CSSPrimitiveValue::create(style->display()); case CSSPropertyEmptyCells: return CSSPrimitiveValue::create(style->emptyCells()); case CSSPropertyFloat: return CSSPrimitiveValue::create(style->floating()); case CSSPropertyFontFamily: // FIXME: This only returns the first family. return CSSPrimitiveValue::create(style->fontDescription().family().family().string(), CSSPrimitiveValue::CSS_STRING); case CSSPropertyFontSize: return CSSPrimitiveValue::create(style->fontDescription().computedPixelSize(), CSSPrimitiveValue::CSS_PX); case CSSPropertyWebkitBinding: break; case CSSPropertyFontStyle: if (style->fontDescription().italic()) return CSSPrimitiveValue::createIdentifier(CSSValueItalic); return CSSPrimitiveValue::createIdentifier(CSSValueNormal); case CSSPropertyFontVariant: if (style->fontDescription().smallCaps()) return CSSPrimitiveValue::createIdentifier(CSSValueSmallCaps); return CSSPrimitiveValue::createIdentifier(CSSValueNormal); case CSSPropertyFontWeight: switch (style->fontDescription().weight()) { case FontWeight100: return CSSPrimitiveValue::createIdentifier(CSSValue100); case FontWeight200: return CSSPrimitiveValue::createIdentifier(CSSValue200); case FontWeight300: return CSSPrimitiveValue::createIdentifier(CSSValue300); case FontWeightNormal: return CSSPrimitiveValue::createIdentifier(CSSValueNormal); case FontWeight500: return CSSPrimitiveValue::createIdentifier(CSSValue500); case FontWeight600: return CSSPrimitiveValue::createIdentifier(CSSValue600); case FontWeightBold: return CSSPrimitiveValue::createIdentifier(CSSValueBold); case FontWeight800: return CSSPrimitiveValue::createIdentifier(CSSValue800); case FontWeight900: return CSSPrimitiveValue::createIdentifier(CSSValue900); } ASSERT_NOT_REACHED(); return CSSPrimitiveValue::createIdentifier(CSSValueNormal); case CSSPropertyHeight: if (renderer) return CSSPrimitiveValue::create(sizingBox(renderer).height(), CSSPrimitiveValue::CSS_PX); return CSSPrimitiveValue::create(style->height()); case CSSPropertyWebkitHighlight: if (style->highlight() == nullAtom) return CSSPrimitiveValue::createIdentifier(CSSValueNone); return CSSPrimitiveValue::create(style->highlight(), CSSPrimitiveValue::CSS_STRING); case CSSPropertyWebkitBorderFit: if (style->borderFit() == BorderFitBorder) return CSSPrimitiveValue::createIdentifier(CSSValueBorder); return CSSPrimitiveValue::createIdentifier(CSSValueLines); case CSSPropertyLeft: return getPositionOffsetValue(style.get(), CSSPropertyLeft); case CSSPropertyLetterSpacing: if (!style->letterSpacing()) return CSSPrimitiveValue::createIdentifier(CSSValueNormal); return CSSPrimitiveValue::create(style->letterSpacing(), CSSPrimitiveValue::CSS_PX); case CSSPropertyWebkitLineClamp: if (style->lineClamp() == -1) return CSSPrimitiveValue::createIdentifier(CSSValueNone); return CSSPrimitiveValue::create(style->lineClamp(), CSSPrimitiveValue::CSS_PERCENTAGE); case CSSPropertyLineHeight: { Length length = style->lineHeight(); if (length.isNegative()) return CSSPrimitiveValue::createIdentifier(CSSValueNormal); if (length.isPercent()) // This is imperfect, because it doesn't include the zoom factor and the real computation // for how high to be in pixels does include things like minimum font size and the zoom factor. // On the other hand, since font-size doesn't include the zoom factor, we really can't do // that here either. return CSSPrimitiveValue::create(static_cast<int>(length.percent() * style->fontDescription().specifiedSize()) / 100, CSSPrimitiveValue::CSS_PX); return CSSPrimitiveValue::create(length.value(), CSSPrimitiveValue::CSS_PX); } case CSSPropertyListStyleImage: if (style->listStyleImage()) return style->listStyleImage()->cssValue(); return CSSPrimitiveValue::createIdentifier(CSSValueNone); case CSSPropertyListStylePosition: return CSSPrimitiveValue::create(style->listStylePosition()); case CSSPropertyListStyleType: return CSSPrimitiveValue::create(style->listStyleType()); case CSSPropertyMarginTop: if (renderer && renderer->isBox()) // FIXME: Supposed to return the percentage if percentage was specified. return CSSPrimitiveValue::create(toRenderBox(renderer)->marginTop(), CSSPrimitiveValue::CSS_PX); return CSSPrimitiveValue::create(style->marginTop()); case CSSPropertyMarginRight: if (renderer && renderer->isBox()) // FIXME: Supposed to return the percentage if percentage was specified. return CSSPrimitiveValue::create(toRenderBox(renderer)->marginRight(), CSSPrimitiveValue::CSS_PX); return CSSPrimitiveValue::create(style->marginRight()); case CSSPropertyMarginBottom: if (renderer && renderer->isBox()) // FIXME: Supposed to return the percentage if percentage was specified. return CSSPrimitiveValue::create(toRenderBox(renderer)->marginBottom(), CSSPrimitiveValue::CSS_PX); return CSSPrimitiveValue::create(style->marginBottom()); case CSSPropertyMarginLeft: if (renderer && renderer->isBox()) // FIXME: Supposed to return the percentage if percentage was specified. return CSSPrimitiveValue::create(toRenderBox(renderer)->marginLeft(), CSSPrimitiveValue::CSS_PX); return CSSPrimitiveValue::create(style->marginLeft()); case CSSPropertyWebkitMarqueeDirection: return CSSPrimitiveValue::create(style->marqueeDirection()); case CSSPropertyWebkitMarqueeIncrement: return CSSPrimitiveValue::create(style->marqueeIncrement()); case CSSPropertyWebkitMarqueeRepetition: if (style->marqueeLoopCount() < 0) return CSSPrimitiveValue::createIdentifier(CSSValueInfinite); return CSSPrimitiveValue::create(style->marqueeLoopCount(), CSSPrimitiveValue::CSS_NUMBER); case CSSPropertyWebkitMarqueeStyle: return CSSPrimitiveValue::create(style->marqueeBehavior()); case CSSPropertyWebkitMaskImage: if (style->maskImage()) return style->maskImage()->cssValue(); return CSSPrimitiveValue::createIdentifier(CSSValueNone); case CSSPropertyWebkitMaskSize: { RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); list->append(CSSPrimitiveValue::create(style->maskSize().width())); list->append(CSSPrimitiveValue::create(style->maskSize().height())); return list.release(); } case CSSPropertyWebkitMaskRepeat: return CSSPrimitiveValue::create(style->maskRepeat()); case CSSPropertyWebkitMaskAttachment: if (style->maskAttachment()) return CSSPrimitiveValue::createIdentifier(CSSValueScroll); return CSSPrimitiveValue::createIdentifier(CSSValueFixed); case CSSPropertyWebkitMaskComposite: return CSSPrimitiveValue::create(style->maskComposite()); case CSSPropertyWebkitMaskClip: case CSSPropertyWebkitMaskOrigin: { EFillBox box = (propertyID == CSSPropertyWebkitMaskClip ? style->maskClip() : style->maskOrigin());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -