javascript - 如何让导航栏根据单击的按钮显示文本

标签 javascript html css button navbar

有人要求我尝试复制一个以 .php 构建的页面(他们拥有该页面),并将其重新创建为 .html 和 .css 中的可编辑页面以用于 Concrete,但我遇到了一些问题让导航栏正常运行。

http://jsfiddle.net/TYhnb/819/

它只能通过更改内容显示:函数从'none''到“block'”下方显示内容,反之亦然。我有 90% 的把握单靠 css 和 html 是不可能解决这个问题的,所以有人对我如何实现这个有什么建议吗?

CSS 和 HTML 都在摆弄


.tabs #tab-container-1-nav li.activeli a {
background: #1f5497;
color: #fff;
}

.tabs #tab-container-1-nav li a {
padding: 10px 15px;
background: #f2f2f2;
color: #4D4D4D;
text-decoration: none;
font-weight: bold;
font-size: 14px;
text-align: center;
-webkit-border-radius: 6px 6px 0px 0px;
border-radius: 6px 6px 0px 0px;
}

.tabs #tab-container-1-nav li {
float: left;
display: inline;
margin-right: 8px;
}

.tabs ul {
list-style: none;
}

.main ul {
list-style: inside;
}

.main ul li {
font-size: 13px;
margin: 5px 0;
color: #0d3161;
}

div#tab-container-1 {
margin-top: 57px;

最佳答案

您绝对可以仅使用 HTML 和 CSS 来做到这一点...使用标签来检查备用单选输入元素,然后使用其检查状态来确定相邻的 div 元素的显示。

请参阅下面的第二个示例,了解点击时突出显示的选项卡...

Example 1

HTML

<label for='tab1Content'>Tab 1</label>
<label for='tab2Content'>Tab 2</label>
<label for='tab3Content'>Tab 3</label>
<br />
<br />
<input type='radio' name='content' id='tab1Content' checked='true' />
<div>Tab 1 content</div>
<input type='radio' name='content' id='tab2Content' />
<div>Tab 2 content</div>
<input type='radio' name='content' id='tab3Content' />
<div>Tab 3 content</div>

CSS

label {
    padding: 10px 15px;
    background: #f2f2f2;
    color: #4D4D4D;
    text-decoration: none;
    font-weight: bold;
    font-size: 14px;
    text-align: center;
    -webkit-border-radius: 6px 6px 0px 0px;
    border-radius: 6px 6px 0px 0px;
}
input[name=content] {
    display:none;
}
input[name=content] +div {
    display:none;
}
input[name=content]:checked +div {
    display:block;
}

使用更多 HTML 和 CSS 技巧,您可以将其扩展为不仅在点击时显示内容,还可以突出显示当前选定的选项卡...

Example 2: More complex - with tab selection

HTML

<div id='wrapper'>
    <div>
        <input type='radio' name='content' id='tab1Content' checked='true' />
        <label for='tab1Content'>Tab 1</label>
        <div>Tab 1 content</div>
    </div>
    <div>
        <input type='radio' name='content' id='tab2Content' />
        <label for='tab2Content'>Tab 2</label>
        <div>Tab 2 content</div>
    </div>
    <div>
        <input type='radio' name='content' id='tab3Content' />
        <label for='tab3Content'>Tab 3</label>
        <div>Tab 3 content</div>
    </div>
</div>

CSS

label {
    padding: 10px 15px;
    background: #f2f2f2;
    color: #4D4D4D;
    text-decoration: none;
    font-weight: bold;
    font-size: 14px;
    text-align: center;
    -webkit-border-radius: 6px 6px 0px 0px;
    border-radius: 6px 6px 0px 0px;
}
#wrapper {
    position:relative;
}
#wrapper > div {
    float:left;
    margin-right:10px;
}
input[name=content] {
    display:none;
}
input[name=content]~div {
    display:none;
    overflow:hidden;
    position:absolute;
    top:40px;
    left:0;
}
input[name=content]:checked~div {
    display:block;
}
input[name=content]:checked~label {
    background:lightblue;
}

关于javascript - 如何让导航栏根据单击的按钮显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24612621/

相关文章:

javascript - 拖动面板不会降低不透明度

javascript - Div 不改变颜色 - jQuery

asp.net - 使用代码或 css 在文章的正文中插入一个 block

javascript - 使用 Jasmine Sequelize TypeError 进行测试 : _models2. default.count 不是函数

javascript - 使用 jQuery 更改 HTML 标签的属性

javascript - 如何在输入文本框时显示键盘

javascript - 向下滚动时淡化文本+图标。再次出现在顶部

Jquery 显示/隐藏不工作

javascript - 删除未选中的 radio 类别

php - WordPress 名称、电子邮件 ID、年龄警报框