8. set-rule
| Chapter 3. Commands which are specific to w2x |

## 8. set-rule

    set-rule(selector, property-name, property-value?)

Add, replace or remove property `property-name` to/from “interned” CSS rule having selector `selector`.

For this command to work, command `parse-styles` must have been invoked in order to “intern” the CSS classes found in all the elements of the document being edited.

`selector`

  Specifies the CSS rule which should be modified.

  - `selector` may be the empty string "", which means all CSS rules.

  - `selector` may be the index of a CSS rule (possibly in string form) within the document being edited. First index is 0. Examples: `0`, "`43`".

  - `selector` may be a selector. Examples: "`p`", "`.c-Code`".

  - `selector` may be a selector pattern. Examples: "`^\.c-.+$`", "`/n-\d+/`". This command modifies all rules having selectors matching specified pattern.

    A selector pattern has the following syntax: `/`pattern`/` or `^`pattern`$` (which is equivalent to `/^`pattern`$/`), where `pattern` is a regular expression pattern.

`property-name`

  Specifies the name of the property which should be added, replaced or removed. The empty string "" means: remove or replace all properties from/in the CSS rule.

`property-value`

  Specifies the value of the property which should be added, replaced or removed. Defaults to the empty string "", which means: remove property `property-name` from the CSS rule.

  Moreover, when `property-name` is "" (which means: all properties), `property-value` may be a list of `name`:`value` pairs separated by "`;`".

Examples:

    (: Remove property "line-height" from all rules. :)
    set-rule("", "line-height");

    (: Remove all properties from rule #0. :)
    set-rule(0, "");

    (: Replace all the properties in rule "p". :)
    set-rule("p", "", "text-align: justify; line-height: 1.2;");

    (: Add or replace property "color" in rule ".c-Code". :)
    set-rule(".c-Code", "color", "#808080");

    (: Remove property "font-family" from all rules having
       selectors matching "^\.c-.+$". :)
    set-rule("^\.c-.+$", "font-family");

See also `add-rule`, `remove-rule`.

Related XPath extension functions: `find-rule`, `get-rule`.

7. remove-rule |  | 9. set-style