Is there any way I can disable all external CSS in a browser (Firefox, Chrome...)?
When using slower internet connection, sometimes only the bare HTML is loaded by t
you can block any request (even for a single css file) from inspector with the following:
Right click > block request URL
without disabling other css files > https://umaar.com/dev-tips/68-block-requests/
It's a standard inspector feature, no plugins or tricks needed
I tried in Chrome Developer tools and the method is valid only if the CSS are included as external files and it won't work for inline styles.
Array.prototype.forEach.call(document.querySelectorAll('link'), (element)=>element.remove());
Or
var linkElements = document.querySelectorAll('link');
Array.prototype.forEach.call(linkElements, (element)=>element.remove());
Explanations
document.querySelectorAll('link')
gets all the link nodes. This will return array of DOM elements. Note that this is not Array object of javascript. Array.prototype.forEach.call(linkElements
loops through the link elements element.remove()
removes the element from the DOMResulting in plain HTML page
For those who don't want any plugin or other stuffs, We can use the document.styleSheets to disable/enable the css.
// code to disable all the css
for (const item in document.styleSheets) {
document.styleSheets[item].disabled=false;
}
If you use chrome, you can create a function and add to your snippets. So that you can use the console to enable/disable the css for any sites.
// Snippets -> DisableCSS
function disableCss(value = true){
for (const item in document.styleSheets) {
document.styleSheets[item].disabled=value;
}
}
// in console
disableCss() // by default is disable
disableCss(false) // to enable
For pages that rely on external CSS (most pages nowadays) a simple and reliable solution is to kill the head
element:
document.querySelector("head").remove();
Right-click this page (in Chrome/Firefox), select Inspect, paste the code in the devtools console and press Enter.
A bookmarklet version of the same code that you can paste as the URL of a bookmark:
javascript:(function(){document.querySelector("head").remove();})()
Now clicking the bookmark on in your Favorites bar will show the page without any css stylesheets.
Removing the head will not work for pages that use inline styles.
If you happen to use Safari on MacOS then:
Another way to achieve @David Baucum's solution in fewer steps:
It could be handier in some cases.
Expanding on scrappedocola/renergy's idea, you can turn the JavaScript into a bookmarklet that executes against the javascript:
uri so the code can be re-used easily across multiple pages without having to open up the dev tools or keep anything on your clipboard.
Just run the following snippet and drag the link to your bookmarks/favorites bar:
<a href="javascript: var el = document.querySelectorAll('style,link');
for (var i=0; i<el.length; i++) {
el[i].parentNode.removeChild(el[i]);
};">
Remove Styles
</a>
getElementsByTagName('*')
and have to check and act on each individually.$('style,link[rel="stylesheet"]').remove()
when the extra javascript is not overwhelmingly cumbersome.