日志分类:Xhtml

base href的意思(相对链接)

2007/11/25 00:20  |  分类:Xhtml

以前用相对路径真是很麻烦,还有设置链接页的打开问题也都好麻烦,可是今天无意看一网站的源代码时候发现了这个,觉得很有用,所以贴出来给大家共享下,或许大家都知道了只有我不知道,嘿嘿,不过学习学习。。。。。。


就是指网页里面的相对链接的前缀url,如在部分定义了此链接为http://www.sonyes.cn/,那么下面的代表http://www.sonyes.cn/aaa.html

这个标签的用处是解决编程时候的相对路径问题,比如有的cms,因为每页路径不一样,他就给你生成sddsds之类的,如果我在本地调试,肯定会在本地开一个目录的,这样就乱了,你可以把它生成相对路径,如sddsds,只要在head部分加上即可。

所以说,这个标签主要为了解决web编程的时候一些相对路径的问题。

当然,这个base还有一个用法,如在head部分加上这么一行: ,就是默认所有链接在新窗口打开。

CSS布局常用的方法

2007/11/24 12:23  |  分类:Xhtml

CSS布局常用的方法
float:none|left|right
取值:
none:默认值。对象不飘浮
left:文本流向对象的右边
right:文本流向对象的左边

它是怎样工作的,看个一行两列的例子
xhtml代码:
[code]

这里是第一列
这里是第二列

/*这是违背web标准意图的,只是想说明在它下面的元素需要清除浮动*/

[/code]
CSS代码:
[code]
#wrap{width:100;height:auto;}
#column1{float:left;width:40;}
#column2{float:right;width:60;}
.clear{clear:both;}
[/code]

position:static|absolute|fixed|relative
取值:
static:默认值。无特殊定位,对象遵循HTML定位规则
absolute:将对象从文档流中拖出,使用left,right,top,bottom等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据body对象。而其层叠通过z-index属性定义
fixed:未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
relative:对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置

它来实现一行两列的例子
xhtml代码:
[code]

这里是第一列
这里是第二列

[/code]
CSS代码:
[code]
#wrap{position:relative;/*相对定位*/width:770px;}
#column1{position:absolute;top:0;left:0;width:300px;}
#column2{position:absolute;top:0;right:0;width:470px;}
[/code]
他们的区别在哪?
显然,float是相对定位的,会随着浏览器的大小和分辨率的变化而改变,而position就不行了,所以一般情况下还是float布局!

CSS常用布局实例
单行一列
[code]
body{margin:0px;padding:0px;text-align:center;}
#content{margin-left:auto;margin-right:auto;width:400px;}
[/code]

两行一列
[code]
body{margin:0px;padding:0px;text-align:center;}
#content-top{margin-left:auto;margin-right:auto;width:400px;}
#content-end{margin-left:auto;margin-right:auto;width:400px;}
[/code]
三行一列
[code]
body{margin:0px;padding:0px;text-align:center;}
#content-top{margin-left:auto;margin-right:auto;width:400px;width:370px;}
#content-mid{margin-left:auto;margin-right:auto;width:400px;}
#content-end{margin-left:auto;margin-right:auto;width:400px;}
[/code]
单行两列

[code]#bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
#bodycenter#dv1{float:left;width:280px;}
#bodycenter#dv2{float:right;width:420px;}
[/code]
两行两列
[code]
#header{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
#bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
#bodycenter#dv1{float:left;width:280px;}
#bodycenter#dv2{float:right;width:420px;}
[/code]
三行两列
[code]
#header{width:700px;margin-right:auto;margin-left:auto;}
#bodycenter{width:700px;margin-right:auto;margin-left:auto;}
#bodycenter#dv1{float:left;width:280px;}
#bodycenter#dv2{float:right;width:420px;}
#footer{width:700px;margin-right:auto;margin-left:auto;overflow:auto;clear:both;}
[/code]
单行三列
绝对定位
[code]
#left{position:absolute;top:0px;left:0px;width:120px;}
#middle{margin:0px190px0px190px;}
#right{position:absolute;top:0px;right:0px;width:120px;}
[/code]
float定位一
xhtml代码:
[code]

这里是第一列
这里是第二列

/*用法web标准不建议,但是记住下面元素需要清除浮动*/

这里是第三列
/*用法web标准不建议,但是记住下面元素需要清除浮动*/

[/code]
CSS代码:

[code]
#wrap{width:100;height:auto;}
#column{float:left;width:60;}
#column1{float:left;width:30;}
#column2{float:right;width:30;}
#column3{float:right;width:40;}
.clear{clear:both;}
[/code]
float定位二
xhtml代码:
[code]

Thisisthemaincontent.

Thisistheleftsidebar.

Thisistherightsidebar.

[/code]
CSS代码:
[code]
body{
margin:0;
padding-left:200px;/*LCfullwidth*/
padding-right:190px;/*RCfullwidth CCpadding*/
min-width:200px;/*LCfullwidth CCpadding*/
}
.column{
position:relative;
float:left;
}
#center{
width:100;
}
#left{
width:200px;/*LCwidth*/
right:200px;/*LCfullwidth*/
margin-left:-100;
}
#right{
width:190px;/*RCwidth*/
margin-right:-100;
}
[/code]

Web开发:非常实用的18条小经验

2007/11/23 22:43  |  分类:Xhtml

以下是我开发时碰到的问题以及心得经验,花了些时间调试,贴出来避免大家少走弯路。

  1、xml文件尽量以utf-8编码,gb2312有些字是存储不了的,如?,就算能存也需要转换,比较麻烦,utf-8也符合国际规范。

  2、CSS中:hover这个伪类,如果放在:visited前面则会失效。

  3、标签如果没有href属性,所有对它的css的伪类如:hover均失效。

  4、js文件中用document.wirte("

微软发布IE开发者工具条1.0正式版

2007/11/22 14:01  |  分类:Xhtml

在经历了一年半的测试期之后,微软周四正式发布了其IE Developer Toolbar最终正式版,支持IE6/7。微软开发者工具条可以让开发人员更为方便的分析网页结构,调整包括CSS在内的各种特定元素,帮助开发者更好地创建Web应用。

微软此次发布的1.0版相较Beta 3测试版并无新鲜元素加入,按照微软的说法,1.0版本主要改善了可靠性更适合作为一个正式版本来发布。

IEDeveloperToolbar特性如下:

-浏览和修改Web页的文档对象模型(DOM)。

-通过多种技术方式定位、选定Web页上的特定元素。

-禁止或激活IE设置。

-查看HTML对象的类名、ID,以及类似链接路径、tab顺序、快捷键等细节。

-描绘表格、单元格、图片或选定标签的轮廓。

-显示图片象素、大小、路径、替代文字等。

-即时重定义浏览器窗口大小到800×600或自定义大小。

-清空浏览器缓存和cookie,被清除项可从所有对象或给定域中选择。

-直接访问关联W3C规范参考、IE开发组blog或其他来源。

-显示设计时标尺,帮助对齐对象。

官方网站地址:

http://www.microsoft.com/downloads/details.aspx?FamilyId=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en

页面加入FALSH代码

2007/11/20 20:03  |  分类:Xhtml

Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等。
讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了。

一、传统的方法。
这方法是使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。这种方法是 Macromedia 一直以来的官方方法,最大限度的保证了 Flash 的功能,没有兼容性问题。但是它现在不那么好用了:
[code]
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="550" height="400" id="Untitled-1" align="middle"> height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

[/code]
无法通过验证,由于为了兼容性而嵌入的 embed 标签是不符合 W3C 的规范的。当然,如果你不在乎什么规范不规范,另当别论。
微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。
没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框——这个框对很多用户来说是很恐怖的。
二、只用 object 的方法,这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
[code]

data="c.swf?path=movie.swf"
width="400" height="300"> value="c.swf?path=movie.swf" /> width="200" height="100" alt="" />

[/code]

这方法没 embed 了,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的:

需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。
同上面第二点,ActiveX的虚框问题。
继续同上没有版本检测
还是有少数用户代理(比如一些版本的 safari 和一些屏幕阅读器)不认这种方式,有 bug。

三、用JS嵌入的方法。
用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接写,这法子说实话不大好,感觉 hack 成分多了,有点为了验证而验证的意思,而且没有体现出什么 JS 的优势。我觉得一个好的 JS 嵌入脚本,在保证 Flash 应有功能的基础上,要发挥 JS 的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览 Flash 内容或禁用 JS 的时候应该如何处理的问题),要易于重复使用。
我知道的比较常见的 JS 嵌入方法有以下几个

SWFObject
UFO – Unobtrusive Flash Objects
Macomedia(现在是Adobe了..)提供的脚本[这里]和[这里]。
我 SWFObject 用的比较多,就挑它来说一些这种方法的优点:

IE中没有讨厌的虚框问题了。
提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。
易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。
可以通过验证——当然这个不是重点,只是顺带效果罢了。

四、我的结论。
现阶段用 JS 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。
但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,再者又已经有人写了很完善的嵌入脚本可以方面地下载使用(推荐 SWFObject),我们还有什么理由不用它呢?

SWFObject 那网页是英文的,这里写个简单的用法教程:
下载它的.js文件,在这里: http://blog.deconcept.com/swfobject/swfobject1-4.zip (如果链接失效可能是版本有更新,请用上面给出的地址去主页下载最新版本)
在你的 HTML 页面头部区嵌入这个脚本文件:
在你的 HTML 中写一个用来放 Flash 的容器,比如

,并随便给一个 id 比如 flashcontent。然后在里面放上你的替换内容。
这里放替换内容,用来在 Flash 无法显示时显示。

使用脚本替换这个内容:

这脚本可以写在 HTML 中也可以写在外部 .js 文件中。
OK

Pages: Prev 1 2 3 4 5 6 7 8