Class Sass::Selector::Universal
In: lib/sass/selector.rb
Parent: Simple

A universal selector (`*` in CSS).

Methods

new   specificity   to_s   unify  

Attributes

namespace  [R]  The selector namespace. `nil` means the default namespace, `""` means no namespace, `"*"` means any namespace.

@return [String, nil]

Public Class methods

@param namespace [String, nil] See \{namespace}

Public Instance methods

@see Selector#to_s

Unification of a universal selector is somewhat complicated, especially when a namespace is specified. If there is no namespace specified or any namespace is specified (namespace `"*"`), then `sel` is returned without change (unless it‘s empty, in which case `"*"` is required).

If a namespace is specified but `sel` does not specify a namespace, then the given namespace is applied to `sel`, either by adding this {Universal} selector or applying this namespace to an existing {Element} selector.

If both this selector and `sel` specify namespaces, those namespaces are unified via {Simple#unify_namespaces} and the unified namespace is used, if possible.

@todo There are lots of cases that this documentation specifies;

  make sure we thoroughly test **all of them**.

@todo Keep track of whether a default namespace has been declared

  and handle namespace-unspecified selectors accordingly.

@todo If any branch of a CommaSequence ends up being just `"*"`,

  then all other branches should be eliminated

@see Selector#unify

[Validate]