- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要交互式导航,其中两个左对齐(“第一”和“第二”),一个右对齐(“更多”)。目前,我可以毫无问题地在“第一”和“第二”之间切换。然而,如果我选择“更多”,我可以切换回“第一”或“第二”,但不能再切换回“更多”,因为它无法停用。
有没有一种方法可以将两个选项卡列表视为一个选项卡列表,或者只使用一个选项卡列表,左侧有两个选项卡,右侧有一个选项卡?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<title>Site</title>
</head>
<body>
<div class="container">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Site</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup"
aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav nav" id="nav-tab" role="tablist">
<a class="nav-item nav-link active" id="nav-first-tab" data-toggle="tab" href="#nav-first"
role="tab" aria-controls="nav-first" aria-selected="true">First</a>
<a class="nav-item nav-link" id="nav-second-tab" data-toggle="tab" href="#nav-second" role="tab"
aria-controls="nav-second" aria-selected="false">Second</a>
</div>
<div class="navbar-nav nav ml-auto" id="nav-tab-right" role="tablist">
<a class="nav-item nav-link" id="nav-more-tab" data-toggle="tab" href="#nav-more" role="tab"
aria-controls="nav-more" aria-selected="false">More</a>
</div>
</div>
</nav>
<div class="tab-content" id="nav-tabContent">
<!--First tab-->
<div class="tab-pane show active" id="nav-first" role="tabpanel" aria-labelledby="nav-first-tab">
<p>First!</p>
</div>
<!--Second tab-->
<div class="tab-pane" id="nav-second" role="tabpanel" aria-labelledby="nav-second-tab">
<p>Second!</p>
</div>
<!--More tab-->
<div class="tab-pane" id="nav-more" role="tabpanel" aria-labelledby="nav-more-tab">
<p>More!</p>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
</script>
</body>
</html>
最佳答案
Bootstrap 默认的 JavaScript 并不完全是“魔法”,尽管有时感觉是这样。为了使其发挥作用,必须做出某些假设。其中之一是您尊重提供的标记。
你还没有。在您的情况下,您不是仅从一个父 role="tablist"
容器控制标签列表,而是从两个容器控制标签列表。所以你需要自己取消选择:
$(function() {
$('#navbarNavAltMarkup').on('click', '[role="tab"]', function(e) {
$('[role="tab"].active', $(this).closest('.navbar-collapse')).each((i, el) => {
$(el).removeClass('active show');
$(el).attr('aria-selected', 'false');
})
})
});
看到它工作:
$(function() {
$('#navbarNavAltMarkup').on('click', '[role="tab"]', function(e) {
$('[role="tab"].active', $(this).closest('.navbar-collapse')).each((i, el) => {
$(el).removeClass('active show');
$(el).attr('aria-selected', 'false');
})
})
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<div class="container">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Site</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav nav" id="nav-tab" role="tablist">
<a class="nav-item nav-link active" id="nav-first-tab" data-toggle="tab" href="#nav-first" role="tab" aria-controls="nav-first" aria-selected="true">First</a>
<a class="nav-item nav-link" id="nav-second-tab" data-toggle="tab" href="#nav-second" role="tab" aria-controls="nav-second" aria-selected="false">Second</a>
</div>
<div class="navbar-nav nav ml-auto" id="nav-tab-right" role="tablist">
<a class="nav-item nav-link" id="nav-more-tab" data-toggle="tab" href="#nav-more" role="tab" aria-controls="nav-more" aria-selected="false">More</a>
</div>
</div>
</nav>
<div class="tab-content" id="nav-tabContent">
<!--First tab-->
<div class="tab-pane show active" id="nav-first" role="tabpanel" aria-labelledby="nav-first-tab">
<p>First!</p>
</div>
<!--Second tab-->
<div class="tab-pane" id="nav-second" role="tabpanel" aria-labelledby="nav-second-tab">
<p>Second!</p>
</div>
<!--More tab-->
<div class="tab-pane" id="nav-more" role="tabpanel" aria-labelledby="nav-more-tab">
<p>More!</p>
</div>
</div>
</div>
另一种可能的解决方案是将所有选项卡控件保留在同一个选项卡列表父项中,并使用自定义 CSS 根据需要定位它们:
@media(min-width: 992px) {
#navbarNavAltMarkup .navbar-nav:first-child{
flex-grow: 1;
}
#navbarNavAltMarkup .nav-item:last-child{
margin-left: auto;
}
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Site</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav nav" id="nav-tab" role="tablist">
<a class="nav-item nav-link active" id="nav-first-tab" data-toggle="tab" href="#nav-first" role="tab" aria-controls="nav-first" aria-selected="true">First</a>
<a class="nav-item nav-link" id="nav-second-tab" data-toggle="tab" href="#nav-second" role="tab" aria-controls="nav-second" aria-selected="false">Second</a>
<a class="nav-item nav-link" id="nav-more-tab" data-toggle="tab" href="#nav-more" role="tab" aria-controls="nav-more" aria-selected="false">More</a>
</div>
</div>
</nav>
为了彻底,我承认我期待 Bootstrap 4 更智能。我第一次尝试解决这个问题是简单地从每个 .nav
中删除 role="tablist"
并将其放在共同的父级上。
而且它应该有效!。
但是如果我们查看 BS's source code ,我们会看到他们使用 NAV_LIST_GROUP: '.nav, .list-group',
作为列表选择器,而不是 [role="tablist"]
我找到了很难理解为什么。
恕我直言,应该使用它的是 Angular 色
,因为它已经为屏幕阅读器完成了完全相同的“Angular 色”(它声明:在我的标记中的某处你'您将找到一个选项卡控件列表,并且每个控件都被标记为 role="tab"
)。他们(Bootstrap 团队)可能担心新手编码员会删除/省略 role
属性并且选项卡将停止工作。好吧,当/如果您删除 role
属性时,它们不应该工作。一些用户依靠这些属性来更快地阅读/找到相关内容。
关于html - Bootstrap nav 交互式标签列表左右,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844954/
我是 Bootstrap 的新手。每次我使用 Bootstrap 创建导航栏时,我都会使用这些元素/类,但所有这些都让我感到困惑: .nav .navbar .navbar-nav 谁能解释一下这些
我正在使用最新的 Angular Bootstrap 版本。当屏幕尺寸缩小到 768 像素以下时,类“nav nav-pills nav-justified”不会堆叠选项卡。 我引用了网站 http:
我有以下代码,div 内有两个 ul 元素,每个元素都有导航、导航丸、导航堆叠类。 All Pending K
我正在使用 Bootstrap pill 在同一页面上进行切换。有两个导航丸和两个分别对应的 div。我已经正确构建了第一个 div,并且工作正常。但是当我试图构建第二个 div 时,第一个 div
似乎 NAV 的潜在性质是抵制要求强制填充字段。对于我们的业务逻辑,必须填充某些字段才能使数据有效。例如,客户记录必须至少有姓名和电话号码。我搜索了很多地方,但没有找到合适的解决方案。那么如何做到这一
Bootstrap Navbars Toggle navigation
我注意到,在 Dynamics NAV 2013 中,一些 TextConst 已开始使用 @@@ 作为语言代码。 例如在 Codeunit 12 中: PurchaseAlreadyExistsEr
如何像图片一样更改引导菜单中打开的链接的颜色。它适用于鼠标悬停和单击后更改为菜单的默认颜色。 我需要像图片一样的东西。 HTML @Html.Action
我正在尝试列出我的 drop-down它工作正常,但在我点击财务报告链接后,我想要 的剩余内容标签向下移动和 drop-down应该在里面打开, .请提供任何帮助,我很感激。 这是我的代码:
我正在使用 Angular4,nav nav-tabs 样式似乎不起作用,我得到的只是无序的垂直列表,如下图 - 我的选项卡组件代码是 - @Component({ selector: 'tabs',
当我尝试构建我的网页时,我的菜单链接底部和我的主导航区域之间有一个非常小的空间(大约 2 像素)。我只使用颜色来查看布局的工作原理,但有人能告诉我为什么会有差异吗?当然他们应该是相同的高度?当前状态可
即使我不是一个新程序员,Html 和 Css 问题对我来说也是无解的。简单阅读文档/规范似乎还不够,因为每个示例都带有一个新的标签和类早午餐来演示其中一个的使用。我的代码基于 Bootsrap 官方演
我喜欢导航标签的外观,所以我想使用它。这是 Web 应用程序现在的样子: 不幸的是,如果我单击其他选项卡(例如“Buscar alojamiento”),事件选项卡不会更改。这是我的代码:
我正在尝试使用 nav navbar-nav navbar-right 创建一个下拉菜单。我让它在移动设备(较小的屏幕)上对齐但是当我点击下拉菜单时它不会将菜单项向下推但是而是下拉其他菜单项。我不确定
工具提示在这种情况下工作正常 Home 但是一旦我将它嵌套在带有 nav 和 nav-side
我有一个应用程序,如果我提取代码并创建一个单独的 html 文件,只用它工作的代码,它就可以工作。 About
我对 Twitter Bootstrap 有疑问。我创建了一个简单的下拉菜单,但是当我在 chrome 检查器中检查代码时,我看到类 nav nav-pills被添加到 元素。 如何删除这些类?
我正在尝试删除我的菜单和后续部分之间的 Bootstrap 空白。我的菜单 HTML 是:
我正在使用 Bootstrap 4 并尝试使导航项与我的导航栏具有相同的高度,这样当我向其添加背景色时,它看起来就像穿过导航栏的条纹。 最初,该元素居中,并在顶部和下方留有空间。我添加了负边距以使其与
我是一名优秀的程序员,十分优秀!