Stylesheet::add_rules( string $selector, array|string $style_rules = null, array $query = null )
Add rules.
Description
Add a new CSS rule to the rules list.
Parameters
Name | Type | Required | Description |
---|---|---|---|
$selector | string |
Required | CSS selector. |
$style_rules | array|string |
Optional | Style rules. Default is null . |
$query | array |
Optional | Media query. Default is null . |
Return
(ElementorStylesheet) The current stylesheet class instance.
Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |
Source
includes/stylesheet.php
public function add_rules( $selector, $style_rules = null, array $query = null ) { $query_hash = 'all'; if ( $query ) { $query_hash = $this->query_to_hash( $query ); } if ( ! isset( $this->rules[ $query_hash ] ) ) { $this->add_query_hash( $query_hash ); } if ( null === $style_rules ) { preg_match_all( '/([^\s].+?(?=\{))\{((?s:.)+?(?=}))}/', $selector, $parsed_rules ); foreach ( $parsed_rules[1] as $index => $selector ) { $this->add_rules( $selector, $parsed_rules[2][ $index ], $query ); } return $this; } if ( ! isset( $this->rules[ $query_hash ][ $selector ] ) ) { $this->rules[ $query_hash ][ $selector ] = []; } if ( is_string( $style_rules ) ) { $style_rules = array_filter( explode( ';', trim( $style_rules ) ) ); $ordered_rules = []; foreach ( $style_rules as $rule ) { $property = explode( ':', $rule, 2 ); if ( count( $property ) < 2 ) { return $this; } $ordered_rules[ trim( $property[0] ) ] = trim( $property[1], ' ;' ); } $style_rules = $ordered_rules; } $this->rules[ $query_hash ][ $selector ] = array_merge( $this->rules[ $query_hash ][ $selector ], $style_rules ); return $this; }
Uses
- includes/stylesheet.php: Stylesheet::query_to_hash()
- includes/stylesheet.php: Stylesheet::add_query_hash()
- includes/stylesheet.php: Stylesheet::add_rules()
Used By
- includes/stylesheet.php: Stylesheet::add_rules()