专注前端,专注网页设计分享 - (网页制作/模板制作/设计)755150799 织梦模板 | 网页特效 | 网站模板 | 建站教程 | Tag标签 | 联系站长

CSS教程:a标签的样式规划

时间:2014-07-15 10:59:58来源:学技巧网站制作 作者:学技巧网页制作 阅读:0次 【 点评一下

a标签的样式规划,让网站代码不在臃肿!

a 标签有 link, visited, hover, active 这几个常用的伪类用于定义不同状态. 这些伪类意思明确, 使用简单, 看起来不会存在什么问题, 而实际上他们的使用顺序, 是否应该使用都需要考虑清楚.

a 标签在网页中无所不在, 而且样式复用性很高. 一般来说, 一个网站上的链接形式是比较统一的, 所以作为 reset 或者基本的 a 标签 CSS 定义十分重要.

a 标签伪类的 lvha 顺序

为了解决伪类状态覆盖的问题, 网上建议开发者书写 a 标签样式如下:

a:link {color:#FF0000;}/* 没访问过的链接样式 */
a:visited {color:#00FF00;}/* 访问过的链接样式 */
a:hover {color:#FF00FF;}/* 鼠标进入链接区域的链接样式 */
a:active {color:#0000FF;}/* 点击链接时的链接样式 */

相信很多开发者都看了这段称为 lvha (love & hate) 的书写顺序建议, 我看了很多网站在全站通用的 CSS 里已经也是这么写的. 除了样式上有特殊需要, 我不建议这样来定义 a 链接的样式, 尤其是在通用样式中.

a 标签 lvha 存在的问题

lvha 的写法从逻辑上没有问题, 而事实上这种写法是过度设计, 为代码维护带来很多额外的维护成本.

假设全局通用 CSS 中已经按 lvha 定义样式, 而页面中一些链接即便被访问过, 要求跟没访问过的样式一致, 开发便需要重写 visited 样式; 如果某些链接颜色跟通用样式不一样, 基本上要重写所有链接伪类的样式, 代码量大, 也相当麻烦.

下面是一段过度设计的示例代码摘要.

a:link{color:#06C;text-decoration:none;}
a:visited{color:#969;text-decotation:none;}
a:hover{color:#F90;text-decoration:underline;}.normal a:link,.normal a:visited{color:#666;}.normal a:hover{color:#000;}

有什么问题相信大家看看就知道了, 几乎所有对链接的重新定义, 都需要将 a 链接对应的个伪类的样式重写一遍.

a 标签样式规划建议

为什么会出现上述的写法? 我猜这是因为设计库中存在一套对文本和链接的完整的设计规范, 编写代码的人认为可以通过通用的样式一劳永逸, 而这可能弄巧反拙. 下面是 Alibaba DPL 的一个片段, 一看便知.

a 标签设计

linkhover 状态的链接样式通用性很高, 但 visited 样式仅在搜索页面的商品标题, 帮助中心的问题链接等少部分列表的主要链接上才会使用. 所以完全有理由将它们分开处理.

在通用 CSS 中只定义 aa:hover 样式, 需要使用 a:visited 样式时再做定义. 则前面那段 CSS 可以定义如下:

a{color:#06C;text-decoration:none;}
a:hover{color:#F90;text-decoration:underline;}.normal a{color:#666;}.normal a:hover{color:#000;}.list a:visied{color:#969;}

从代码可以看到, 一般的链接样式修改, 只需要顾及到 aa:hover, 而其他状态仅在使用的时候进行定义. 因为前者常有, 后者少用, 所以维护量是非常小的.

如果你也想免费做一个自己的网站就请到学技巧网站制作吧!

  • 用微信  “扫一扫”

    将文章分享到朋友圈。

    关注公众号:xue-jiqiao

本文版权归原作者所有,转载请注明原文来源出处,学技巧网站制作感谢您的支持!