Less またはおそらく Sass を使用して、ブートストラップ 2.1 マークアップをより意味のあるものにしようとしています。Bootstrap の標準ナビゲーション バーの次のマークアップを検討してください。
<header id="main-nav" class="navbar navbar-static-top" role="banner">
<nav class="navbar-inner" role="navigation">
<div class="container">
<!-- Collapse nav button -->
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Nav -->
<nav id="navlinks" class="nav-collapse collapse pull-right">
<ul class="nav nav-pills">
<li class="active">@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
</nav>
</div>
</nav>
</header>
明らかに、DIV をよりセマンティックな HTML 5 タグに変更するのは簡単ですが、マークアップから一連のクラスを削除するのはより困難です。次のような mixin を使用する場合:
header #main-nav {
.navbar;
.navbar-static-top;
}
複合クラスは影響を受けないため、次の定義は機能しません。
.navbar .btn-navbar {
display: none; // hide button in full width (Why a compound class? Redundant?)
}
理想的には、less または sass に次のような構文があればいいでしょう。
header#main-nav $= .navbar; // copy .navbar definitions using #main-nav as the name
また
header#main-nav @= .navbar; // rename .navbar definitions to #main-nav
これはできますか?そうでない場合、どうすればセマンティック マークアップを実現できますか?