What's the difference if I put css file inside head or body?
Just to add on to what jdelStrother has mentioned about w3 specs and ARTstudio about browser rendering.
It is recommended because when you have the CSS declared before <body>
starts, your styles has actually loaded already. So very quickly users see something appear on their screen (e.g. background colors). If not, users see blank screen for some time before the CSS reaches the user.
Also, if you leave the styles somewhere in the <body>
, the browser has to re-render the page (new and old when loading) when the styles declared has been parsed.
Is it appropriate to place a stylesheet within the body tag
you shouldn't place styles within the body tag, but assuming you're using a server side script (PHP?) to link both header and content, why not write your own class to generate your pages; you could have a method that add styles to the header, and one that outputs the page for instance.
What's the difference if I put css file inside head or body?
Just to add on to what jdelStrother has mentioned about w3 specs and ARTstudio about browser rendering.
It is recommended because when you have the CSS declared before <body>
starts, your styles has actually loaded already. So very quickly users see something appear on their screen (e.g. background colors). If not, users see blank screen for some time before the CSS reaches the user.
Also, if you leave the styles somewhere in the <body>
, the browser has to re-render the page (new and old when loading) when the styles declared has been parsed.
Is body of a document right place for CSS?
Even though most (if not all) browsers allow the style
element as a descendant of body
, it is invalid HTML.
The style
element is "Metadata content": http://www.w3.org/TR/html5/document-metadata.html#the-style-element
The body
element should contain only "Flow content": http://www.w3.org/TR/html5/sections.html#the-body-element
What's the difference between HTML head and body tags?
Generally javascript code will function in the head before code in the body. The head section is usually used to contain information about the page that you dont neccessarily see like the meta keywords meta description or title of a page. You would also link to any external files like .css .js files in the head section as they need to load before the page is displayed.
Anything in the body section is what you would expect to be see on screen.
Is it correct to use the style tag outside of the head element?
style is supposed to be included only on the head of the document.
Besides the validation point, one caveat that might interest you when using style on the body is the flash of unstyled content. The browser would get elements that would be styled after they are displayed, making them shift on size/shape/font and/or flicker. It is generally a sign of bad craftsmanship. Generally you can get away with putting style anywhere you want, but try to avoid it whenever it is possible.
HTML 5 introduced a scoped attribute that allowed style tags to be included everywhere in the body, but then they removed it again.
According to the W3 specs, <link>
tags are only supposed to go in the <head>
section:
References
For HTML 4.01: http://www.w3.org/TR/html401/struct/links.html#edef-LINK
For HTML5: http://www.w3.org/TR/html5/document-metadata.html#the-link-element
Validation Issues
If you put a tag within the body of the HTML document, it will not validate using validate.w3.org
Related Topics
Should I Put Input Elements Inside a Label Element
How to Add a Custom Attribute to an HTML Tag
What to Use in Place of ::Ng-Deep
Curve Bottom Side of the Div to the Inside With Css
Multiple Lines of Input in ≪Input Type="Text" /≫
Vertically Center Two Elements Within a Div
How to Disable the Resizable Property of a Textarea
How to Set Tbody Height With Overflow Scroll
Float:Left; VS Display:Inline; VS Display:Inline-Block; VS Display:Table-Cell;
Keep the Middle Item Centered When Side Items Have Different Widths
How to Style Even and Odd Elements
Put Icon Inside Input Element in a Form
Equal Height Rows in a Flex Container
Nesting Block Level Elements Inside the ≪P≫ Tag... Right or Wrong