我有一个字体很棒的div浮动在我的图像上,提供从mysql数据库中提取的图像细节。
当我将鼠标悬停在这个(info)字体真棒图标上时,会打开一个带有mysql内容的小内联。
现在当内容为NULL时,我不希望字体真棒出现。
以下是我的代码。
<div id="hotspot1" class="hotspot" style = "position: fixed;">
<i class="fa fa-info-circle" style="font-size:48px;color:cyan"></i>
<div class="hover-popup well">
<?php
if ($details == null) {
echo "class='display-none';";
}
else {
echo $details;
}
?>
</div>
</div>
这个悬停弹出的CSS是
#hotspot1 {
right:93%;
top:3%;
}
.hotspot {
line-height:20px;
text-align:center;
position:absolute;
cursor: pointer;
}
.hotspot .text {
width:80px;
height:20px;
}
.hover-popup {
display:none;
z-index:auto;
}
.hotspot:hover .hover-popup {
display:inline;
position:absolute;
left:100%;
top:0;
width:300px;
height: auto;
border:2px solid #000;
margin: 20px;
padding: 20px;
font-size: 16px;
background: #FBF0D9;
font-style: oblique;
.display-none {
display:none;
}
现在,当存在空值时,它实际上显示“class ='display-none'”
在空值时,我该怎么做才能完全消除图标?
我应该使用JS还是JQuery?
答案 0 :(得分:2)
class属性需要位于它应用的元素内部,您当前echo
在任何元素之外,这就是您在页面上看到它的原因。
我无法确定您正在尝试实现的目标,但似乎您希望在$details
不是null
时显示某些特定的HTML。
至少应该给你一些线索,
<div id="hotspot1" class="hotspot" style="position: fixed;">
<?php if ($details != null): ?>
<i class="fa fa-info-circle" style="font-size:48px;color:cyan"></i>
<div class="hover-popup well">
<?= $details; ?>
</div>
<?php endif; ?>
</div>
在上面的代码中,如果$details
不是null
,那么将输出PHP块之间的HTML,否则不会。您可能希望将所有HTML放在PHP块之间。
答案 1 :(得分:1)
你用上面的符号混淆了风格和类别,也许这样的事情会更好吗?
<div id="hotspot1" class="hotspot" style = "position: fixed;">
<i class="fa fa-info-circle" style="font-size:48px;color:cyan"></i>
<?php
$style=is_null( $details ) ? "style='display:none'" : "";
?>
<div class="hover-popup well" <?php echo $style;?> >
</div>
</div>
或者,不是添加内联样式,而是按照您最初尝试的方式分配一个类,而不是在某个地方定义css中的类。然后你可以使用类似的表示法,但引用该类 - 比如:
<style>.dispnone{ display:none; }</style>
<?php
$class=is_null( $details ) ? "class='dispnone'" : "";
?>
<div class="hover-popup well" <?php echo $class;?> >