Css 选择非';t:目标选择器?

Css 选择非';t:目标选择器?,css,css-selectors,target,Css,Css Selectors,Target,我正在尝试使用一个XML、一个XSLT和一个CSS创建一个简单的博客风格的网站。 为此,我希望可以选择只查看xml中的一个条目,并且不使用javascript或php。 我正试图使用:目标选择器来实现这一点 我希望达到的行为是: html应该显示所有内容 index.html#只能显示id=“one”的条目 html#two应该只显示id=“two”的条目 等等 我已经找到了显示最后一个兄弟姐妹的解决方案,但是这不适合。我的xslt将条目转换为表,我看不出如何动态解析xml以适应该解决方案

我正在尝试使用一个XML、一个XSLT和一个CSS创建一个简单的博客风格的网站。 为此,我希望可以选择只查看xml中的一个条目,并且不使用javascript或php。 我正试图使用:目标选择器来实现这一点

我希望达到的行为是:

  • html应该显示所有内容
  • index.html#只能显示id=“one”的条目
  • html#two应该只显示id=“two”的条目
等等

我已经找到了显示最后一个兄弟姐妹的解决方案,但是这不适合。我的xslt将条目转换为表,我看不出如何动态解析xml以适应该解决方案


有没有办法用css实现这一点,或者我应该开始学习php吗?

这应该是一个非此即彼的命题。。。学习PHP。这将使你受益

但是对于一个仅使用CSS的解决方案(使用一点.htaccess魔法),您可以将index.html重写为index.html#all,将包装div设置为具有all的ID(或任何包装器ID),然后将:target CSS for#all设置为显示所有内容

#all .YouWantToHide {
    display:none;
}

#all:target .YouWantToHide, #one:target, #two:target {
    display:block;
}

默认情况下,这将隐藏普通页面上的所有内容(该页面永远不会被访问,它只是为要显示的特定项目和稍后要隐藏的其他项目设置基调),在#all目标(现在是默认页面)上显示,并且特定项目将根据需要显示,而其他项目将隐藏。

并将.htaccess重定向到index.hml#all?我已经设法做到了,但是没有htaccess,它隐藏了url中没有目标的所有内容。我会调查htaccess,并尝试一下,谢谢!是的,如果没有htaccess重写,它将无法工作。不过,一旦设置好了,应该会很顺利。我尝试了一个简单的(据我所知)“redirect/index.htm/index.htm#all”,但这给了我500个内部服务器错误。尝试将权限更改为0644,但没有帮助。任何提示都将非常感谢:D(主机是奖励空间)。对不起,我应该知道得更清楚。。。hashtag是客户端的,而不是服务器端的。您甚至需要使用javascript来实现我提出的解决方案:(
.entry:not(:target)
试图绞尽脑汁研究如何使用:not选择器,但我似乎找不到正确的方法。我希望选择div:target+div:not(:target)(选择所有不是目标的兄弟div),但是它只选择后面的div,而不是前面的div。如果这样做有意义:将类添加到div中,然后不是按元素名,而是按类名选择。是的,CSS中没有“前一个同级”选择器。