源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[CSS] border 边框属性在浏览器中的渲染方式

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2010-3-9 23:39:35 | 显示全部楼层 |阅读模式
分析border边框属性在浏览器中的渲染方式首发小志博客 如果感觉内容还不错而要转载的朋友请不要怜惜 http://blog.linxz.cn/ 这么一个URL,谢谢!

针对border边框属性在浏览器中的渲染方式很早以前就开始在QQ群中看到大家在讨论,而我也一直以border:0 none;的方式处理。其中当然也是有我自己为什么要做的原因,对于这个原因在下面的分析中将会提到。在对border边框属性进行分析之前,需要说明的几点内容是:

  1. 小志我并不是一个分析专家,只是借助Firebug和IE developer这两个工具在FF浏览器和IE浏览器中查看浏览器的渲染结果;
  2. 因为只是查看了FF浏览器和IE浏览器的渲染结果,并不能代表所有的浏览器都是相同的方式进行渲染。

为了能更好的对边框的样式进行对比,这里我们选用的是“按钮”元素,但使用的标签却是不同的,它们分别是input标签元素和button标签元素。顺带需要提到的一点就是,这两个标签元素在各个浏览器中的共同点是都属于系统控件元素,边框样式以及按钮背景都是跟系统主题有着绝对性的关系。

使用相同的XHTML结构代码,分别针对FF浏览器和IE浏览器进行对比。

<input type="button" value="按钮" />
<hr />
<button>按钮</button>

 

 

通过默认的当前系统主题的样式影响,我们发现IE浏览器在对button和input这两个标签元素的解析上已经是存在着一点细节上的不同,但就目前这个系统主题中所看到的页面表现效果是近乎于相同的,关于这点有兴趣的同学可以自行实验一下。上列所看到的无任何CSS样式定义之前的属性结果中,我们得到的结果是:

    * FF浏览器:input标签和button标签的边框样式为border-width:3px; border-style:outset; border-color:#E5E5E5;
    * IE浏览器:input标签边框样式为border-width:2px; border-style:outset;而button标签边框样式为border-width:2px;

有了这些数据之后,我们再看看当我们针对border边框属性定义了样式之后会是怎么样的一个结果。

border:0;的渲染结果

首先我们来看看border:0;在FF浏览器和IE浏览器中的最终渲染结果。

input {border:0;}
button {border:0;}

这时我们可以通过firebug(1.5.0版本)看到样式中所显示的代码是border:0 none;而并不是我们最初所设定的border:0;也就是说FF浏览器会将边框样式解析为none(border-style:none;)。

 

通过firebug中“计算出的样式”功能我们可以看到最终的边框样式中border-width为0,border-color为#000000,border-style为none。现在我们再看一下IE浏览器中的表现是怎么样的。

在IE浏览器中我们利用的是IE Developer Toolbar来查看浏览器的最终渲染结果,很明显的可以发现IE浏览器对border:0;的解析时产生了一些偏差,仅仅只是渲染了border- width的属性,而对于input标签中的border-style属性继续保持着原有的属性值outset,对于button标签中的border- style属性增加了outset属性值;border-color还是为定义。这时我们也能发现IE浏览器中input标签和button标签的边框已经被定义为相同的属性。

 

此时FF浏览器和IE浏览器之间存在的差异是border-style和border-color两个属性。

border:none;的渲染结果

input {border:none;}
button {border:none;}

border:none;的边框定义方式,从广义上理解,其实只是定义了border-style的属性值,对于这点我们也可以从firebug中的样式可以看到边框的样式定义已经由原来的border:0 none;改成border:medium none;了,改变的内容是border-width的样式定义。

但诡异的一点就是我们这里所看到的medium属性值却在firebug最终“计算出的样式”里看不到。

 

更诡异的内容也要出来了,赶紧打开IE浏览器看看是不是发现在页面中按钮的表现效果也不一样了?

两个浏览器的中按钮在定义了边框为border:none;时居然会在浏览器中的表现方式都不一样了,这个是为什么呢?

 

看了IE Developer Toolbar中的结果后,总算明白了,原来这个时候IE浏览器仅仅只是渲染了border-style为none,而border-width依然保持原有的属性值,所以在才会与FF浏览器产生差异。

border:0 none;的渲染结果

最后剩下的是border:0 none;的边框样式定义方式,对于这个方式,经过上面的两个对比,相信大家能明白这个属性所定义的内容包含了什么,把border-width和 border-style同时定义为0和none值,让边框“无处藏身”,就算有颜色值也没用了。对于这个的渲染结果就不再像上面一一罗列了,感兴趣的同学可以试试看。

在结束之前再次推荐大家在取消页面元素边框的时候,尽量选择border:0 none;避免出现一些不必要的问题。顺带提示一下,在IE Developer Toolbar中右下角的那个复选框大家在测试的时候可以将其勾选,可以看到更多的默认样式值。

回复

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-10-8 20:02:36 | 显示全部楼层
有什么好的服务器
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-11-20 08:49:35 | 显示全部楼层
儿童服务绯闻绯闻绯闻
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-11-28 13:42:20 | 显示全部楼层
刷刷刷刷刷刷刷刷刷刷刷刷刷刷刷
回复 支持 反对

使用道具 举报

9

主题

2万

回帖

420

积分

中级会员

Rank: 3Rank: 3

积分
420
发表于 2023-8-28 04:20:55 | 显示全部楼层
还可以不错
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

99

积分

注册会员

Rank: 2

积分
99
发表于 2023-9-11 15:45:43 | 显示全部楼层
下载来瞧瞧
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

73

积分

注册会员

Rank: 2

积分
73
发表于 2023-10-26 21:22:57 | 显示全部楼层
66666666666666666666
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

51

积分

注册会员

Rank: 2

积分
51
发表于 2023-11-26 19:48:35 | 显示全部楼层
啦啦啦啦啦啦啦啦!
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-3-11 21:28:34 | 显示全部楼层
dfdsafdsfdsfdsf
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2024-5-26 07:02:49 | 显示全部楼层
额风风风微风微风违法
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-30 07:37 , Processed in 0.074810 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表