HTML中绝对路径与相对路径.浮动的区别
HTML 中绝对路径与相对路径、浮动的区别
绝对路径:
在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路径:c:/website/img/photo.jpg我们就知道photo.jpg 文件是在c 盘的website 目录下的img 子目录中。类似于这样完整的描述文件位置的路径就是绝对路径。我们不需要知道其他任何信息就可以根据绝对路径判断出文件的位置。而在网站中类似以http://www.e3i5.net/img/photo.jpg来确定文件位置的方式也是绝对路径。
在网站的应用中,通常我们使用"/"来表示根目录,/img/photo.jpg就表示photo.jpg 文件在这个网站的根目录上的img 目录里。但是这样使用对于初学者来说是具有风险性的,因为要知道这里所指的根目录并不是你的网站的根目录,而是你的网站所在的服务器的根目录,因此当网站的根目录与服务器根目录不同时,就会发生错误。
相对路径:
分析一下为什么会发生图片不能正常显示的情况。举一个例子,现在有一个页面index.htm, 在这个页面中联接有一张图片photo.jpg 。他们的绝对路径如下:
c:/website/index.htm
c:/website/img/photo.jpg
如果你使用绝对路径c:/website/img/photo.jpg,那么在自己的计算机上将一切正常,因为确实可以在指定的位置即c:/website/img/photo.jpg上找到photo.jpg 文件,但是当你将页面上传到网站的时候就很可能会出错了,因为你的网站可能在服务器的c 盘,可能在d 盘,也可能在aa 目录下,更可能在bb 目录下,总之没有理由会有c:/website/img/photo.jpg这样一个路径。那么,在index.htm 文件中要使用什么样的路径来定位photo.jpg 文件呢?对,应该是用相对路径,所谓相对路径,顾名思义就是自己相对与目标位置。在上例中index.htm 中联接的photo.jpg 可以使用img/photo.jpg来定位文件,那么不论将这些文件放到哪里,只要他们的相对关系没有变,就不会出错。
另外我们使用“../”来表示上一级目录,“../../”表示上上级的目录,以此类推。 再看几个例子,注意所有例子中都是index.htm 文件中联接有一张图片photo.jpg 。 例:
c:/website/web/index.htm
c:/website/img/photo.jpg
在此例中index.htm 中联接的photo.jpg 应该怎样表示呢?
错误写法:img/photo.jpg
这种写法是不正确的,在此例中,对于index.htm 文件来说img/photo.jpg所代表的绝对路径是:c:/website/web/img/photo.jpg,显然不符合要求。
正确写法:使用../img/photo.jpg的相对路径来定位文件
例:
c:/website/web/xz/index.htm
c:/website/img/images/photo.jpg
在此例中index.htm 中联接的photo.jpg 应该怎样表示呢?
错误写法:../img/images/photo.jpg
这种写法是不正确的,在此例中对于index.htm 文件来说../img/images/photo.jpg所代表的绝对路径是:c:/website/web/img/images/photo.jpg。
正确写法:可以使用../../img/images/photo.jpg的相对路径来定位文件
例:
c:/website/web/xz/index.htm
c:/website/web/img/photo.jpg
在此例中index.htm 中联接的photo.jpg 应该怎样表示呢?
错误写法:../../img/photo.jpg
这种写法是不正确的,在此例中对于index.htm 文件来说../../img/photo.jpg所代表的绝对路径是:c:/website/img/photo.jpg。
正确写法:可以使用../img/photo.jpg的相对路径来定位文件
总结:通过以上的例子可以发现,在把绝对路径转化为相对路径的时候,两个文件绝对路径中相同的部分都可以忽略,不做考虑。只要考虑他们不同之处就可以了。
再来说一下浮动:
在 CSS 中,我们通过 float 属性实现元素的浮动。
浮动的本意是要将插入到文章中的图片向左或者向右浮动,使图片下方的文字自动环绕在它的周围,使图片的左边或者右边不会出现一大块的留白。
浮动的语法虽然简单,但却不那么容易掌握,下面让我们举例说明如何用浮动来进行布局。同样,我们要实现一个带页脚的三栏布局。如下图:
如何用浮动实现这样的效果呢? 其实很简单:
1、设定E 的宽度,让E 居中
2、设定A 、B 、C 的宽度,将A 、B 、C 分别向左浮动
3、给页脚设置clear 属性
需要说明的是,浮动布局依然遵循常规文档流,所以与绝对定位相比,浮动定位时HTML 源文件中元素声明的位置显得格外重要。当然,解决这个问题的最简单的方法就是在源文件中交换左栏和右栏的声明次序,也有方法不用交换各栏的次序也可以实现同样的布局,但是,这就要用到一种比较晦涩的使用负边距值的方法。一般情况下,人们十有八九会选择交换源文件中左中两栏的声明次序。