| 128 |
128 |
|
false
|
| 129 |
129 |
|
}
|
| 130 |
130 |
|
|
|
131 |
+ |
/// Check if an element is hidden via inline style.
|
|
132 |
+ |
///
|
|
133 |
+ |
/// Catches display:none, visibility:hidden, and spacer tricks
|
|
134 |
+ |
/// like font-size:0 or line-height:0 (commonly used in email templates).
|
|
135 |
+ |
pub fn is_hidden(el: &Element) -> bool {
|
|
136 |
+ |
if let Some(style) = el.attr("style") {
|
|
137 |
+ |
let s = style.to_lowercase();
|
|
138 |
+ |
if s.contains("display:none")
|
|
139 |
+ |
|| s.contains("display: none")
|
|
140 |
+ |
|| s.contains("visibility:hidden")
|
|
141 |
+ |
|| s.contains("visibility: hidden")
|
|
142 |
+ |
|| s.contains("font-size:0")
|
|
143 |
+ |
|| s.contains("font-size: 0")
|
|
144 |
+ |
|| s.contains("line-height:0")
|
|
145 |
+ |
|| s.contains("line-height: 0")
|
|
146 |
+ |
|| (s.contains("height:0") && s.contains("overflow:hidden"))
|
|
147 |
+ |
|| (s.contains("height: 0") && s.contains("overflow: hidden"))
|
|
148 |
+ |
|| s.contains("max-height:0")
|
|
149 |
+ |
|| s.contains("max-height: 0")
|
|
150 |
+ |
{
|
|
151 |
+ |
return true;
|
|
152 |
+ |
}
|
|
153 |
+ |
}
|
|
154 |
+ |
false
|
|
155 |
+ |
}
|
|
156 |
+ |
|
| 131 |
157 |
|
#[cfg(test)]
|
| 132 |
158 |
|
mod tests {
|
| 133 |
159 |
|
use super::*;
|
| 371 |
397 |
|
}
|
| 372 |
398 |
|
}
|
| 373 |
399 |
|
|
| 374 |
|
- |
/// Check if an element is hidden via inline style.
|
| 375 |
|
- |
///
|
| 376 |
|
- |
/// Catches display:none, visibility:hidden, and spacer tricks
|
| 377 |
|
- |
/// like font-size:0 or line-height:0 (commonly used in email templates).
|
| 378 |
|
- |
pub fn is_hidden(el: &Element) -> bool {
|
| 379 |
|
- |
if let Some(style) = el.attr("style") {
|
| 380 |
|
- |
let s = style.to_lowercase();
|
| 381 |
|
- |
if s.contains("display:none")
|
| 382 |
|
- |
|| s.contains("display: none")
|
| 383 |
|
- |
|| s.contains("visibility:hidden")
|
| 384 |
|
- |
|| s.contains("visibility: hidden")
|
| 385 |
|
- |
|| s.contains("font-size:0")
|
| 386 |
|
- |
|| s.contains("font-size: 0")
|
| 387 |
|
- |
|| s.contains("line-height:0")
|
| 388 |
|
- |
|| s.contains("line-height: 0")
|
| 389 |
|
- |
|| (s.contains("height:0") && s.contains("overflow:hidden"))
|
| 390 |
|
- |
|| (s.contains("height: 0") && s.contains("overflow: hidden"))
|
| 391 |
|
- |
|| s.contains("max-height:0")
|
| 392 |
|
- |
|| s.contains("max-height: 0")
|
| 393 |
|
- |
{
|
| 394 |
|
- |
return true;
|
| 395 |
|
- |
}
|
| 396 |
|
- |
}
|
| 397 |
|
- |
false
|
| 398 |
|
- |
}
|
| 399 |
|
- |
|