You can use display:block to show elements that normally wouldn't.
Browsers simply apply the following rule to hide unnecessary tags
head, title, link, meta, style, script {
display: none;
}
But you can override it just like any other CSS. It even works on elements that are not even on the body, but the head, such as titles, metas, etc
head, title, link[href][rel], meta, style, script {
display: block;
}
And even use some pseudo-elements magic to show attributes of tags such as the rel for your CSS link tag, or the content for your description
title, link[href][rel], meta, style, script {
display: block;
}
link[href][rel]::after {
content: attr(rel) ': ' attr(href);
text-transform: capitalize;
}
meta[charset]::after {
content: 'Charset: ' attr(charset);
}
meta[name][content]::after {
content: attr(name) ': ' attr(content);
text-transform: capitalize;
}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>This is the title</title>
<meta name="description" content="This is the Description">
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<script>/*This is inside an script tag*/</script>
</body>
</html>
And then you can style them as you would any regular html element.
Does this have any practical purpose? Nope, none at all. Maybe (and stretching it quite a bit) displaying the title on a print stylesheet.
Other than that, it's just a pointless fun fact.
<script>tags. Those are used for JavaScript.