关于IE中弹出框内文本焦点问题

直接使用$.focus()在ie中往往不好用,根本不知道光标定位到哪里去了,当前遇到的弹出框是用ajax读取出来的,同事给了一个解决方案,解决了。

今天有人问我,我又给忘了,在这里记录一下。

focusSta = obj . focusSta ? parseInt(obj.focusSta) : 0;

if(focusSta === 1){

var item = document.getElementById(‘commentContent_’+uniqueId);

if(item){

if($.browser.msie){

item.value = “&nbsp”;

item.focus();

item.value = ”;

item.select();

}else{

item.focus();

}

}

}

为什么这么写我是说不清,知道的跟一下帖子…

页面文本混排问题

纯汉字文本与纯英文文本还有汉英混排(其实是全角字符与半角字符的区别)在IE浏览器中是有区别的。

带半角字符的区域会比纯全角文本区域高度下沉一块,这个在布局的时候要特别地关注一下。所以你在页面看到文本块与块之间水平不齐,可以看看是不是因为该问题引起的。

 

去除触发链接时出现的虚线框

链接在被点击时会出现虚线框,即使松开了也仍然存在,在有的时候显得不美观。既然不好看,那就不要它。怎样去掉呢?

方法一 IE下可使用其私有的html属性:hideFoucs,在标签的结构中加入hidefocus=”true”属性。即:

<a href=”http://www.17css.com” hidefocus=”true” title=”17css-青色’s Blog”>17css-青色’s Blog</a>

而在 Firfox 浏览器中则相对比较容易,直接给标签 a 定义样式 outline:none; 就可以了,即:

.HideFocus { outline:none; }

方法二 也可以使用CSS expression来控制,但不推荐使用,毕竟expression在性能上有问题。

.HideFocus {
hide-focus:expression(this.hideFocus=true);  /* for ie 5+ */
outline:none;  /* for firefox 1.5 + */
}

除链接外,该CSS同样适用于input和button标签。

方法三 将以下代码保存为link.htc文件:

<public:attach event=”onfocus” onevent=”hscfsy()”/>
<script type=”text/javascript”>
function hscfsy(){ this.blur(); }
</script>

链接样式中加入:

a { behavior:url(link.htc); }

IE中已经没有问题,但是在FF中虚线框依然存在。再增加一条样式定义来解决此问题:

a:focus { outline:0; }

这样IE、FF中虚线都不存在了。

Flash支持的HTML标签有哪些

一、Flash 8 支持的HTML标签和用法

(1)Flash 8 支持的HTML标签
1、<a> 超链接标签
属性:
href—— 链接地址
target——目标窗口,可取值为_blank,_parent,_self,_top
例:
my_txt.htmlText=”<a href=http://hi.baidu.com/kmjy/creat/blog/’ target=’_blank’>开明教育</a>”

2、<b> 粗体标签
|例:
my_txt.htmlText=”<b>粗体</b>”

3、<br> 换行标签
例:
my_txt.htmlText=”第一行<br>第二行”

4、<font> 字体标签
属性:
color——字体颜色,格式#RRGGBB
face——字体,可以是单个字体或字体列表,字体名称
size——字体大小,单位像素,数字
例:
my_txt.htmlText=”<font color=’#ff0000′ face=’Arial’ size=’12′>用HTML字体标签的效果</font>”

5、<i> 斜体标签
例:
my_txt.htmlText=”<i>这里是斜体</i>”

6、<li> 列表项标签
例:
my_txt.htmlText=”Sports:<li>列表项一</li> <li>列表项二</li><li>列表项三</li>”
注意,文本属性要选中“多行”。
不支持<ol> 和<ul>标签

7、<p> 段落标记
属性:
align——对其方式,可取值left、right、center
class——应用一个css样式类
例:
my_txt.htmlText=”<p align=’right’ class=’title’>右对齐</p><p align=’left’ class=’body’>左对齐</p>”
注意,文本属性要选中“多行”。本例假设css类title和body已存在。

8、<span> 标签
说明:对位于该标签内所有文本应用css样式,只有在定义了css对象后有效。
属性:class——应用一个css样式类。
例:
my_txt.htmlText=”<span class=’body’>应用CSS样式类</span>
注意,本例假设css类body已存在。

9、<u> 下划线标签
例:
my_txt.htmlText=”<u>添加下划线</u>

两个特殊的标签:
10、<img> 图像标签
说明:这个标签的功能不仅仅是在文本框中插入图片,还可以插入SWF和MovieClip。
属性:
src—— 要加载的JPG或SWF的URL,或是MC的链接ID,这个属性是必要的,其他属性则可选。
注意:Flash不支持progressive格式的JPG。
id——指定嵌入了JPG,SWF或MovieClip的电影剪辑的名称。
width——图片/动画宽度。
height——图片/动画高度。
align——对其方式,可取值:left,right,默认为left。
hspace——文本环绕图时水平方向上与图片的空隙。
vspace——文本环绕图时垂直方向上与图片的空隙。

11、<textformat> 文本格式标签
说明:这个标签可以让你直接应用一些TextFormat对象的属性到文本中。
属性:
blcokIndent: 段落缩进大小,单位像素。
indent: 段落首行缩进大小,单位像素。
leading: 文本行间距,单位像素。
leftmargin: 文本左边距,单位像素。
rightmargin: 文本右边距,单位像素。
tabstops: 表格划分,单位像素。
注意:关于属性tabstops:它的值是一个数组,用来表示表格的列划分情况。
在文本中用转义字符\t将输出位置移动到下一个制表位。
例:
tabField=”<b>姓名\t性别\t年龄\t</b><br>”;
tabRecord1=”唐家齐\t男\t21\t<br>”;
tabRecord2=”张晓明\t女\t18\t<br>”;
txt=”<textformat tabstops=’[50,150,150]‘>” + tabField + tabRecord1 + tabRecord2 + “</textformat>”;

(2)在 Flash 8 如何使用HTML标签

第一步:新建 Flash 文档,在舞台上创建一个动态文本框,设定实例名称为my_txt 。
第二步:在第一帧加入AS代码:
my_txt.html = true; //指定该文本字段为HTML文本字段。
my_txt.htmlText= “<a href=’http://hi.baidu.com/kmjy/creat/blog/’ target=’_blank’>开明教育</a>”; //引用HTML的超链接标签。

Flash CS3里可用的HTML标签和注意事项
Adobe Flash播放器支持一组标准HTML标签, 例如<p>和<li>, 你可以把它们放在动态或输入框文本区内来格式化文字.

Flash播放器版本7和后续版本也支持<img>标签. 你可以在文本区嵌入图片(JPEG,GIF,PNG)和SWF文件.

Flash播放器自动把文字环绕在图片周围, 就像浏览器显示HTML页面时把文字环绕在图片周围那样.
Adobe Flash Player supports a subset of standard HTML tags such as <p> and <li>, which you can use to style text in any dynamic or input text field. Text fields in Flash Player 7 and later also support the <img> tag, which lets you embed image files (JPEG, GIF, PNG), SWF files, and movie clips in a text field. Flash Player automatically wraps text around images embedded in text fields in much the same way that a web browser wraps text around embedded images in an HTML page.

HTML tags supported by Adobe Flash CS3 Professional
The following HTML tags are supported by Adobe Flash CS3 Professional. Optional tag attributes appear in brackets.

引用内容 引用内容Anchor: <a href=”/support/flash/ts/documents/url”>
Bold: <b>
Font: < font [color=”#xxxxxx”] [face=”Type Face”] [size=”Type Size”]>
Italic: <I>
Paragraph: <p [align=”left”|”right”|”center”]>
Underline: <u>
Break: <br>
Image: <img src=”/images/flash/dogs.jpg”/> The <img> tag lets you embed external image files (JPEG, GIF, PNG), SWF files, and movie clips inside text fields and TextArea component instances.
List Item: <li>

 

ordered and unordered lists (<ol> and <ul> tags) are not recognized by Flash Player, so they do not modify how your list is rendered. All list items use bullets.
Span: The <span> tag is available only for use with CSS text styles.
TextFormat: The <textformat> tag lets you use a subset of paragraph formatting properties of the TextFormat class within HTML text fields, including line leading, indentation, margins, and tab stops. You can combine <textformat> tags with the built-in HTML tags.
引用内容 引用内容Additionally, Flash Player supports HTML entities:

< < (less than)
> > (greater than)
& & (ampersand)
” ” (double quotes)
&apos; ‘ (apostrophe, single quote)

程序代码 程序代码
如何使用Flash MX 2004所支持的HTML标签:
第一步:新建一个FLASH文档,在舞台上插入一个动态文本框,并命名为 my_txt 。
第二步:在第一帧加入AS代码:
my_txt.html = true; //指定该文本字段为HTML文本字段。
my_txt.htmlText=”<a href=’http://www.flash8.net’ target=’_self’>闪吧</a>”;
//引用HTML的超链接标签。
Flash MX 2004所支持的HTML标签:
<a> 超链接标签
属性:href: 链接地址
target: 目标窗口 可取值为_blank,_parent,_self,_top。
例:
my_txt.htmlText=”<a href=’http://www.flash8.net’ target=’_self’>闪吧</a>”;
<b> 粗体标签
例:
my_txt.htmlText=”<b> 闪吧</b>”;
<br> 换行标签
例:
my_txt.htmlText=”闪吧<br>”;
<font> 字体标签
属性:color:字体颜色,格式#RRGGBB。
face:字体,可以是单个字体或字体列表。
size:字体大小,单位像素。
例:
my_txt.htmlText=”<font color=’#ff0000’ face=’Arial’ size=’12’>闪吧</font>”;
<i> 斜体标签
说明:
例:
my_txt.htmlText=”<i>闪吧</i>”;
<li> 列表项标签
例:
my_txt.htmlText=”Sports:<li>新手区</li> <li>教程区</li><li>资源区</li>”;
注意,文本框要选中“多行”。
<p> 段落标记
属性:align:对其方式,可取值left,right,center。
class:应用一个css样式类。
例:
my_txt.htmlText=”<p align=’right’ class=’title’>align right</p><p align=’left’ class=’body’>align left</p>”;
注意,文本框要选中“多行”。本例假设css类title和body已存在。
<span> 标签
说明:对位于该标签内所有文本应用css样式,只有在定义了css对象后有效。
属性:class:应用一个css样式类。
例:
my_txt.htmlText=”<span class=’body’>闪吧</span>”;
注意,本例假设css类body已存在。
<u> 下划线标签
例:
my_txt.htmlText=”<u> 闪吧</u>”;
<img> 图像标签
说明:这个标签的功能不仅仅是在文本框中插入图片,还可以插入SWF和MovieClip。
属性:src: 要加载的JPG或SWF的URL,或是MC的链接ID,这个属性是必要的,其他属性则可选。
注意:Flash不支持progressive格式的JPG。
id : 指定嵌入了JPG,SWF或MovieClip的电影剪辑的名称。
width: 图片/动画宽度。
height: 图片/动画高度。
align: 对其方式,可取值:left,right,默认为left。
hspace: 文本环绕图时水平方向上与图片的空隙。
vspace: 文本环绕图时垂直方向上与图片的空隙。
例:
my_txt.htmlText=”<src=’my.swf’ width=’100’ height=’80’ align=’left’>”;
<textformat> 文本格式标签
说明:这个标签可以让你直接应用一些TextFormat对象的属性到文本中。
属性:blcokIndent: 段落缩进大小,单位像素。
indent: 段落首行缩进大小,单位像素。
leading: 文本行间距,单位像素。
leftmargin: 文本左边距,单位像素。
rightmargin: 文本右边距,单位像素。
tabstops: 表格划分,单位像素。
注意:关于属性tabstops:它的值是一个数组,用来表示表格的列划分情况。
在文本中用转义字符 将输出位置移动到下一个制表位。
例:
tabField=”<b>name Sex Age </b><br>”;
tabRecord1=”rongsheng 20 Male <br>”;
tabRecord2=”zjq 21 Female <br>”;
txt=”<textformat tabstops=’[50,150,150]’>”+ tabField+tabRecord1+tabRecord2+”</textformat>”;

【转】flash读取html

正常情况下,flash文本框显示的都近似于纯文本,比如你不能在一个动态文本框中显示不同的字号、字体和字色,更不用说在文本框中显示图片。改变这种单调面貌的一个办法就是使用flash的读取html格式文本的功能。

1、文本字段如何显示html文本

首先开启将文本呈现为 HTML功能:

文本框实例名.html = true;

然后使用htmlText属性接收html文本:

文本框实例名.htmlText=”此处是带有html标签或属性的文本”

实例1:

舞台上放一个动态文本框,实例名mytxt,时间轴第一帧写代码:

mytxt.html=true;

mytxt.htmlText=”<font color=’#ff6600′>这里是演示用的文字,它将按照html要求显示。</font>”

测试可看到效果。

//帮助文档中说:htmlText 属性文本字段支持以下 HTML 标记:abfont colorfont facefont sizeipu。此外,支持下列 HTML 属性:leftmarginrightmarginalignindentleading。 要应用这些属性,请使用 TextFormat 类或层叠样式表。有关详细信息,请参阅”学习 Flash 中的 ActionScript 2.0″中的以及”ActionScript 2.0 语言参考”中的”TextFormat 类”或”TextField.StyleSheet 类”。

 

2、通过loadvars对象读取外部html文档:

以下示例,我用TextArea组件代替动态文本框来显示读取到的html文档内容。

实例2:

var content_txt:mx.controls.TextArea;
//content_txt.multiline = true;
content_txt.wordWrap = true;
content_txt.html = true;
content_txt.hScrollPolicy = “on”;
var story:LoadVars = new LoadVars();
story.onData = function(s) {
if (s !== undefined) {
//使用文本组件的话,没有htmlText属性,使用text属性即可。
//使用动态文本框的话,必须使用htmlText属性。
content_txt.text = unescape(s);
} else {
content_txt.text = “载入错误。”;
}
};
story.load(“http://www.china.com.cn/news/txt/2009-06/17/content_17961878.htm“);

//以上例子载入了一个网络上的html页面,在flash内测试,即按下Ctrl+Enter键进行测试,效果如下图:

但是输出swf文件无法载入,上传空间也无法载入,看来和载入txt文本不同,载入html时会受flash的安全模型限制。

如果是html文档和swf文档在同一文件夹下,访问则没有任何问题,看下面实例:

实例3:

 

//————————————–flash脚本:————-

var content_txt:mx.controls.TextArea;
content_txt.wordWrap = true;
content_txt.html = true;
content_txt.hScrollPolicy = “on”;
var story:LoadVars = new LoadVars();
story.onData = function(s) {
if (s !== undefined) {
//使用文本组件的话,没有htmlText属性,使用text属性即可。
//使用动态文本框的话,必须使用htmlText属性。
content_txt.text = unescape(s);
} else {
content_txt.text = “载入错误。”;
}
};
story.load(“t.html”);

//——————–t.html文档保存在和swf在同一文件夹下,内容为:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8″/>
<title> 律师称邓玉娇未决定是否上诉 法学家就此案答问_中国网</title>
<meta name=”keywords” content=” 邓玉娇 汉大赋 上诉 此案 答问 认定被告人 法学家 故意伤害罪 刑法 防卫行为” /><body><font color=”#ff6600″>巴东县人民法院认为,邓玉娇在遭受邓贵大、黄德智无理纠缠、拉扯推搡、言词侮辱等不法侵害的情况下,实施的反击行 为具有防卫性质,但超过了必要限度,属于防卫过当。被告人邓玉娇故意伤害致人死亡,其行为已构成故意伤害罪。案发后,邓玉娇主动向公安机关投案,如实供述 罪行,构成自首。经法医鉴定,邓玉娇为心境障碍(双相),属部分(限定)刑事责任能力。据此,依法判决对邓玉娇免予刑事处罚。</font>
</body>
</html>

//————————————-swf输出效果:—————————

3、使用外部css样式表的方法:

flash脚本:

//===================使用外部样式表========================================
var myStyle:TextField.StyleSheet = new TextField.StyleSheet();
myStyle.load(“ys.css”);
content_txt.styleSheet = myStyle;
//=============================================================
var content_txt:mx.controls.TextArea;
content_txt.wordWrap = true;
content_txt.html = true;
content_txt.hScrollPolicy = “on”;
var story:LoadVars = new LoadVars();
story.onData = function(s) {
if (s !== undefined) {
//使用文本组件的话,没有htmlText属性,使用text属性即可。
//使用动态文本框的话,必须使用htmlText属性。
content_txt.text = unescape(s);
} else {
content_txt.text = “载入错误。”;
}
};
story.load(“t.html”);

//==================================外部样式表文件ys.css:

body {
font-family: Arial,Helvetica,sans-serif;
font-size: 16px;
font-weight: bold;
display: block;
}
//=============自己还可以继续编辑更多的样式设置

4、将文本呈现为html的好处。

从上面的截图效果可以看出,开启了html功能后,文本显示出来的格式丰富了,可以给文本中的任一处文字随意改变颜色,字体等,还可以在文本内容中显示图片。这是纯文本格式所不能比的。

如果我们想使flash文本框中的内容格式丰富多彩,使用html格式是很好的办法。

我想可以在dw的设计视图下设置好一篇文章的格式,然后从代码视图下得到它的html格式文本,进而在flash中显示html,以使flash文本格式丰富多彩。

flash自适应浏览器窗口

单独一个flash实现自适应浏览器窗口,其实没有什么高超的技术与代码。

如果不想用js就用下面的方法。
只要在object里面设置height=“100%”就可以了。
有的人说这不行,那好把
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
去掉换成<html>应该就可以了。

被绿色版的IE6玩了

绿色版的ie6我本来也没有寄予厚望,只希望能给我方便做css的hack就好了,结果今天我被IE6和IE7合伙给玩了。
竟然有这样的事情,同样的东西,完全就是css,一点附加内容都没有,在我安装的绿色版上不好用,竟然在别人机器上的IE6有效果,我顿时崩溃,想想原因可能是机器默认安装的IE6可能有其他的支持或者有补丁,即便是如此,这我以后做hack烦恼又多了。
IE7的问题就更离谱,我做一个下拉菜单的效果,试过以后本来在IE6,IE7,FF都很好,可是在IE7做其他测试是猛然发现,在IE7刚打开该页面时很正常,只要你在该页面任何地方点击一次鼠标,我的下拉菜单就真的只有下拉,回不去了,百思不得其解,用了各种山寨方法依然没有完美的解决此问题,难道是IE7对鼠标左键有个默认的onclick事件(后经过测试右键问题同样),无奈只能用其他下拉菜单方法代替。
各种科学不能解释的问题,各种纠结~~
路过的大虾多指点。

再谈浏览器兼容

早期我空间里的兼容文章

 

一、!important (功能有限)
随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)
例如:

#example {
width: 100px !important; /* IE7+FF */
width: 200px; /* IE6 */
}

二、CSS HACK的方法(新手可以看看,高手就当路过吧)

首先需要知道的是:

所有浏览器 通用 height: 100px;
IE6 专用 _height: 100px;
IE7 专用 *+height: 100px;
IE6、IE7 共用 *height: 100px;
IE7、FF 共用 height: 100px !important;

例如:

#example { height:100px; } /* FF */

* html #example { height:200px; } /* IE6 */

*+html #example { height:300px; } /* IE7 */

下面的这种方法比较简单

举几个例子:

1、IE6 – IE7+FF

#example {
height:100px; /* FF+IE7 */
_height:200px; /* IE6 */
}
其实这个用上面说的第一种方法也可以
#example {
height:100px !important; /* FF+IE7 */
height:200px; /* IE6 */
}

2、IE6+IE7 – FF

#example {
height:100px; /* FF */
*height:200px; /* IE6+IE7 */
}

3、IE6+FF – IE7

#example {
height:100px; /* IE6+FF */
*+height:200px; /* IE7 */
}

4、IE6 IE7 FF 各不相同

#example {
height:100px; /* FF */
_height:200px; /* IE6 */
*+height:300px; /* IE7 */
}
或:
#example {
height:100px; /* FF */
*height:300px; /* IE7 */
_height:200px; /* IE6 */
}

需要注意的是,代码的顺序一定不能颠倒了,要不又前功尽弃了。因为浏览器在解释程序的时候,如果重名的话,会用后面的覆盖前面的,就象给变量赋值一个道理,所以我们把通用的放前面,越专用的越放后面

解释一下4的代码:

读代码的时候,第一行height:100px; 大家都通用,IE6 IE7 FF 都显示100px
到了第二行*height:300px; FF不认识这个属性,IE6 IE7都认,所以FF还显示100px,而IE6 IE7把第一行得到的height属性给覆盖了,都显示300px
到了第三行_height:200px;只有IE6认识,所以IE6就又覆盖了在第二行得到的height,最终显示200px
这样,三个浏览器都有自己的height属性了,各玩各的去吧

这样说要是你还不明白,要么你去撞墙,要么我去!不过还是你去比较好。

哦,差点忘了说了:
*+html 对IE7的兼容 必须保证HTML顶部有如下声明:
〈!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” ”http://www.w3.org/TR/html4/loose.dtd“〉
三、使用IE专用的条件注释

〈!–其他浏览器 –〉

〈link rel=”stylesheet” type=”text/css” href=”css.css” /〉

〈!–[if IE 7]〉

〈!– 适合于IE7 –〉

〈link rel=”stylesheet” type=”text/css” href=”ie7.css” /〉

〈![endif]–〉

〈!–[if lte IE 6]〉

〈!– 适合于IE6及以下 –〉

〈link rel=”stylesheet” type=”text/css” href=”ie.css” /〉

〈![endif]–〉

貌似要编三套css,我还没用过,先粘过来再说

IE的if条件Hack

1. 〈!–[if !IE]〉〈!–〉 除IE外都可识别 〈!–〈![endif]–〉
2. 〈!–[if IE]〉 所有的IE可识别 〈![endif]–〉
3. 〈!–[if IE 5.0]〉 只有IE5.0可以识别 〈![endif]–〉
4. 〈!–[if IE 5]〉 仅IE5.0与IE5.5可以识别 〈![endif]–〉
5. 〈!–[if gt IE 5.0]〉 IE5.0以及IE5.0以上版本都可以识别 〈![endif]–〉
6. 〈!–[if IE 6]〉 仅IE6可识别 〈![endif]–〉
7. 〈!–[if lt IE 6]〉 IE6以及IE6以下版本可识别 〈![endif]–〉
8. 〈!–[if gte IE 6]〉 IE6以及IE6以上版本可识别 〈![endif]–〉
9. 〈!–[if IE 7]〉 仅IE7可识别 〈![endif]–〉
10. 〈!–[if lt IE 7]〉 IE7以及IE7以下版本可识别 〈![endif]–〉
11. 〈!–[if gte IE 7]〉 IE7以及IE7以上版本可识别 〈![endif]–〉注:gt = Great Then 大于
〉 = 〉 大于号
lt = Less Then 小于
〈 = 〈 小于号
gte = Great Then or Equal 大于或等于
lte = Less Then or Equal 小于或等于

四、css filter的办法(据作者称是从国外某经典网站翻译过来的说)

新建一个css样式如下:

#item {

width: 200px;

height: 200px;

background: red;

}

新建一个div,并使用前面定义的css的样式:

〈div 〉some text here〈/div〉

在body表现这里加入lang属性,中文为zh:

〈body lang=”en”〉

现在对div元素再定义一个样式:

*:lang(en) #item{

background:green !important;

}

这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式:

#item:empty {

background: green !important

}

:empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。
五、FLOAT闭合(clearing float)

网页在某些浏览器上显示错位很多时候都是因为使用了float浮动而没有真正闭合,这也是div无法自适应高度的一个原因。如果父div没有设 float而其子div却设了float的话,父div无法包住整个子DIV,这种情况一般出现在一个父DIV下包含多个子DIV。解决办法:
1、给父DIV也设上float(不要骂我,我知道是废话)

2、在所有子DIV后新加一个空DIV(不推荐,有些浏览器可以看见空DIV产生的空隙)

比如:

.parent{width:100px;}
.son1{float:left;width:20px;}
.son2{float:left;width:80px;}
.clear{clear:both;margin:0;parding0;height:0px;font-size:0px;}

〈div〉
〈div〉〈/div〉
〈div 〉〈/div〉
〈div〉〈/div〉
〈/div〉

3、万能 float 闭合

将以下代码加入Global CSS 中,给需要闭合的div加上 class=”clearfix” 即可,屡试不爽.
代码:
〈style〉
/* Clear Fix */
.clearfix:after {
content:”.”;
display:block;
height:0;
clear:both;
visibility:hidden;
}
.clearfix {
display:inline-block;
}
/* Hide from IE Mac \*/
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */
〈/style〉

:after(伪对象),设置在对象后发生的内容,通常和content配合使用,IE不支持此伪对象,非Ie 浏览器支持,所以并不影响到IE/WIN浏览器。这种的最麻烦。

4、overflow:auto(刚看到的,极力推荐)

只要在父DIV的CSS中加上overflow:auto就搞定。

举例:

.parent{width:100px;overflow:auto}
.son1{float:left;width:20px;}
.son2{float:left;width:80px;}

〈div〉
〈div〉〈/div〉
〈div 〉〈/div〉
〈/div〉

作 者原话:原理是,外围元素之所以不能很好的延伸,问题出在了overflow上,因为overflow不可见(见W3C的解释)。现在只要将给外围元素添 加一个“overflow:auto”,就可以解决问题,结果是除了IE,真的可以解决。下来就要解决IE的问题了,再加上“_height:1%”,这 个问题就完全解决了。

我试了一下,其实不加”_height:1%“在IE下也行,留着吧。

六、需要注意的一些兼容细节

1, FF下给 div 设置 padding 后会导致 width 和 height 增加(DIV的实际宽度=DIV宽+Padding), 但IE不会.

解决办法:给DIV设定IE、FF两个宽度,在IE的宽度前加上IE特有标记” * “号。
2, 页面居中问题.

body {TEXT-ALIGN: center;} 在IE下足够了,但FF下失效。

解决办法:加上”MARGIN-RIGHT: auto; MARGIN-LEFT: auto; ”

3, 有的时候在IE6上看见一些奇怪的间隙,可我们高度明明设好了呀。

解决办法:试试在有空隙的DIV上加上”font-size:0px;”

4, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.

5, 浮动IE6产生的双倍距离

#box{ float:left;
width:100px;
margin:0 0 0 100px;
}
这种情况之下IE6会产生200px的距离

解决办法:加上display:inline,使浮动忽略

这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,…不可控制(内嵌元素);
#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果

6 页面的最小宽度

min- width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得min-这个定义,但实际上它把正 常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里 这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。比如要设置背景图片,这个宽度是比较重 要的。

解决办法:为了让这一命令在IE上也能用,可以把一个〈div〉 放到 〈body〉 标签下,然后为div指定一个类:
然后CSS这样设计:
#container{
min-width: 600px;
width:e­xpression(document.body.clientWidth 〈 600? “600px”: “auto” );
}
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

7、UL和FORM标签的padding与margin

ul标签在FF中默认是有padding值的,而在IE中只有margin默认有值。FORM标签在IE中,将会自动margin一些边距,而在FF中margin则是0;

解决办法:css中首先都使用这样的样式ul,form{margin:0;padding:0;}给定义死了,后面就不会为这个头疼了.

8 ,DIV浮动IE文本产生3象素的bug

下面这段是我在网上粘过来的

左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.
#box{
float:left;
width:800px;}
#left{
float:left;
width:50%;}
#right{
width:50%;
}
*html #left{
margin-right:-3px;
//这句是关键
}
HTML代码
〈DIV id=box〉
〈DIV id=left〉〈/DIV〉
〈DIV id=right〉〈/DIV〉
〈/DIV〉

针对上面这段代码,下面说一下我的理解:

第一、只要right定义了width属性,在FF下绝对就会两行显示
第二、两个width都定义为百分比的话,就算都为100%在IE下也会一行显示。所以上面那句所谓“这句是关键”根本没用,不加也在一行,除非你width定义的是数值才用得上。

所 以说上面这段代码其实用处不大,至少在FF下不行。其实只要只定义left的width就行了,right不定义width就不管在IE还是FF下都能成 功,但这样的话父DIV BOX并没有真正的包含LEFT和RIGHT两子DIV,可以用我上面说的第5种办法解决。最简单的办法就是在RIGHT中加上float:left就 OK了,真磨叽!
9,截字省略号

.hh { -o-text-overflow:ellipsis;
text-overflow:ellipsis;
white-space:
nowrapoverflow:hidden;
}
这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾。技术是好技术,很多人都喜欢乱用,但注意Firefox并不支持。