- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
理想情况下,这将仅使用 HTML/CSS 完成,但我理解这是否不可行。
我在我的页面上使用标签式窗口,例如 this .这(目前)通常通过让每个选项卡成为可以“检查”的输入来完成。
<input checked="checked" type="radio" id="tab 1">
现在在我的页面上,顶部还有一个指向 anchor 的目录。
<li>
<input checked="checked" type="radio" id="tab1">
<label class="tab1-label">Tab 1</label>
<div id="tab1-content">
<p>This is the content of tab 1.</p>
</div>
</li>
<li>
<input type="radio" id="tab2">
<label class="tab2-label">Tab 2</label>
<div id="tab2-content">
<p>This is the content of tab 2.</p>
</div>
</li>
<li>
<input type="radio" id="tab3">
<label class="tab3-label">Tab 3</label>
<div id="tab3-content">
<p>This is the content of tab 3.</p>
</div>
</li>
有没有办法让我从本页顶部的目录链接并跳转到选项卡并在此过程中激活它(将其标记为选中)?我会想象这样的事情:
<a href="#tab2-anchor">Link to Tab 2</a>
可以跳到这个:
<a name="tab2-anchor"><input type="radio" id="tab2"></a>
但是它如何将输入切换为选中状态?也许可能需要一些 javascript 来添加/删除它。所以从这里:
<input checked="checked" type="radio" id="tab1">
<input type="radio" id="tab2">
<input type="radio" id="tab3">
对此:
<input type="radio" id="tab1">
<input checked="checked" type="radio" id="tab2">
<input type="radio" id="tab3">
我也愿意使用输入/ radio 以外的东西来构建这些选项卡,如果这样可以更轻松地链接到所述选项卡。
/* Component Needs */
.pc-tab input,
.pc-tab .tab_content > div {
display: none;
}
#tab1:checked ~ .tab_container .tab1,
#tab2:checked ~ .tab_container .tab2,
#tab3:checked ~ .tab_container .tab3,
#tab4:checked ~ .tab_container .tab4{
display: block;
}
#tab1:checked ~ .tabs nav .tab1,
#tab2:checked ~ .tabs nav .tab2,
#tab3:checked ~ .tabs nav .tab3,
#tab4:checked ~ .tabs nav .tab4{
color: orange;
}
/* Visual Styles */
$activeColor: transparent; /* #ffffff */
$unactiveColor: #eeeeee;
$unactiveHoverColor: red; /* #dddddd */
$offsetHeight: 50px;
*, *:after, *:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.tab_content div {
box-sizing: border-box;
}
body {
background: #ecf0f1;
}
h1 {
text-align: center;
font-weight: 100;
font-size: 60px;
color: #e74c3c;
}
.pc-tab {
width: 100%;
max-width: 700px;
margin: 0 auto;
}
.pc-tab .tabs ul {
list-style: none;
margin: 0;
padding: 0;
}
.pc-tab .tabs ul li label {
font-family: "Raleway";
float: left;
padding: 15px 25px;
border: 1px solid #ddd;
border-bottom: 0;
background: /* $unactiveColor */ #eeeeee;
color: #444;
}
.pc-tab .tabs ul li label:hover {
background: /* $unactiveHoverColor */ red;
}
.pc-tab .tabs ul li label:active {
background: /* $activeColor */ transparent;
}
.pc-tab .tabs ul li:not(:last-child) label {
border-right-width: 0;
}
.tab_content {
font-family: "Droid Serif";
clear: both;
}
.tab_content div {
padding-top: calc(20px + /* #{$offsetHeight} */ 50px);
padding-right: 20px;
padding-left: 20px;
padding-bottom: 20px;
width: 100%;
border: 1px solid #ddd;
/* background: #fff; */
line-height: 1.5em;
letter-spacing: 0.3px;
color: #444;
}
.tab_content div h2 {
margin: 0;
font-family: "Raleway";
letter-spacing: 1px;
color: #34495e;
}
#tab1:checked ~ .tabs nav .tab1 label,
#tab2:checked ~ .tabs nav .tab2 label,
#tab3:checked ~ .tabs nav .tab3 label,
#tab4:checked ~ .tabs nav .tab4 label {
background: transparent;
color: #111;
position: relative;
}
#tab1:checked ~ .tabs nav .tab1 label:after,
#tab2:checked ~ .tabs nav .tab2 label:after,
#tab3:checked ~ .tabs nav .tab3 label:after,
#tab4:checked ~ .tabs nav .tab4 label:after {
content: '';
display: block;
position: absolute;
height: 2px;
width: 100%;
background: $activeColor;
left: 0;
bottom: -1px;
}
label {
width: calc(100% / 4);
box-sizing: border-box;
text-align: center;
height: /* $offsetHeight */ 50px;
}
.tab_content .tab1 {
background-color: pink;
}
.tab_content .tab2 {
background-color: lightblue;
}
.tab_content .tab3 {
background-color: lightyellow;
}
.tab_content .tab4 {
background-color: lightgreen;
}
.tabs {
height: 100%;
display: table;
width: 100%;
margin-bottom: -50px; /*-$offsetHeight */
position: relative;
}
.tab_container {
width: 100%;
height: 0;
padding-bottom: 50%;
position: relative;
z-index: -1;
}
.tab_content {
position: absolute;
height: 100%;
width: 100%;
}
.tab_content div {
height: 100%;
}
<div style="width: 700px; margin: 0 auto;">
<ul>
<li><a href="">Link to First Tab</a></li>
<li><a href="">Link to Second Tab</a></li>
<li><a href="">Link to Third Tab</a></li>
<li><a href="">Link to Fourth Tab</a></li>
</uL>
</div>
<div style="height:300px;"></div>
<!--
ORIGINAL BY RENA.TO
https://codepen.io/renatorib/pen/rlpfj
-->
<div class="pc-tab">
<input checked="checked" id="tab1" type="radio" name="pct" />
<input id="tab2" type="radio" name="pct" />
<input id="tab3" type="radio" name="pct" />
<input id="tab4" type="radio" name="pct" />
<div class="tabs">
<nav>
<ul>
<li class="tab1">
<label for="tab1">First Tab</label>
</li>
<li class="tab2">
<label for="tab2">Second Tab</label>
</li>
<li class="tab3">
<label for="tab3">Third Tab</label>
</li>
<li class="tab4">
<label for="tab4">Fourth Tab</label>
</li>
</ul>
</nav>
</div>
<div class="tab_container">
<div class="tab_content">
<div class="tab1">
<p class="title>">First</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus itaque quidem minus nostrum, voluptatem accusamus aspernatur quia harum ratione, officia laudantium inventore autem doloribus atque labore numquam non. Hic, animi.</p>
</div>
<div class="tab2">
<p class="title>">Second</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum nesciunt ipsum dolore error repellendus officiis aliquid a, vitae reprehenderit, accusantium vero, ad. Obcaecati numquam sapiente cupiditate. Praesentium eaque, quae error!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis, maiores.</p>
</div>
<div class="tab3">
<p class="title>">Third</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<div class="tab4">
<h2>Fourth</h2>
<p> afdadfadfadfad Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio, nobis culpa rem, vitae earum aliquid.</p>
</div>
</div>
</div>
</div>
<div style="height:1000px;"></div>
最佳答案
您可以使用更少的 javascript 来实现这一点。添加 label
在你的链接里面。并在您的标签中添加另一个 id。我添加了 id="tab1_content"
例如。然后你应该在点击标签时触发你的链接上的点击事件。
document.querySelectorAll("label").forEach(p => {
p.addEventListener("click", () => {
event.target.parentElement.click();
});
});
/* Component Needs */
a label {
cursor: pointer;
}
.pc-tab input,
.pc-tab .tab_content>div {
display: none;
}
#tab1:checked~.tab_container .tab1,
#tab2:checked~.tab_container .tab2,
#tab3:checked~.tab_container .tab3,
#tab4:checked~.tab_container .tab4 {
display: block;
}
#tab1:checked~.tabs nav .tab1,
#tab2:checked~.tabs nav .tab2,
#tab3:checked~.tabs nav .tab3,
#tab4:checked~.tabs nav .tab4 {
color: orange;
}
/* Visual Styles */
$activeColor: transparent;
/* #ffffff */
$unactiveColor: #eeeeee;
$unactiveHoverColor: red;
/* #dddddd */
$offsetHeight: 50px;
*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.tab_content div {
box-sizing: border-box;
}
body {
background: #ecf0f1;
}
h1 {
text-align: center;
font-weight: 100;
font-size: 60px;
color: #e74c3c;
}
.pc-tab {
width: 100%;
max-width: 700px;
margin: 0 auto;
}
.pc-tab .tabs ul {
list-style: none;
margin: 0;
padding: 0;
}
.pc-tab .tabs ul li label {
font-family: "Raleway";
float: left;
padding: 15px 25px;
border: 1px solid #ddd;
border-bottom: 0;
background: /* $unactiveColor */
#eeeeee;
color: #444;
}
.pc-tab .tabs ul li label:hover {
background: /* $unactiveHoverColor */
red;
}
.pc-tab .tabs ul li label:active {
background: /* $activeColor */
transparent;
}
.pc-tab .tabs ul li:not(:last-child) label {
border-right-width: 0;
}
.tab_content {
font-family: "Droid Serif";
clear: both;
}
.tab_content div {
padding-top: calc(20px +/* #{$offsetHeight} */
50px);
padding-right: 20px;
padding-left: 20px;
padding-bottom: 20px;
width: 100%;
border: 1px solid #ddd;
/* background: #fff; */
line-height: 1.5em;
letter-spacing: 0.3px;
color: #444;
}
.tab_content div h2 {
margin: 0;
font-family: "Raleway";
letter-spacing: 1px;
color: #34495e;
}
#tab1:checked~.tabs nav .tab1 label,
#tab2:checked~.tabs nav .tab2 label,
#tab3:checked~.tabs nav .tab3 label,
#tab4:checked~.tabs nav .tab4 label {
background: transparent;
color: #111;
position: relative;
}
#tab1:checked~.tabs nav .tab1 label:after,
#tab2:checked~.tabs nav .tab2 label:after,
#tab3:checked~.tabs nav .tab3 label:after,
#tab4:checked~.tabs nav .tab4 label:after {
content: '';
display: block;
position: absolute;
height: 2px;
width: 100%;
background: $activeColor;
left: 0;
bottom: -1px;
}
label {
width: calc(100% / 4);
box-sizing: border-box;
text-align: center;
height: /* $offsetHeight */
50px;
}
.tab_content .tab1 {
background-color: pink;
}
.tab_content .tab2 {
background-color: lightblue;
}
.tab_content .tab3 {
background-color: lightyellow;
}
.tab_content .tab4 {
background-color: lightgreen;
}
.tabs {
height: 100%;
display: table;
width: 100%;
margin-bottom: -50px;
/*-$offsetHeight */
position: relative;
}
.tab_container {
width: 100%;
height: 0;
padding-bottom: 50%;
position: relative;
z-index: -1;
}
.tab_content {
position: absolute;
height: 100%;
width: 100%;
}
.tab_content div {
height: 100%;
}
<div style="width: 700px; margin: 0 auto;">
<ul>
<li><a href="#tab1_content"><label for="tab1">Link to First Tab</label></a></li>
<li><a href="#tab2_content"><label for="tab2">Link to Second Tab</label></a></li>
<li><a href="#tab3_content"><label for="tab3">Link to Third Tab</label></a></li>
<li><a href="#tab4_content"><label for="tab4">Link to Fourth Tab</label></a></li>
</ul>
</div>
<div style="height:300px;"></div>
<!--
ORIGINAL BY RENA.TO
https://codepen.io/renatorib/pen/rlpfj
-->
<div class="pc-tab">
<input checked="checked" id="tab1" type="radio" name="pct" />
<input id="tab2" type="radio" name="pct" />
<input id="tab3" type="radio" name="pct" />
<input id="tab4" type="radio" name="pct" />
<div class="tabs">
<nav>
<ul>
<li class="tab1">
<label for="tab1" id="tab1_content">First Tab</label>
</li>
<li class="tab2">
<label for="tab2" id="tab2_content">Second Tab</label>
</li>
<li class="tab3">
<label for="tab3" id="tab3_content">Third Tab</label>
</li>
<li class="tab4">
<label for="tab4" id="tab4_content">Fourth Tab</label>
</li>
</ul>
</nav>
</div>
<div class="tab_container">
<div class="tab_content">
<div class="tab1">
<p class="title>">First</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus itaque quidem minus nostrum, voluptatem accusamus aspernatur quia harum ratione, officia laudantium inventore autem doloribus atque labore numquam non. Hic, animi.</p>
</div>
<div class="tab2">
<p class="title>">Second</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum nesciunt ipsum dolore error repellendus officiis aliquid a, vitae reprehenderit, accusantium vero, ad. Obcaecati numquam sapiente cupiditate. Praesentium eaque, quae error!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis, maiores.</p>
</div>
<div class="tab3" id="tab3_content">
<p class="title>">Third</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<div class="tab4" id="tab4_content">
<h2>Fourth</h2>
<p> afdadfadfadfad Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio, nobis culpa rem, vitae earum aliquid.</p>
</div>
</div>
</div>
</div>
<div style="height:1000px;"></div>
关于javascript - 试图将链接锚定到选项卡。如何让链接跳转到输入 anchor 并将其标记为已选中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63311267/
我有两个函数,在 C++ 中看起来像这样: void f1(...); void f2(...); 我可以更改 f1 的主体,但是 f2 是在另一个我无法更改的库中定义的。我绝对必须(尾部)在f1 中
我正在尝试避免这个 while 循环出了什么问题 while True: start = input("Ok, are you ready now?\n") if (start !=
当我点击按钮加载页面时,它加载正常。调整浏览器大小后,此页面会不断刷新。我复制了布局页面的一部分,用于处理按钮。如果我遗漏了什么,你能告诉我吗? Statistics 最佳答案 确保没有在“调
PHP的header函数 可以很少代码就能实现HTML代码中META 标签 这里只说用 header函数来做页面的跳转 1. HTML代码中页面的跳转的代码 HTML meta refresh 刷
我使用并喜欢 Tim Pope's excellent Fugitive plugin for VIM ,我一直希望能够加载 :Glog quickfix 中所有文件的差异,并通过它们循环到 HEAD
当我访问 my_site.com/page.php#something 时,滚动位置是携带此特定主题标签的元素之一,而不是页面顶部。 执行 window.scrollTo(0, 0); 不会改变这一事
在我自己的一个应用程序中看到这一点后,我构建了一个测试应用程序。 我在导航 Controller 中嵌入了一个集合 View 。 这一切都链接到 ViewController 类。 class Vie
在我们的应用程序中,当其中一个 View 被推送到导航 Controller 时,导航栏会显示 5 秒,然后我们将 navigationBarHidden 设置为 TRUE。稍后,如果用户点击屏幕,我
我必须更新滚动 UITextView 中的少量文本。我只会在光标当前所在的位置插入一个字符,并且只需按一下导航栏上的按钮即可执行此操作。 我的问题是,每当我调用 TextView 的setText方法
我正在使用第三方脚本(详细信息如下)将表单分解为多个 ajax 页面。当我单击前进到下一页时,它会跳转到表单顶部的 anchor 。这是一种不必要且不和谐的行为,我想阻止它发生。这个脚本不是我写的,不
这个问题已经有答案了: Call an absolute pointer in x86 machine code (2 个回答) 已关闭 4 年前。 我正在用 C 语言为 x86_64 linux 编
查看objdump -d ELFfile的输出,我无法区分直接和间接跳转/调用。有什么建议吗? 最佳答案 间接调用和跳转有*在指令之后和位置之前,如callq *%r13和jmpq *0x204d8a
我试图通过单击 anchor 链接来突出显示 div。我的意思是如果我点击My link 然后滚动到 here在此页面上,我有很多 anchor 链接和 div,因此很难识别哪个 div 然后滚动,因
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
没有任何编程经验,只有基本的 html/css。我正在尝试创建一个 javascript 菜单(如果有更简单的方法,可以接受建议吗?),它将根据第一个菜单中选择的选项显示/隐藏?我有以下... Q
我正在使用 jquery 的 scrollTop 函数,但无法弄清楚为什么在同一项目上多次调用时它会跳来跳去。 我把这个 example 放在一起了来说明问题。单击测试按钮时,它会交替滚动到指定的项目
我已经创建了一个关于 Storyboard的项目, Storyboard上有两个名为“loginViewController”、“BViewController”的 View Controller ,
基本上,我在网站的最顶部有一个我想隐藏的 div,当您单击一个按钮时,它会将整个网站向下推并显示其内容。与此非常相似 nd.edu (单击标题右侧的帮助中心或白杨站点)。我正在使用 jquery 来完
当我单击所单击的 div 旁边的 div 框时,我的底部 div 会上下跳跃 这是 fiddle 的链接 http://jsfiddle.net/abtPH/17/ 这是我的jquery $('li
我在悬停时调整 .main-partners div 中卡片的大小,以便出现 查看更多 按钮。 我的问题是当我 :hover 在 .main-partners 中的卡片 (.main-card) 上时
我是一名优秀的程序员,十分优秀!