Tec*_*ver 5 css c# asp.net twitter-bootstrap
我是一名新的ASP.NET开发人员和Twitter Bootstrap的新用户.我试图在我的ASP.NET应用程序中有一个breadcrumb.我已经开发了它,但我正在尝试应用Twitter Breadcrumb的风格.将特定的CSS样式应用于ASP.NET Web表单控件实在太困难了.
那怎么办呢?
我的ASP.NET代码:
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1"></asp:Menu>
<asp:SiteMapPath ID="SiteMap1" runat="server" PathSeparator=" > " ParentLevelsDisplayed="1"
PathDirection="RootToCurrent" RenderCurrentNodeAsLink="false" ShowToolTips="true"></asp:SiteMapPath>
Run Code Online (Sandbox Code Playgroud)
Twitter Bootstrap样式的Breadcrumb:
<style>
.breadcrumb
{
padding: 8px 15px;
margin-bottom: 20px;
list-style: none;
background-color: #f5f5f5;
border-radius: 4px;
}
.breadcrumb > li
{
display: inline-block;
}
.breadcrumb > li + li:before
{
padding: 0 5px;
color: #cccccc;
content: "/\00a0";
}
.breadcrumb > .active
{
color: #999999;
}
</style>
Run Code Online (Sandbox Code Playgroud)
Fyi,在HTML中,Breadcrumb将被开发如下:
<ol class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">Library</a></li>
<li class="active">Data</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
将类添加到服务器控件的最简单方法是添加CssClass =""参数并指定要添加的类,如下所示:
<asp:SiteMapPath
ID="SiteMap1"
runat="server"
PathSeparator=" > "
ParentLevelsDisplayed="1"
PathDirection="RootToCurrent"
RenderCurrentNodeAsLink="false"
ShowToolTips="true"
CssClass="breadcrumb">
</asp:SiteMapPath>
Run Code Online (Sandbox Code Playgroud)
但是,由于SiteMapPath服务器控件生成标记的方式,您需要对控件以及Bootstrap的breadcrumb类进行一些其他修改.
首先,SiteMapPath服务器控件有一个名为PathSeparator的属性,允许您指定分隔链接的字符.如果未指定,则默认使用和角括号.Bootstrap的breadcrumb类使用正斜杠来分隔链接,因此您需要将PathSeparator属性从PathSeparator =">"更改为PathSeparator ="/".
接下来,您必须为SiteMapPath服务器控件创建一个Node模板.这将告诉SiteMapPath控制每个节点应该遵循的模板,并允许我们告诉它制作li而不是s:
<asp:SiteMapPath
ID="SiteMap1"
runat="server"
PathSeparator=" / "
ParentLevelsDisplayed="1"
PathDirection="RootToCurrent"
RenderCurrentNodeAsLink="false"
ShowToolTips="true"
CssClass="breadcrumb">
<NodeTemplate>
<li>
<asp:HyperLink
id="lnkPage"
Text='<%# Eval("Title") %>'
NavigateUrl='<%# Eval("Url") %>'
ToolTip='<%# Eval("Description") %>'
Runat="server"
/>
</li>
</NodeTemplate>
</asp:SiteMapPath>
Run Code Online (Sandbox Code Playgroud)
最后,您需要修改breadcrumb类以在其嵌套中包含SiteMapPath控件的跨度:
.breadcrumb > span > li
{
display: inline-block;
}
.breadcrumb > span > li > a:active
{
color: #999999;
}
Run Code Online (Sandbox Code Playgroud)