Avoid CSS limits
User guide
- Getting Started
Api
Concepts
Configurations
Configuring webhint
Connectors
Development flow integration
Extensions
Formatters
Hints
- Avoid CSS limits
- Avoid HTTP redirects
- axe accessibility check
- Babel configuration hint set
- Compatibility of CSS, HTML and JavaScript features
- Correct `Content-Type` header
- Correct manifest extension
- Correct viewport
- Detect CSS Reflows
- Disallowed HTTP headers
- External links disown opener
- Has web app manifest
- Highest document mode
- HTTP cache
- Leading '.' in `classList.add` or `classList.remove`
- Manifest has name
- Minify JavaScript
- Modern DOCTYPE
- No `createElement` with SVG
- No `P3P` headers
- No broken links
- No byte-order mark
- No Inline CSS Styles
- No protocol-relative URLs
- No small error pages
- No vulnerable libraries
- Nu HTML test
- Optimal compression
- Optimize images
- Performance budget
- Prefixed CSS first
- scoped-svg-styles
- Specify button type
- SSL server test
- TypeScript configuration hints set
- Unneeded HTTP headers
- Use `Strict-Transport-Security` header
- Use `X-Content-Type-Options` header
- Use Apple touch icon
- Use charset `utf-8`
- Use HTTPS
- Use subresource integrity
- Valid `Set-Cookie` header
- Valid `theme-color`
- Valid manifest
- webpack configuration hints set
Parsers
Server configurations
Troubleshoot
- Api
- Concepts
- Configurations
- Configuring webhint
- Connectors
- Development flow integration
- Extensions
- Formatters
- Hints
- Parsers
- Server configurations
- Troubleshoot
Avoid CSS limits (stylesheet-limits
)
stylesheet-limits
checks if CSS exceeds known stylesheet limits.
Why is this important?
Internet Explorer 9 and below have limits on the number of CSS stylesheets, imports, and rules which are relatively small compared to modern browsers. Once these limits are exceeded, additional stylesheets, imports, and rules are ignored. For more details see “Stylesheet limits in Internet Explorer”.
Similar behavior existed in older versions of other browsers, such as Chrome. Newer browsers have much higher limits such as 65535 rules in Internet Explorer 10+ and Edge.
Even in modern browsers large numbers of CSS selectors can negatively impact performance. You can customize this hint and set appropriate limits for your project or team.
What does the hint check?
When targeting versions of Internet Explorer 9 and below, this hint checks if one of the following limits is exceeded:
- 4095 rules
- 31 stylesheets
- 4 levels of imports
Examples that trigger the hint
- A page targeting Internet Explorer 9 containing 4096 or more CSS rules.
Examples that pass the hint
- A page targeting Internet Explorer 9 with fewer than 4096 CSS rules.
- A page not targeting Internet Explorer 9 or below regardless of the number of CSS rules.
Can the hint be configured?
You can overwrite the defaults by specifying custom values for the number of CSS rules to allow. Note that if the custom values are above the default values, the default values will still be used.
In the .hintrc
file:
{
"connector": {...},
"formatters": [...],
"hints": {
"stylesheet-limit": ["error", {
"maxRules": 1000,
"maxSheets": 10,
"maxImports": 2
}],
...
},
...
} |
How to use this hint?
This package is installed automatically by webhint:
npm install hint --save-dev |
To use it, activate it via the .hintrc
configuration file:
{
"connector": {...},
"formatters": [...],
"hints": {
"stylesheet-limits": "error",
...
},
"parsers": [...],
...
} |
Note: The recommended way of running webhint is as a devDependency
of
your project.