---
name: "CSS::DOM::Rule"
section: "3pm"
platform: "linux"
package: "libcss-dom-perl"
version: "0.17-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/CSS::DOM::Rule"
---

# CSS::DOM::Rule(3pm)

CSS rule class for CSS::DOM

## NAME

CSS::DOM::Rule - CSS rule class for CSS::DOM

## VERSION

Version 0.17

## SYNOPSIS

```
  use CSS::DOM::Rule ':all'; # import constants
  use CSS::DOM;
  $sheet = new CSS::DOM;
  $sheet->insertRule('bla blah blah {}');
  $rule = $sheet->cssRules->[0];

  $rule->type; # STYLE_RULE
  $rule->cssText; # 'bla blah blah {}' or similar
  $rule->cssText('p { margin: 0 }'); # replace it
  $rule->parentStyleSheet; # $sheet
```

## DESCRIPTION

This module provides the CSS rule class for CSS::DOM. It implements the CSSRule and CSSUnknownRule DOM interfaces.

## METHODS

### Constructor

Only call the constructor on this class to create an 'unknown' rule. You have to call the constructor on a particular subclass to get another type. Normally you do not need to  call this directly anyway. (See CSS::DOM's  `"parse"` and `"insertRule"` methods.) But just in case you do want to call  it, here it is:

```
  new CSS::DOM::Rule $parent; # unknown rule

  require CSS::DOM::Rule::Style
  new CSS::DOM::Rule::Style $parent;
  # etc.
```

`$parent` is the parent rule, if the rule is nested, or the parent style sheet otherwise.

### Object Methods

- type

  Returns one of the constants below indicating the type of rule.

- cssText

  Returns this rule's CSS code. If you pass an argument, it will be parsed as the new CSS code for this rule (replacing the existing data), and the old value will be returned. This method will die if the replacement CSS code creates a different type of rule.

- parentStyleSheet

  This returns the style sheet to which the rule belongs.

- parentRule

  This returns the rule's parent rule, if there is one, or an empty list otherwise. There is only a parent rule if this one is nested, e.g., inside a media rule.

## EXPORTS

The following constants that indicate the type of rule will be exported on request (individually or with the ':all' tag):

```
  UNKNOWN_RULE
  STYLE_RULE
  CHARSET_RULE
  IMPORT_RULE
  MEDIA_RULE
  FONT_FACE_RULE
  PAGE_RULE
```

## SEE ALSO

CSS::DOM

CSS::DOM::Rule::Style

CSS::DOM::Rule::Media

CSS::DOM::Rule::Page

CSS::DOM::Rule::Import
