gpt4 book ai didi

css - 语义标记和 Twitter Bootstrap

转载 作者:行者123 更新时间:2023-11-28 15:35:57 25 4
gpt4 key购买 nike

我有以下 HTML:

<!doctype html>
<html>
<head>
<link rel="stylesheet/less" href="assets/stylesheets/style.less" />
<script src="assets/stylesheets/vendor/less/less-1.3.0.min.js"></script>
</head>
<body>
<nav>
<ul class="tabs">
<li class="selected">
<a href="#">Foo</a>
</li>
<li><a href="#">Bar</a></li>
<li><a href="#">Baz</a></li>
</ul>
<nav>
</body>
</html>

我应该如何编写我的 style.less 来将列表设置为 Twitter Bootstrap Basic Tab .显而易见的方式为此,复制并粘贴所有相关的 CSS:

$cat style.less

@import "vendor/bootstrap/less/bootstrap.less";

.tabs {
// .nav
margin-left: 0;
margin-bottom: @baseLineHeight;
list-style: none;

// common style for tabs and pills
.clearfix();

// Give the tabs something to sit on
border-bottom: 1px solid #ddd;
}

.tabs > li {
float: left;
}

// Make links block level
.tabs > li > a {
display: block;
}

.tabs > li > a:hover {
text-decoration: none;
background-color: @grayLighter;
}

// common style for nav-tabs
.tabs > li > a {
padding-right: 12px;
padding-left: 12px;
margin-right: 2px;
line-height: 14px; // keeps the overall height an even number
}

// Make the list-items overlay the bottom border
.tabs > li {
margin-bottom: -1px;
}

// Actual tabs (as links)
.tabs > li > a {
padding-top: 8px;
padding-bottom: 8px;
line-height: @baseLineHeight;
border: 1px solid transparent;
.border-radius(4px 4px 0 0);
&:hover {
border-color: @grayLighter @grayLighter #ddd;
}
}

// Active state, and it's :hover to override normal :hover
.tabs > .selected > a,
.tabs > .selected > a:hover {
color: @gray;
background-color: @white;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}

有没有更好的方法来实现这一目标,而无需大量复制和粘贴?注意:我无法更改 HTML 文件。

最佳答案

我最终通过重写或覆盖 bootstrap/less/navs.less(参见:HTML and less files)使其可混合并 Allow appropriate LESS classes to be mixed-in

$cat 供应商/bootstrap/less/navs.less

// NAVIGATIONS
// -----------

// BASE CLASS
// ----------

.nav {
margin-left: 0;
margin-bottom: @baseLineHeight;
list-style: none;
> li {
> a {
display: block; // Make links block level
}
> a:hover {
text-decoration: none;
background-color: @grayLighter;
}
}
}
.nav-tabs {
.clearfix();
border-bottom: 1px solid #ddd; // Give the tabs something to sit on
> li {
float: left;
margin-bottom: -1px; // Make the list-items overlay the bottom border
> a {
padding-right: 12px;
padding-left: 12px;
margin-right: 2px;
line-height: 14px; // keeps the overall height an even number

padding-top: 8px;
padding-bottom: 8px;
line-height: @baseLineHeight;
border: 1px solid transparent;
.border-radius(4px 4px 0 0);
&:hover {
border-color: @grayLighter @grayLighter #ddd;
}
}
}
}

.nav-tabs {
// Active state, and it's :hover to override normal :hover
> .active {
> a, a:hover {
color: @gray;
background-color: @white;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
}
}

$ 猫 style.less

 @import "vendor/bootstrap/less/bootstrap.less";

.foo {
.nav;
.nav-tabs;
}

.foo > .bar {
.nav-tabs > .active;
}

关于css - 语义标记和 Twitter Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11737076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com