| @@ -281,9 +281,18 @@ | ||
| 281 | 281 | if ( count( $parts ) > 1 ) { |
| 282 | 282 | $rest = $parts[1] . $parts[2]; |
| 283 | 283 | } |
| 284 | 284 | |
| 285 | - return $first . '.' . $class_name . $rest; | |
| 285 | + // Capture all trailing pseudo-classes/pseudo-elements ( :before, :hover, etc. ) | |
| 286 | + // Capture the chained pseudos wraps (.form_field:nth-child(2):focus ) | |
| 287 | + $pseudo = ''; | |
| 288 | + | |
| 289 | + if ( preg_match( '/^(.*?)((?::{1,2}[a-zA-Z-]+(?:\([^)]*\))?)+)$/', $first, $pseudo_parts ) ) { | |
| 290 | + $first = $pseudo_parts[1]; | |
| 291 | + $pseudo = $pseudo_parts[2]; | |
| 292 | + } | |
| 293 | + | |
| 294 | + return $first . '.' . $class_name . $pseudo . $rest; | |
| 286 | 295 | } |
| 287 | 296 | |
| 288 | 297 | /** |
| 289 | 298 | * Remove the scope class from the first segment of a direct-scoped selector. |