生成输出url时,使用CSS来控制超链接的格式
在前文《生成输出url》中的第5点,介绍了使用ActionLink生成输出url中指定html标签属性。
例如,
假设Global.asax中的路由定义为:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("MyRoute", "{controller}/{action}/{id}",
new { Controller = "Home", Action = "Index", id = UrlParameter.Optional },
new[] { "_11_3URLTestDemo.Controllers" });
}
在Views/Home/Index.cshtml里有如下对ActionLink的使用,来生成输出url:
<p>
@Html.ActionLink("HomePage", "Index", "Home")
</p> <p>
@Html.ActionLink("HyperLink with attribute", "Index", "Home", null, new { id="myAnchorID", @class = "redlink" })
</p>
根据路由,反向推导出两个ActionLink生成的url。
第一个ActionLink生成的html为:
<p>
<a href="/">HomePage</a>
</p>
第二个ActionLink生成的html为:
<p>
<a class="redlink" href="/" id="myAnchorID">HyperLink with attribute</a>
</p>
显然,生成的第一个html中标签<a>使用的样式为默认的标签a的样式。
生成的第二个html中标签<a>使用的样式,就指定类名为"redlink"的样式。
这些层叠样式定义在什么地方?因为MVC中Views/Shared/_Layout.cshtml是所有视图的公共文件:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
</head> <body>
@RenderBody()
</body>
</html>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />通过这句话使用了一个外部层叠样式表文件,位置在"~/Content/Site.css"。所以,如果要自定义层叠样式,就可以在Site.css中文件添加定义,这样也方便统一管理。
打开Site.css,在文件最后面添加如下定义:
/*自定义测试例子
-----------------------------------------------------------*/
p{ font-size: 22px;} a:link{
color: #000000;
text-decoration: none;
}
a:visited {
color: #000000;
text-decoration: none;
}
a:hover {
color: #ff7f24;
text-decoration: underline;
}
a:active {
color: #ff7f24;
text-decoration: underline;
} .redlink{
color:#FF0000;
text-decoration:none;
} .redlink:visited{
color:#FF0000;
text-decoration:none;
} .redlink:hover{
color:#000000;
text-decoration:underline;
background:#FFFFFF;
}
新添加的样式中,定义了标签p,指定了<p></p>中字体为22px。
定义了标签<a>的默认样式,a:link{}、a:visited{}、a:hover{}、a:active{}。因为这个定义是放在文件末尾,只要没有使用其它类,那么在使用标签a时,<a></a>里面的样式就由这个默认样式决定。注意它们的顺序不是任意的,一般要遵循LoVe HAte(爱与恨)的顺序。
在<a>的默认样式后面,定义了指定类别的超链接样式,这里定义的类别名字叫redlink,注意格式,是用点号开头,而且link这个伪类名可以不写出来。
这样,在使用<a>标签时,指定了class="redlink"的,就使用redlink中定义的样式。
没有指定类别的,就用默认样式。
-lyj
生成输出url时,使用CSS来控制超链接的格式的更多相关文章
- 生成输出url
继续使用前面的例子11-3URLTestDemo,修改Global.asax中的RegisterRoutes方法如下: public static void RegisterRoutes(RouteC ...
- 生成输出 URL(16.2)
1.在视图中生成输出 URL 几乎在每一个 MVC 框架应用程序中,你都会希望让用户能够从一个视图导航到另一个视图 —— 通常的做法是在第一个视图中生成一个指向第二个视图的链接,该链接以第二个视图的动 ...
- yii2.0 输出url 注册js css文件
//输出url <a href="<?= Url::to(['/users/login/login','id'=>5,'mark'=>true]) ?>&qu ...
- mvc 生成输出url
最近一直在学习mvc,其中对于 Url.Action生成的url感到很困惑.官方的解释的基于路由方案生成的url.问题是,怎样基于,怎样选择,没有过多的解释.网上找了很多资料,也看不懂,最后还是在pr ...
- 生成链接中的全限定URL(Generating Fully Qualified URLs in Links) | 在视图中生成输出URL | 高级路由特性
结果:<a class="myCSSClass"href="https://myserver.mydomain.com/Home/Index/MyId#myFrag ...
- 指定HTML标签属性 |Specifying HTML Attributes| 在视图中生成输出URL |高级路由特性 | 精通ASP-NET-MVC-5-弗瑞曼
结果呢: <a class="myCSSClass" href="/" id="myAnchorID">This is an o ...
- 传递额外的值 Passing Extra Values |在视图中生成输出URL | 高级路由特性 | 精通ASP-NET-MVC-5-弗瑞曼
结果呢 <a href="/App/DoCustomVariable?id=Hello">This is an outgoing URL</a> 理解片段变 ...
- 用路由系统生成输出URL 在视图中生成输出URL 高级路由特性 精通ASP-NET-MVC-5-弗瑞曼
Using the Routing System to Generate an Outgoing URL 结果呢:<a href="/Home/CustomVariable" ...
- 根据指定路由生成URL |Generating a URL from a Specific Route | 在视图中生成输出URL|高级路由特性
后面Length=5 是怎么出现的?
随机推荐
- Oracle的总体回顾
1.多表查询:一张以上的表进行查询,称为多表查询,多表查询的时候可以为表指定别名的方式以简化查询列的编写,在多表查询中,会产生笛卡尔积,就是两张表的总数相乘得到的结果,如果要想消除笛卡尔积要通过关联条 ...
- IE下的bug
断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决 ,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1 ...
- lightoj 1104 Birthday Paradox
题意:给定一个一年的天数,求最少多少人可以使至少两人生日同一天的概率不少于0.5. 用二分去做.检验一个数是否符合时,刚开始实用普通的方法,直接计算,超时了~~,上网搜了一下代码,一位大神使用一个数组 ...
- C++虚函数在内存中的实现
首先来一张图,一目了然: 然后把相应的代码贴上来: class A { int a; public: virtual void f(); virtual void g(int); virtual vo ...
- 解决SVN:could not start external diff program的问题。
今天装完SVN之后,用来查看文件不同老是出现could not start external diff program,网上找了很多资料也没找到自己想要的,无意中中右键 Settings看到有个Dif ...
- Hive进阶(上)
Hive进阶(上) Hive进阶(上) 执行数据导入 使用Load语句 语法: 1.LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE ...
- WordPress下载安装简单配置实例
1.下载https://cn.wordpress.org/ 2.复制wp-config-sample.php为wp-config.php 3.创建一个wordpress数据库 4.修改wp-confi ...
- 解决apache启动问题:httpd: Could not reliably determine the server's fully
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for Se ...
- windows常用环境变量
%ALLUSERSPROFILE%列出所有用户Profile文件位置. %APPDATA%列出应用程序数据的默认存放位置. %CD%列出当前目录. %CLIENTNAME%列出联接到终端服务会话时客户 ...
- python进阶--打包为exe文件
一.Python打包为EXE文件有不少方案,比较常用的有下面两种方式: 1.使用py2exe 详细介绍:http://www.cnblogs.com/jans2002/archive/2006/09/ ...