使用块div和css样式在Drupal中创建智能按钮菜单

时间:2016-01-24 02:27:26

标签: php html css button drupal

您好我一直在尝试在drupal块中创建一个智能按钮菜单集,该菜单会记住点击了哪个按钮(它所在的站点)。出于不重要的原因,它不是一个菜单,它是一个块内项目。我在线创建了以下内容:

<div><a href="site1" class="button" style="width: 110px;">Overview</a></div>
<div><a href="site2" class="button" style="width: 120px;">Instruments</a></div>
<div><a href="site3" class="button" style="width: 110px;">Travel</a></div>

这加上以下css产生了可爱的按钮:

.button {
background-color: #61210b;
color: white;
float:left;
padding: 2px;
border: 2px solid #000000;
border-radius: 5px;
text-shadow: 1px 1px #000000;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
font-family: 'verdana';
margin-bottom: 10px;}

.button:hover {
background-color: green;
color: white;}

.button:focus {
background-color: green;
color: white;}

.button:active {
background-color: green;
color: white;}

所以上面的一切都很棒。但是,绿色活化颜色不会停留。一旦我点击它就会回到之前的状态。我想要它显示&#39;它所使用的页面颜色发生变化,只有当前选择的按钮才会显示绿色。除了那个小问题,我没有做得很好。我已经在网站上阅读了一下,这里有一些不起作用的东西: - &GT;内联php,创建错误链接不可读,如果我用不同的颜色定义一个类,这不起作用:

<a href="site1" class="<?php if(page() == "foobar") echo "selected"; else echo "button" ?>">Overview</a>

什么也行不通的是在<a href ><div>中定义一个额外的类以使其被选中&#39;,如果我使用css文件并且

。选择{颜色:绿色; }    #selected a {color:green:}

我可以永久地将颜色变为绿色,这根本不是我想要的。我之前看过使用列表<li id="selected">来创建菜单的讨论,但这不仅不会给我非常漂亮的按钮,就像我的div格式那样,它也很平常不起作用。请参阅:CSS: How to change colour of active navigation page menu

颜色只是永久变化,我只想在页面=链接页面时改变颜色。由于我使用div这意味着我也不能使用其他伪类选择器技巧,如:target或:root。我有一种感觉php是要走的路,但我不知道为什么它不能从我的drupal盒子项目中读取。它没有html或css内联的问题。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

试试此代码

CSS

.button:active, .button.selected {
  background-color: green;
  color: white;
}

PHP

<a href="site1" class="<?php if(page() == "foobar") echo "selected button"; else echo "button"; ?>">Overview</a>

你写的是要求其他东西...... .selected a定位的是&#34;所选&#34;这是一个锚标签,你的意思是一个锚标签,其选择类= a.selected

答案 1 :(得分:0)

好的,所以我从系统管理员那里得到回复,Drupal安全设置不允许内联php或java脚本。用div语句实际上没有办法做到这一点。唯一的方法是删除所有内容并创建一个新的菜单块类型。在菜单块中,如果使用css

,则psuedo-class:active将保持活动状态
li .active

否则你可以尝试启用php但大多数drupal区域不允许或java脚本(至少它不允许我在哪里)。