Hiding a Div using php

允我心安 提交于 2020-01-01 10:28:52

问题


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?


回答1:


Using Php in your CSS (Cascade Style Sheet) is not "proper",

Also, You can use Php in your HTML:

<body>
    <?php if (condition){ ?>
        <div id="content">
           Foo bar
        </div>
    <?php } ?>
</body>

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 :

 <body>
    <div id="content" <?php if (condition){ echo 'style="display:none;"'; } ?>>
       Foo bar
    </div>
</body>



回答2:


Why not create a class:

<style>
    .hidden {
        display: none;
    }
</style>

And than apply it with PHP:

<div id="content" <?php print ( condition ? 'class="hidden"' : '' ); ?> >



回答3:


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.




回答4:


You could:

<div runat="server" id="theDiv"> 

Code behind is
{
theDiv.Visible = False;
}

or

Most people would use javascript

Heres a previous thread that will help you out:

Javascript if else statement to hide and show div




回答5:


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.




回答6:


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.

<link rel="stylesheet" type="text/css" href="style.css" />
<body>
    <div id="content" <?php if(conditional) : ?>class="hide"<?php endif;?>>
       Foo bar
    </div>
</body>

or alternatively

<?php $class = (conditional) ? "hide" : ""; ?>

<link rel="stylesheet" type="text/css" href="style.css" />
<body>

    <div id="content" class="<?=$class?>">
       Foo bar
    </div>
</body>

or

<link rel="stylesheet" type="text/css" href="style.css" />
<body>

    <?php if (conditional) : ?>
    <div id="content">
       Foo bar
    </div>
    <?php endif; ?>
</body>

Many times the div needs to be outputted so it can be re-displayed using JavaScript (e.g. carousels, sliders, etc.)



来源:https://stackoverflow.com/questions/11855535/hiding-a-div-using-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!