CSS模块化设计—从空格谈起(3)
作者:daijianchun 来源:蓝色理想 发布时间:2007-12-15 09:41:00
三、CSS+HTML的模块化设计
(1)举个简单例子:
.classNameA .classNameB .classNameC
就是一个类包路径,A包含B,B包含C.
意思就是,在A块内的全部HTML代码(包括B块、C块),先应用样式classNameA;
然后,在B块内的全部HTML代码(包括C块),先应用样式classNameA,之后再先应用样式classNameB;
最后,在C块内的全部HTML代码,先应用样式classNameA,再先应用样式classNameB,最后应用样式classNameB;
(2)在样式表中,关于类包的路径,对于某些复杂的HMTL代码,最后写绝对路径,就是每一个类名都不要拉下。这样可读性更强,错误率更小;当然,宽容度就越低。
例如:
<style type="text/css">
/*控制 li 的样式*/
.a1 ul li {
color:red;
}
/*控制class="a"的div块内,全部连接 a 的样式*/
.a1 a {
font-size:20px;
}
/*控制class="a"的div块内,一个一个为 class="mylink"的样式*/
.a1 .myLink {
font-size:12px;
}
/*控制 li 内连接a的样式*/
.a1 ul li a {
font-size:40px;
}
/*控制名 li 内,一个为 class="mylink"的连接的样式 */
.a1 ul li .myLink {
font-size:60px;
font-family:黑体;
}
/*b1样式*/
.b1 {
color:blue;
}
/*控制 li 内 b1 的样式*/
.a1 ul li .b1 {
color:green;
}
</style>
<div class="a1">
<a href="#">linkText</a>
<a href="#" class="myLink">titleText</a>
<div class="b1">b11111111</div>
<ul>
<li>
<a href="#">titleText</a>
<div class="b1">nameCN</div>
</li>
<li>
<a href="#" class="myLink">titleText</a>
<div class="b1">nameCN<span class="c1">nameEN</span></div>
</li>
<li>titleText</li>
<li>titleText</li>
<li>titleText</li>
</ul>
</div>
样式,按*.HTML从内层到外层;按*.CSS上下文,从下文到上文;按内联样式表上下文,从下文到上文;按内嵌>内联>外联的优先级;
叠加覆盖计算最终显示效果。
CSS语句,严格说是JS代码的一类,换句话说,CSS语句也是“弱类型”的,空格是一个“运算符”,由于“弱类型”不严谨,所以,没有空格的时候,虽然不报错,也有显示效果,但那是按错误逻辑运算的,有时歪打正着,但确莫名其妙。再加上有很多满足各浏览器的HACK语法,CSS语句就更加零乱不堪。所以,写的时候,尽量在满足宽容度的情况下,严禁一些。
(3)给大家一个案例
模块化设计,要求相对封闭独立性、可重复性、可修改性、统一性等等是比较高的,当然,模块化越高越复杂的,修改起来也要月谨慎,因为牵一发而动全身,这就要求,在开发设计前期要做好详尽的策划,从目录结构、命名规范,到全局和特例的界限划分、后期修改的宽容度估计等等,都要有个把握。
下面就给一个我做的网站的地址:http://www.51youcai.com
样式表是按类路径来模块化定义的,有中文注释;
由于加了jsp程序,代码格式有变动,也许会有不少垃圾代码;
在FireFox下,有几处显示不当、JS未做相应优化,请用IE6+浏览;
感兴趣者可以当HTML和CSS来,做参考。


猜你喜欢
- 最近刚学习数据库,首先是了解数据库是什么,数据库、数据表的基本操作,这就面临了一个问题,mysql的安装,我这里下载的是64位的,基于Win
- 平时我们获取事件对象一般写法如下:function getEvent(event) { return e
- 上个月就打算开发个还算好玩的项目,但是一直没时间。这篇是此项目用到的一部分,处理好此部分基本还差通信等方面的了。首先模拟鼠标键盘按下释放的动
- cookie并不陌生,与session一样,能够让http请求前后保持状态。与session不同之处,在于cookie数据仅保存于客户端。r
- 统计十篇新闻TF-IDF统计TF-IDF词频,每篇文章的 top10 的高频词存储为 json 文件TF-IDFTF-IDF(term fr
- 前言许多 Go 初学者在方法 * 的选择上可能会感到困惑,不知道该选择值 * 还是指针 * 。本文将会对方法 * 进行介
- 1.前言(闲话)最近在做电磁炮,发现题目需要用到颜色跟踪,于是花了一点时间学了一下OpenMV,只学习OpenMV是远远不够的,还需要实现与
- 打包依赖文件至目标程序目录问题我使用 PySide2 开发了一个应用程序,为了方便其他人使用,我便使用 PyInstaller 打包成 *.
- 跟传统的页面可以在每个页面分别设置填写对应的页面title,but,vue是单页面应用项目,想设置页面对应的title就不能跟传统方式一样了
- 前几天项目在运行的时候数据库数据插入突然报:ORA-01653: unable to extend table HSDC.ADDRESS b
- 此站:http://www.cbmland.com/ 的页面离开时的效果非常NB!佩服的很。一开始,我以为是用事件 onunload,试了一
- 本文介绍了用python与文件进行交互的方法,分享给大家,具体如下:一.文件处理1.介绍计算机系统:计算机硬件,操作系统,应用程序应用程序无
- 我就废话不多说了,直接上代码吧!第一种def test1(): l = [] for i in range(1000
- 例如:文本abcaBcabCaBCabcaBCa,关键字bc,在不区分大小写的情况,一共有6个匹配项。 则在网页中显示的是abcaBcabC
- 我一直建议每个开发者都要有写博客记笔记的习惯,一来可以沉淀知识,二来可以帮助别人,我使用过很多博客平台,也用Python开发过博客系统,就这
- 背景最近在搭一个新项目的架子,在生产环境中,为了能实时的监控程序的运行状态,少不了逻辑执行时间长度的统计。时间统计这个功能实现的期望有下面几
- 原图代码 src = cv2.imread("28.png") gray_src = cv2.c
- 一 ,mysql事务MYSQL中只有INNODB类型的数据表才能支持事务处理。启动事务有两种方法(1) 用begin,rollback,co
- 本文实例讲述了Python读取properties配置文件操作。分享给大家供大家参考,具体如下:工作需要将Java项目的逻辑改为python
- 前期准备qrcode下载地址:qrcode · PyPIQR Code image generatorhttps://pypi.org/pr