回答读者提问(15)——关于HTML属性与CSS属性
今天收到了吴昊读者的提问,谈到关于HTML属性和CSS属性的问题,感到这个问题比较有意思,而且很重要,所以在这里同意回答一下。他的问题是这样的:
“谢谢此教程的编写者,给我们初级学习带来了便捷且有效的方式,在此表示诚挚的谢意!
不知道html有没有类似的教程,有些标记和html的功能一样,但是属性标记不同,比如说:font face(这个是字体);font-family(也是字体),这种对比是不是应该在学习的过程中,连带给提一下呢,谢谢!”
吴昊读者是一个喜欢思考的人,他说的这个问题确实如此,有的属性确实在HTML和CSS都有,那么我们到底应该使用那一个更好呢?
这首先要从HTML和CSS的核心思想谈起。在互联网发展的初期,各种规范还远没有像今天这样完善和普及,因此当时为了更容易被大家和软件厂商所接受,网页主要是由HTML来完成的,这样写起来更简单,因此一个网页的两个方面——“结构”和“表现”就都由HTML来承担,因此HTML标记就由两类构成——负责定义网页结构的标记,以及负责定义网页表现形式的标记。比如一个p标记,就是用来定义一个段落,这就是一个结构标记;而font标记,用于定义网页元素的字体,这就是“形式”标记。
这样一个HTML承担了双重任务,在早期网页都很简陋的时候,还问题不大,而随着网页越来越复杂、精致,问题就越来越显现出来了。由于结构和形式混杂在一起,使得网页非常混乱,难于维护、修改和升级。比如一个网页上如果多处文字是用font标记定义了字体,如果日后需要修改,就不得不依次修改每处font标记,这样对于一个大型的网站,无疑非常复杂。
因此,自然会有高人来解决这个问题,思路是很明确的,那就是“结构与表现”分离,而这就是CSS的核心思想,学习CSS,最重要的就是真正深刻理解这一点。使用CSS以后,HTML只负责定义网页的结构和内容,比如p标记的任务在CSS中是无法替代的,而font标记的作用则完全应该由CSS来负责定义。这样做的好处是,一个网页的“结构”和“表现”分离以后,网页就可以保持非常好的结构性,而如果希望修改网页的样式,也仅需要修改CSS中的相应设置即可,因此维护、修改、升级都变得非常高效。
对于HTML来说,后来W3C组织发布了XHTML规范,把诸多用于表现的标记都已经划归为“废弃”的标记,如果要按照Web标准的写法,就不应该使用了,当然这也不是非常严格,如果你要用的话,浏览器也还是可以正确显示的,当然,你应该再了解一下关于“文档类型”(DOCTYPE)的问题,这一点在视频教程里我们进行了讲解。
现在回到你的问题,对于font这样的标记,你应该用CSS来实现,而不应该使用HTML标记。而且你会发现,即使有的属性,它们二者看起来作用是相同的,但实际上CSS所能实现的控制远远比HTML的要细致、精确的多。比如font标记,你仔细比较一下,就会发现二者的区别。
希望上面的回答能够给大家一个比较明确的解释。
3,618



哈哈,我把精通CSS DIV买了!!!38.75,我下楼取货去
当当网果然效率高啊,我12-22订的,今天就给我送到了,里面还有发票,真好,我还想在等着买你们的那本新书,不知道对Ajax是否会有更深入的分析,我现在想学习这方面的材料,我看过研究的书也很多,但是能向你们做成这样的我了解是没有的,多半送的光盘里只有一些源代码而已,或者干脆直接让读者去他的网站下载。
真的,我觉得你们出书的还能配到做视频教程甚至还有这么好的交流环境可以师生沟通,这个方向真是别的书籍所没有的,我从今年5月开始踏入编程,到现在有半年了,第一次看到你们这么努力的在做一件事情,我真想等我学出来的一天也能加入你们,因为我觉得这样的教学方式即便再笨的人也不可能不会,祝前沿工作室全体人员圣诞快乐!!!你们的努力会得以回报的!!!
裤子,
谢谢这么高的评价,衷心祝你能学习顺利,最短的时间就把这些东西都掌握,其实这些技术都不是很难的,只要真的钻进去了,很快就能掌握。
有问题就来这里讨论,大家一起提高。关于新书是里面的内容,不包括ajax相关的,新书主要是针对CSS标准的深入探讨,也就是如何真正把CSS的潜力发挥出来,所以没有包括其它外围内容。实际上,Ajax是一个比较综合的技术,本身并不复杂,但是设计的技术比较广,包括Javascript和后台开发的一些技术,所以如果用很少的篇幅也不容易讲清楚。我们希望明年能出版一本Javascript/CSS/Ajax的书,相信会解决很多读者的问题。
最后再次谢谢你的祝福!也祝你新年快乐!
老师您好,请问有没有一些课后习题供我们练习.教程看的时候懂…就会看很多,但第二天会忘很多….针对每节课完后出一些相应的习题供我们下载练下么..习题要基本包括每节教程的核心那种.
谢谢
程程,
你的建议很好,我们也会希望越做越完善,最终如果能够形成一个完善的学习环境,那就最好了。我们目前之能一步一步来,我们还得做很多其他事情,网站只是业余时间做得一项工作,但是我们十分希望能够像你说得那样能。
老师您好,我最近在学习div在做例子时有一个问题让我不能解决
我从数据库里读文章时,我用了转换函数,在div块里格式不可以正常显示,放在外面就没有问题,可放在外面的话它就放在了不合适的地方,您说有什么好的办法呢,我用的是20章的例子加数据库的,用asp做的。谢谢
周凯,
我估计是你的ASP代码生成的HTML可能出错了,比如少了一个尖括号,或者某个标记写错了等等,所以会这样。你仔细查一下生成的静态HTML代码,看看问题在哪里,然后找到对应的ASP语句,应该可以找到问题的根源。
这是html原码
为什么在这个网页上面显示正常呢
这个留言不能显示HTML,会过滤。
我的意思是,你把显示不正确的asp页面直接用浏览器“查看源代码”的方法,检查这个HTML,里面一定有错误(否则不会显示不正常),然后你仔细分析一下错误在哪里,我猜想是因为你的ASP在生成HTML的时候,可能字符串拼接的时候写错了个别的地方,比如少了某个标记等等。
你不能只检查没有加入ASP之前的HTML,那肯定没有错的,但是加入ASP以后,就可以引入了错误。
谢谢老师,我刚才找到了,原来我在Css里将br给display:none;了
,老师,刚才是如何将html语言给过滤的呀
好啊,找到就好!找不出问确实很急人,呵呵。
HTML过滤很简单,一般的留言本都这样,否则如果留言的人用了HTML以后会把页面搞乱。如果需要自己实现,在服务器段把文本作一个替换就可以了,匹配尖括号,然后删除即可。