rule.go 886 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package css
  2. type RuleType int
  3. const (
  4. STYLE_RULE RuleType = iota
  5. CHARSET_RULE
  6. IMPORT_RULE
  7. MEDIA_RULE
  8. FONT_FACE_RULE
  9. PAGE_RULE
  10. KEYFRAMES_RULE
  11. WEBKIT_KEYFRAMES_RULE
  12. COUNTER_STYLE_RULE
  13. )
  14. var ruleTypeNames = map[RuleType]string{
  15. STYLE_RULE: "",
  16. MEDIA_RULE: "@media",
  17. CHARSET_RULE: "@charset",
  18. IMPORT_RULE: "@import",
  19. FONT_FACE_RULE: "@font-face",
  20. PAGE_RULE: "@page",
  21. KEYFRAMES_RULE: "@keyframes",
  22. WEBKIT_KEYFRAMES_RULE: "@-webkit-keyframes",
  23. COUNTER_STYLE_RULE: "@counter-style",
  24. }
  25. func (rt RuleType) Text() string {
  26. return ruleTypeNames[rt]
  27. }
  28. type CSSRule struct {
  29. Type RuleType
  30. Style CSSStyleRule
  31. Rules []*CSSRule
  32. }
  33. func NewRule(ruleType RuleType) *CSSRule {
  34. r := &CSSRule{
  35. Type: ruleType,
  36. }
  37. r.Style.Styles = make([]*CSSStyleDeclaration, 0)
  38. r.Rules = make([]*CSSRule, 0)
  39. return r
  40. }