I am currently hiding a div based on an if statement. The method I use is, use echo
out a css
style of display: none
Here is what I am doing specifically:
<style>
#content{
<?php
if(condition){
echo 'display:none';
}
?>
}
</style>
<body>
<div id="content">
Foo bar
</div>
</body>
My question being, Is this a good method for a hiding a div? Is it possible that browser cache the style and therefore ignore the echo
-ed out css
style?
Using Php in your CSS (Cascade Style Sheet) is not "proper",
Also, You can use Php in your HTML:
With this code, div block don't appear, (and you don't use it with JavaScript), You can use this for just hidden your div :
That would not be the best way to hide a div. Since PHP is parsed server-side, you might as well have the if statement include or exclude the div instead of echoing a CSS class. The only time that would be useful with a CSS class is if you plan to use JavaScript to show the div on the page later on, while the user is on the page itself.
You could:
or
Most people would use javascript
Heres a previous thread that will help you out:
Javascript if else statement to hide and show div
Yes, that is the standard way of hiding a div. With regard to the browser cache, it shouldn't cache this as it isn't in an external stylesheet.
I generally try to avoid using PHP Conditionals inside of CSS; especially inline CSS (CSS that is on the same page).
I would keep your CSS in its own CSS file and use the PHP conditional to either add a "hide" class to the DIV -OR- not echo the DIV at all.
or alternatively
or
Many times the div needs to be outputted so it can be re-displayed using JavaScript (e.g. carousels, sliders, etc.)
Why not create a class:
And than apply it with PHP: