我目前正在隐藏基于if语句的div。我使用的方法是echo
使用css
样式的display: none
以下是我正在做的事情:
<style>
#content{
<?php
if(condition){
echo 'display:none';
}
?>
}
</style>
<body>
<div id="content">
Foo bar
</div>
</body>
我的问题是,这是隐藏div的好方法吗?浏览器是否可以缓存样式,因此忽略echo
- ed out css
样式?
答案 0 :(得分:11)
在CSS中使用Php(级联样式表)不是“正确的”,
此外,您可以在HTML中使用Php:
<body>
<?php if (condition){ ?>
<div id="content">
Foo bar
</div>
<?php } ?>
</body>
使用此代码,div块不会出现,(并且您不会将它与JavaScript一起使用),您可以使用它来隐藏您的div:
<body>
<div id="content" <?php if (condition){ echo 'style="display:none;"'; } ?>>
Foo bar
</div>
</body>
答案 1 :(得分:2)
为什么不创建一个类:
<style>
.hidden {
display: none;
}
</style>
而不是用PHP:
<div id="content" <?php print ( condition ? 'class="hidden"' : '' ); ?> >
答案 2 :(得分:1)
这不是隐藏div的最佳方式。由于PHP是在服务器端解析的,因此您可以使用if语句包含或排除div而不是回显CSS类。对CSS类有用的唯一时间是,如果您计划稍后使用JavaScript在页面上显示div,而用户位于页面本身上。
答案 3 :(得分:0)
你可以:
<div runat="server" id="theDiv">
Code behind is
{
theDiv.Visible = False;
}
或
大多数人会使用javascript
这是一个可以帮助你的前一个主题:
答案 4 :(得分:0)
是的,这是隐藏div的标准方法。关于浏览器缓存,它不应该缓存它,因为它不在外部样式表中。
答案 5 :(得分:0)
我通常会尽量避免在CSS中使用PHP Conditionals;特别是内联CSS(同一页面上的CSS)。
我会将CSS保存在自己的CSS文件中,并使用PHP条件向DIV添加“隐藏”类 - 或者根本不回显DIV。
<link rel="stylesheet" type="text/css" href="style.css" />
<body>
<div id="content" <?php if(conditional) : ?>class="hide"<?php endif;?>>
Foo bar
</div>
</body>
或者
<?php $class = (conditional) ? "hide" : ""; ?>
<link rel="stylesheet" type="text/css" href="style.css" />
<body>
<div id="content" class="<?=$class?>">
Foo bar
</div>
</body>
或
<link rel="stylesheet" type="text/css" href="style.css" />
<body>
<?php if (conditional) : ?>
<div id="content">
Foo bar
</div>
<?php endif; ?>
</body>
很多时候需要输出div,所以可以使用JavaScript(例如旋转木马,滑块等)重新显示div。