几乎 Menu 控件外观的各个方面都可以使用 Menu 控件的属性或级联样式表 (CSS) 来管理。通过了解哪些属性控制呈现的哪些方面,可以定制菜单的外观。本主题介绍由 Menu 控件公开的样式类型,并建议一些使用 Menu 控件设置样式的最佳做法。

可以直接在标记中设置各种样式的属性或使用样式表。CssClass 属性可用于为菜单样式分配 CSS 类,该样式控制 Menu 控件外观的某些方面。下面的示例演示如何为许多 Menu 属性(然后可以在样式表中引用这些属性)指定一个 CssClass 属性。

<asp:menu id="NavigationMenu2"

staticdisplaylevels="3"

orientation="Vertical"

target="_blank"

runat="server"

CssClass="menu2">

<levelsubmenustyles>

<asp:submenustyle CssClass="level1" />

<asp:submenustyle CssClass="level2"/>

<asp:SubMenuStyle CssClass="level3" />

</levelsubmenustyles>

...

请注意,最佳做法是在标记中指定内联样式或使用 CssClass 属性并使用样式表指定样式。不建议同时指定内联样式和使用样式表,因为可能会导致意外行为

一、菜单行为和样式

Menu 控件使用两种显示模式:静态模式和动态模式。静态显示意味着部分或全部菜单结构始终可见。完全静态的菜单显示整个菜单结构,用户可以单击其任何部分。动态显示意味着当鼠标指针置于某些项上时显示部分菜单结构;仅当用户将鼠标指针放置在父节点上时才会显示子菜单项。

StaticDisplayLevels 属性指示静态显示多少层菜单项。如果有四层菜单项,并且 StaticDisplayLevels 属性设置为 3,则静态显示前三层,动态显示最后一层菜单项。

若要控制菜单的静态部分的外观,可以在名称中使用包含单词“Static”的样式属性:

·StaticMenuStyle

·StaticMenuItemStyle

·StaticSelectedStyle

·StaticHoverStyle

若要控制菜单的动态部分的外观,可以在名称中使用包含单词“Dynamic”的样式属性:

·DynamicMenuStyle

·DynamicMenuItemStyle

·DynamicSelectedStyle

·DynamicHoverStyle

StaticMenuStyle 和 DynamicMenuStyle 属性分别影响整组静态或动态菜单项。例如,如果使用 DynamicMenuStyle 属性指定一个边框,则整个动态区域将会有一个边框。

StaticMenuItemStyle 和 DynamicMenuItemStyle 属性与此行为相反。这两个属性影响单个菜单项。例如,如果使用 DynamicMenuItemStyle 属性指定一个边框,则每个动态菜单项都有它自己的边框。

当鼠标指针置于菜单项上时,StaticSelectedStyle 和 DynamicSelectedStyle 属性仅影响所选的菜单项,而 StaticHoverStyle 和 DynamicHoverStyle 属性影响菜单项的样式。

1.1、菜单层

控制菜单项的外观的另一种方法是单独设置菜单结构中每层的样式。Menu 控件具有多个充当样式集合的属性,这意味着这些属性可以包含菜单结构的每层的样式信息。

可用于指定每层外观的样式属性在其名称中包含单词“Level”:

·LevelMenuItemStyles

·LevelSubMenuStyles

·LevelSelectedStyles

下面的示例创建一个四种样式的集合,这些样式适用于前四层菜单项,并且可以通过使用 CssClass 值在样式表中引用。

<LevelMenuItemStyles>

<asp:MenuItemStyle CssClass="Level1Style" />

<asp:MenuItemStyle CssClass="Level2Style" />

<asp:MenuItemStyle CssClass="Level3Style" />

<asp:MenuItemStyle CssClass="Level4Style" />

</LevelMenuItemStyles>

集合中的第一种样式适用于第一层菜单项;第二种样式适用于第二层菜单项,依此类推。请注意,层样式之间不存在任何继承,以便应用于一个层的样式不会影响后续层。

下面的示例创建一个三种样式的集合,这些样式适用于前三层菜单项,并且可以在样式表中引用。

<LevelSubMenuStyles>

<asp:SubMenuStyle CssClass="submenulevel1" />

<asp:SubMenuStyle CssClass="submenulevel2" />

<asp:SubMenuStyle CssClass="submenulevel3" />

</LevelSubMenuStyles>

二、菜单样式常见情况

用于设置 Menu 控件格式的样式取决于对菜单项的外观进行控制的程度和位置。例如,如果希望每个菜单项层都有一个一致的外观,请使用 LevelMenuItemStyles 属性来设置每个菜单层的样式。如果希望所有静态菜单项的外观都相同,所有动态菜单项的外观也都相同,则可以使用 StaticMenuItemStyle 属性来控制所有静态菜单项的外观,使用 DynamicMenuItemStyle 属性来控制所有动态菜单项的外观。

下面的示例演示创建特定菜单所需的标记和样式表内容。本示例演示使用 Menu 控件时的一些最佳做法,包括:

在标记中使用 Menu 控件属性 Font 设置整个菜单的字体。

·通过 WidthMenu 控件属性设置控件的宽度。

·使用 LevelMenuItemStyles 属性为每个菜单项层指定样式。

·在样式表中使用 !important 声明重写菜单的默认字体。

下面的示例提供 Menu 控件的声明性代码。

<asp:menu id="NavigationMenu1" CssClass="menu1"

staticdisplaylevels="3"

staticsubmenuindent="0"

orientation="Vertical"

target="_blank"

Font-names="Arial, Gill Sans"

Width="100px"

runat="server">

<LevelMenuItemStyles>

<asp:MenuItemStyle CssClass="level1"/>

<asp:MenuItemStyle CssClass="level2"/>

<asp:MenuItemStyle CssClass="level3" />

</LevelMenuItemStyles>

<StaticHoverStyle CssClass="hoverstyle"/>

<LevelSubMenuStyles>

<asp:SubMenuStyle CssClass="sublevel1" />

</LevelSubMenuStyles>

<items>

<asp:menuitem text="Home" tooltip="Home">

<asp:menuitem text="Section 1" tooltip="Section 1">

<asp:menuitem text="Item 1" tooltip="Item 1"/>

<asp:menuitem text="Item 2" tooltip="Item 2"/>

<asp:menuitem text="Item 3" tooltip="Item 3"/>

</asp:menuitem>

<asp:menuitem text="Section 2" tooltip="Section 2">

<asp:menuitem text="Item 1" tooltip="Item 1"/>

<asp:menuitem text="Item 2" tooltip="Item 2">

<asp:MenuItem Text="Subitem 1"/>

<asp:menuitem Text="Subitem 2" />

</asp:menuitem>

<asp:menuitem text="Item 3" tooltip="Item 3"/>

</asp:menuitem>

</asp:menuitem>

</items>

</asp:menu>

下面的示例是 Menu 控件的 CSS 代码。

.level1

{

color: White;

background-color: Black;

font-variant: small-caps;

font-size: large;

font-weight: bold;

}

.level2

{

color: Blue;

font-family: Gill Sans MT !important;

font-size: medium;

background-color: Gray;

}

.level3

{

color: black;

background-color: Silver;

font-family: Gill Sans MT !important;

font-size: small;

}

.hoverstyle

{

font-weight: bold;

}

.sublevel1

{

background-color: Gray !important;

color: White !important;

font-variant: small-caps;

}

asp.net --- Menu控件\CSS 和样式的更多相关文章

  1. ASP.NET Menu控件点击区域太小解决方法

    ASP.NET自带的Menu控件点击区域比较小,基本就是文本范围和图片范围,在区域外虽然选择的项有颜色变化,但是这个时候点击是没有用的,体验不是很好 检查前台生成的HTML,是用td嵌套a标签,a标签 ...

  2. 要后台控制前台的的CSS样式,我们可以加入ASP.NET Literal 控件

    ASP.NET Literal 控件,用于在页面上显示文本.此文本是可编程的. 我用它来制作了 ) { this.LtdMemberPromotion7.Text = "<style ...

  3. ASP.NET_验证控件(class0620)

    为什么使用验证控件 当需要让用户输入数据时,用户有可能输入不符合我们程序逻辑要求的信息,所以我们要对输入进行验证. 客户端验证(用户体验,减少服务器端压力) 服务器端验证(防止恶意攻击,客户端js很容 ...

  4. asp.net分页控件

    一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Reg ...

  5. asp.net ajax控件tab扩展,极品啊,秒杀其它插件

    说明:asp.net ajax控件tab要设置width和height,而且在线文本编辑器放能够放入tab中,也必须是asp.net的控件型在线文本,例如fckeditor,下面是我设置好的配置. & ...

  6. 浅谈ASP.NET报表控件

    OWC似乎使用者居多,但看见有网友在帖中抱怨OWC在使用时需要许可证书,于是将其排除,我可不想BOSS在看报表时弹出一个“没有许可证书”的窗口. 接着找到了ComponentOne的Web chart ...

  7. ASP.Net 验证控件 RequiredFieldValidator

    使用 ASP.NET 验证控件可在网页上检查用户输入.有用于各种不同类型验证的控件,例如范围检查或模式匹配验证控件.每个验证控件都引用网页上其他位置的输入控件(服务器控件).当处理用户输入时(例如,当 ...

  8. ASP.NET数据绑定控件简介

    •数据绑定分为数据源和数据绑定控件两部分(①数据绑定控件通过数据源获取和修改数据②数据绑定控件通过数据源隔离数据提供者和数据使用者)数据绑定控件→数据源→数据库•数据源:SqlDataSource(连 ...

  9. (转)浅谈ASP.NET报表控件

    项目中有报表图形化的需求, 于是开始在网上找第三方chart控件.因时间紧迫,大至确定了几个候选:一.Office带的OWC控件:二.ComponentOne:三.Web Chart.本文将讲解ASP ...

随机推荐

  1. Maven 学习笔记(二)

    项目最近开始使用maven去管理项目啦,说真的对于maven是一窍不通啊,今天和同事在回家的路上聊天的时候同事说他去第一家公司面试的时候人家问他 maven 怎么打包,当时我就懵逼了,因为我也不知道啊 ...

  2. docker 创建tomcat镜像

    Dockerfile ############################################ # version : wenbronk/jdkiu121/tomcat8 # desc ...

  3. 分布式处理与大数据平台(RabbitMQ&Celery&Hadoop&Spark&Storm&Elasticsearch)

    热门的消息队列中间件RabbitMQ,分布式任务处理平台Celery,大数据分布式处理的三大重量级武器:Hadoop.Spark.Storm,以及新一代的数据采集和分析引擎Elasticsearch. ...

  4. ARM的体系结构与编程系列博客——ARM体系变种

    ARM体系变种的简介 有人会很奇怪一件事情,ARM居然会变种,不会是基因突变了吧,呵呵,其实ARM变种通俗一点来讲呢,就是ARM突然具备了一种特定的功能!并非是基因突变哦!ARM是reboot好不好? ...

  5. 有序列表ol和定义列表dl,dt,dd

    有序列表是一种讲究排序列表结构,使用<ol>标签定义,其中包含多个<li>列表项目.一般网页设计中,列表结构可以互用有序或者无序类表标签.但是,在强调项目排序栏目中,选用有序列 ...

  6. Spring Boot学习笔记(八)使用jar和war方式打包并在外部Tomcat中部署运行

    使用war包的方式发布到外部Tomcat中去 首先修改pom.xml中的配置,使打包方式设置为war包的形式 然后 maven update project 更新下项目 Application入口文件 ...

  7. dubbo的重试机制

    对dubbo熟悉的人对下面的配置一定不会陌生: <dubbo:reference id="xxxx" interface="xx" check=" ...

  8. BZOJ2227 [Zjoi2011]看电影(movie)

    Description \(k\)个座位,\(n\)个人依次过来,每人随机从\(k\)个座位中选择一个,并从它开始不停向后走直到遇到空座位坐下.求所有人都能坐下的概率(即没有人走到第\(k+1\)个位 ...

  9. shiro标签的使用

    guest标签   用户没有身份验证时显示相应信息,即游客访问信息. user标签    用户已经身份验证/记住我登录后显示相应的信息. authenticated标签     用户已经身份验证通过, ...

  10. mybatis作用、基本使用、小结

    1. MyBatis 1.1. 作用 MyBatis是持久层框架,它是支持JDBC的!简化了持久层开发! 使用MyBatis时,只需要通过接口指定数据操作的抽象方法,然后配置与之关联的SQL语句,即可 ...