CSS-DOM
view release on metacpan or search on metacpan
lib/CSS/DOM/Rule/Style.pm view on Meta::CPAN
++$ids;
}
elsif($type eq '~') {
my $attr = $elem->getAttribute($id);
!defined $attr || !length $attr and return;
$attr =~ /(?:^|[ \t\r\n\f])\Q$arg\E(?:\z|[ \t\r\n\f])/ or return;
++$attrs;
}
# A single colon is either a CSS 2.1 pseudo-element or a pseudo-class.
# Since CSS 3 ps-elems have two colons, we can simply filter out those
# pseudo-elems listed in CSS 2.1. The rest are classes.
elsif($type eq ':'
and $id !~ /^(?:first-l(?:ine|etter)|before|after)\z/) { # class
# ~~~
return
}
elsif($type =~ /:/) { # pseudo-element
return unless $pseudo and lc $id eq lc $pseudo;
}
elsif($type eq '=') {
my $attr = $elem->getAttribute($id);
if(defined $arg) {
no warnings;
$attr eq $arg or return;
}
else { defined $attr || length $attr or return }
++$attrs;
}
elsif($type eq '|') {
my $attr = $elem->getAttribute($id);
!defined $attr || !length $attr and return;
$attr =~ /^\Q$arg\E(?:-|\z)/ or return;
++$attrs;
}
}
#warn Dump [$tag,$ids,$attrs,$tags] if our $warn;
return[$ids,$attrs,$tags];
}
sub style {
$_[0]->[styl] ||= do {
require CSS::DOM::Style;
new CSS::DOM::Style shift
};
}
!()__END__()!
=head1 NAME
CSS::DOM::Rule::Style - CSS style rule class for CSS::DOM
=head1 VERSION
Version 0.17
=head1 SYNOPSIS
use CSS::DOM;
my $ruleset = CSS::DOM->parse(
'p:firstline, h3 { font-weight: bold }'
)->cssRules->[0];
$ruleset->selectorText; # 'p:firstline, h3'
$ruleset->style; # a CSS::DOM::Style object
$ruleset->style->fontWeight; # 'bold'
=head1 DESCRIPTION
This module implements CSS style rules for L<CSS::DOM>. It inherits
from
L<CSS::DOM::Rule> and implements
the CSSStyleRule DOM interface.
=head1 METHODS
=over 4
=item selectorText
Returns a string representing the selector(s). Pass an argument to set it.
=item style
Returns the CSS::DOM::Style object representing the declaration block
of this rule.
=back
=head1 SEE ALSO
L<CSS::DOM>
L<CSS::DOM::Style>
L<CSS::DOM::Rule>
( run in 1.524 second using v1.01-cache-2.11-cpan-39bf76dae61 )