WEB前端开发经验总结 Ⅰ(5)
作者:海啸 来源:海啸的地盘 发布时间:2008-06-12 12:23:00
上面介绍了,一个技巧,其实主要是利用我们的CSS控制来实现的,不过我这里还不打算介绍CSS的技巧,接着我们的结构化的话题说下去。看看,其实在制作一个结构化充分的页面的时候,我们同时也在做SEO的优化。
结构,结构,刚才我提到了标签有块级元素和行内元素之分的,要是不理解好这两个概念,我们也不会很好的了解怎么合理的结构化页面,现在就来介绍它们:
块级元素
块级元素生成一个元素框,(默认地)它会填充其父级元素的内容,旁边不能有其他元素。换句话说,他在元素框之前和之后生成了“分隔”符。我们最熟悉的HTML元素是p和div.
行内元素
行内元素在一个文本行内生成元素框,而不会打断这行文本。行内元素最好的例子就是XHTML中的a元素。strong和em也属于行内元素。这些元素不会在它本身之前或之后生成“分隔符”,所以可以出现在另一个元素的内容中,而不会破坏其显示。
注意,尽管“块”和“行内”这两个词与HTML和XHTML中的块级和行内元素有很多共同点,但也存在一个重要的差别。在HTML和XHTML中,块级元素不能继承自行内元素(即不能嵌套在行内元素中)。但是CSS中,对于显示角色如何嵌套不存在任何限制。
恩,还是不能把CSS跟XHTML完全的分开谈,没办法。现在大家了解了什么是块级元素和什么是行内元素了吧。还是回过头来接着说我们的结构化吧,以上讲了这么多,我都是在讲XHTML标签要结构化,所以基本跟CSS关系不大,那么我们下面看看我写的这个页面的代码在没有CSS的情况想,是否结构清晰吧:
看看,页面是不是依旧很清晰,很容易看出,哪里是标题,哪里是导航,哪里是搜索表单?呵呵,其实我这么给大家看的页面,跟我们的搜索引擎查看页面的结构很接近了,到这里大家可能体会到一些搜索引擎友好的意思了吧?
其实让我们看看这个页面的DOM数状图,可能我们对一个简洁合理的结构化布局的页面有更直观的了解。
看看,是不是做到了我说的:XHTML标签充分的语意化、尽量少的嵌套、页面里基本只显示用户需要看的数据、对搜索引擎友好(没有CSS支持时,浏览页面时同样清晰,层次分明,十分容易查看的数据。),已做了基本的SEO优化
呵呵,说到这里我才回答了“怎样的一个页面才算是合理的布局的呢?”,做到上面4点,我个人觉得这个页面就已经做到了合理布局。而至于说要通过W3C的XHTML语法验证,只是很基础的开始。一个通过验证的页面和一个合理布局的页面是两码事的。
这里我再罗嗦一下,我一直都在说的是个人认为如何才算是一个合理布局的页面?要达到什么要求才能算合理布局?因为只有理解了这个,之后的CSS的技巧(浏览器的兼容处理等)都是围绕着让XHTML页面布局更合理来进行的。而不是单纯做到各个浏览器下都显示正常(一致)。所以请记住在开发时做到:
XHTML标签充分的语意化
尽量少的嵌套
页面里基本只显示用户需要看的数据(我们用CSS直接控制用户需要看的数据的显示的样式)
页面对搜索引擎友好(没有CSS支持时,浏览页面时同样清晰,层次分明,十分容易查看数据。),已做了基本的SEO优化
今天就谈到这里吧,下面我们会接着讨论CSS的处理技巧。
阅读下一篇:WEB前端开发经验总结之实战篇


猜你喜欢
- 环境:主服务器:centos 5.2 mysql 5.1.35 源码 IP:192.168.1.22从服务器:centos 5.2 mysq
- 我们经常会遇到数据库磁盘空间爆满的问题,或由于归档日志突增、或由于数据文件过多、大导致磁盘使用紧俏。这里主要说的场景是磁盘空间本身很大,但表
- 本文实例为大家分享了python(列表生成式/器)的具体代码,供大家参考,具体内容如下一、列表生成式#列表生成式是快速生成一个列表的一些公式
- 环境准备python3.5.4windows redispip install celerypip install rediswindows
- 先给大家讲解一下什么是kalikali是一种Linux系统,kali是专门用来渗透的,他是由back track系统演化而来的,后面结合了l
- 一、Oracle11g的安装过程(Windows版本)很简单,步骤为: 1. 首先从Oracl
- 最近一段时间一直比较忙,已经有好几个月没有打理博客了。现将一个最近在项目中制作的一个菜单实例整理出来,共享一下。在后台或OA系统中最常用到的
- 比如:import linecacheprint linecache.getline('2.1_open.py&
- 问题你要通过网络连接发送和接受连续数据的大型数组,并尽量减少数据的复制操作。解决方案下面的函数利用 memoryviews 来发送和接受大数
- <?phpfunction map($fun, $list,$params=array()){ $
- Response是负责将信息传递给用户的对象,它可动态地响应客户端的请求,并将动态生成的响应结果返回给客户端浏览器。 一,Resp
- 前言因为工作中经常用到这些方法,所有便把这些方法进行了总结。JavaScript 1. type 类型判断isString (o) { //
- 序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据方
- MySQL存储过程与存储函数的相关概念存储函数和存储过程的主要区别:存储函数一定会有返回值的存储过程不一定有返回值存储过程和函数能后将复杂的
- 1、算术运算符:+、-、*、/、%。2、递增/递减运算符:如$a++,$a--,++$a,--$a.如:<?php$a=10;$b=5
- 下面通过实例代码给大家介绍python 中pyqt5 树节点点击实现多窗口切换问题,具体代码如下所示:# coding=utf-8impor
- 空间关系变化始于相遇,所以交点是一切的核心。相交判定首先考察一束光线能否打在某个平面镜上。光线被抽象成了一个列表[a,b,c],平面镜则被抽
- Sys.path 指定用于模块搜索路径的字符串列表也可以通过sys模块的append方法在Python环境中增加搜索路径。Sys.path.
- display text in large ASCII art fonts 显示大ASCII艺术字体这种东西在源码声明或者软件初始化控制台打
- 我最新最全的文章都在 南瓜慢说 www.pkslow.com ,欢迎大家来喝茶!1 数据库审计数据库审计是指当数据库有记录变更时,可以记录数