html - 使用 :target 的 CSS 过渡

标签 html css

我正在尝试建立一个系统,我可以在其中一次控制在屏幕上显示哪个 div。我有两个 div,都应该使用按钮显示; “page1”和“page2”。

我首先为每个 div 指定了一个绝对位置和 100% 的宽度。我使用 CSS 转换将两个 DIV 向后移动了 100%,因此它们不在屏幕上。

然后我想使用 :target 对选定的 div 进行转换。

#page1{
position:absolute;  
text-align:center;
background:blue;
float:left;
width:100%;
transform:translateX(-100%);
}

#page2{
position:absolute;
text-align:center;
background:red;
float:left;
width:100%;
transform:translateX(-100%);
}

:target{
transform:translateX(0);
}

我知道当我在 CSS 中手动将转换设置为 0 时,DIV 会正确显示。发生的事情是,当我单击链接时,没有任何反应。我在这里错过了什么吗?谢谢

完整的 HTML/CSS 文件在这里:

<html>
<head>
<style>
body{
margin:0;
padding:0;
}

.controlBar{
text-align:center;
float:left;
width:100%;
background-color:green;
}

.pageContain{
float:left;
width:100%;
}

#page1{
position:absolute;  
text-align:center;
background:blue;
float:left;
width:100%;
transform:translateX(-100%);
}

#page2{
position:absolute;
text-align:center;
background:red;
float:left;
width:100%;
transform:translateX(-100%);
}

:target{
transform:translateX(0);
}
</style>
</head>
<body>
<div class="controlBar">
    <h1>Control Bar</h1>
    <a href="#page1">Page 1</a>
    <a href="#page2">Page 2</a>
</div>
<div class="pageContain">
    <div id="page1">
            <h1>page 1</h1>
    </div>
    <div id="page2">
        <h1>page 2</h1>
    </div>  
</div>
</body> 
</html>

最佳答案

你的目标 <div> s 需要设置它们的 ID,以便它们实际上是散列链接的目标。

<div class="page1" id="page1">
    </h1>page 1</h1>
</div>

关于html - 使用 :target 的 CSS 过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16823236/

相关文章:

html - border-radius 生成eclipse,需要90度圆 Angular 。 CSS

html - 定位在底部时溢出滚动

php - Wordpress fancybox 插件不工作

html - Chrome 悬停时白色闪烁/闪烁

当父级 <li> 的焦点丢失时,CSS 下拉列表消失

jQuery 损坏的动画 - Div 有时不会消失

css - 输入组插件 : how to align widths

html - float 和错误的父级宽度

html - 单击标题并在不使用 JavaScript/jQuery 的情况下展开文本

html - 如何强制特定子元素在溢出时调整大小?