如何让CSS的标签兼容不同的浏览器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让CSS的标签兼容不同的浏览器相关的知识,希望对你有一定的参考价值。
参考技术A如何让CSS的标签兼容不同的浏览器
在不同浏览器, 标签呈现的效果是有区别的。所以小面我来谈谈如何让CSS的标签兼容不同的浏览器。
作为块级元素的 标签,在写CSS文件时, 最好定义行高line-height, 不要定义高度height,因为定义了高度, 就限制了块级元素 的高度, 在不同浏览器, 很难实现比较统一的效果,我曾经遇到,在IE6,FIREFOX(FF)效果完好, 而在IE7,标题的文字只出来一半。 且 标题在不同的布局中, 会有不同的行数要求, 比如在侧栏等小地方, 标题很可能有2行或3行, 如果高度被定义了, 那么大部分浏览器都会出现错误的显示, 很拥挤或没有显示, 如果设置了底部边线, 还可能错位。
所以 标签, 最好不要定义高度height,但一定要定义行高line-height,其他数值,根据实际效果适当变化。这样, 对不同浏览器的兼容性是最好的。
h3
font-size:14px;
margin: 15px 0px 10px 0px;
padding: 3px 0px 3px 0px;
line-height:20px;
color:#55295e; text-align:left;
border-bottom: 1px dotted #55295e;
标签一般介绍
标签是一个标题标签,常用做网站主题、文章标题或用在段落之前,用于表明整个网站、整篇文章或段落要表达的`意思。根据显示和要表达意思的级别可以分为H1,H2,H3,H4,H5,H6。
标签成对出现,以 开始,以 结束。
在一个WEB页面中,H1标签最好(理论上是应该)只出现一次,因为它代表该WEB页面的主题。在实际操作中,建议不要使用 h1 来定义文章标题,而是用来定义网站标题。我有一个网站, 在首页一段文字前用了H1,并合理地分布了H2,H3,H4,结果十天以后, 原来排在第一页的关键词, 就掉到了第四页。因此, 用一次H2做页面一级标题,比较安全。
H1的重要性最高,常用于表达对整个网站的作用和性质的描述,或表示网站面向的受众群体。其他标签根据级别的不同分别用于显示某个专区的名称,或某段介绍文字的大概描述。
因它表示对网站或某段文字的大体描述,所以相对于搜索引擎来说H标签具有很高的价值。但这并不意味着可以随意的使用。比如,有些网站为了刻意追求特定关键字的排名,而在一段文字中使用H标签来展示关键字。或干脆把H标签当做一个容器来对网页进行布局。这样完全混淆了H标签的作用,也是不推荐的。
标签代表了一个网页的重点层次,但不要过度使用。否则会受到搜索引擎的不同程度的降权。
标签的使用和控制,合理安排网页层次
h1,h2,h3,是经常用到的标题标志,权重比STONRG高一点。以前我曾在一个网页里多次使用H1,结果很长时间在GG的收录都是补充页面(更新,外连正常)。H标题作为关键词布局的一个重要方面,一定程度上决定了网页的层次结构和轻重布局。很多著名的站点都使用H类标题,用法上略有区别,比较灵活。
1、按照内容的重要性来定义:
使用 h1 定义网站标题
使用 h2 定义文章标题
使用 h3 定义栏目标题
2、按照网站的层次来定义:
使用 h1 定义网站标题
使用 h2 定义栏目标题
使用 h3 定义文章标题
标签CSS样式设置
标签默认的表现样子一般不尽如人意, 不能满足网页设计的要求。好在 标签是块级元素,适用块级元素的属性, 标签均可使用,因此, 标签可以通过CSS加以完美控制。
内外空白边距,可以通过外边距margin和内边距padding控制
h1 margin:0px;padding:0px;
字体的字号,颜色,字体控制
h1 font-size:14px; color:#55295e;font-family:Verdana,Arial, Helvetica,sans-serif;
高度和宽度的控制
h1 height:20px; width:400px;line-height:20px;
行高的控制
h1 line-height:20px;
文本对齐方式的控制, 可以是left,right,center。
h1 text-align:left;
边框的控制
h1 border: 1px dotted #55295e;
背景的控制
h1 background: #ccc url(images/test.jpg) no-repeat top ;
;浏览器兼容性问题
-
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的 margin 和 padding 差异较大。
碰到频率:100%
解决方案:CSS里 * {margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符 * 来设置各个标签的内外补丁是0。 -
浏览器兼容问题二:块属性标签 float 后,又有横行的 margin 情况下,在 IE6 显示 margin 比设置的大
问题症状:常见症状是 IE6 中后面的一块被顶到下一行
碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题)
解决方案:在 float 的标签样式控制中加入 display:inline;将其转化为行内属性
备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用 div float 实现的,横向的间距设置如果用 margin 实现,这就是一个必然会碰到的兼容性问题。 -
浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6、IE7、遨游中高度超出自己设置高度
问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度
碰到频率:60%
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高 line-height 小于你设置的高度。
备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。 -
浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug 问题症状:IE6里的间距比超过设置的间距 碰到几率:20% 解决方案:在display:block;后面加入display:inline;display:table; 备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。
- 浏览器兼容问题五:图片默认有间距 问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。 碰到几率:20% 解决方案:使用float属性为img布局 备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)
- 浏览器兼容问题六:标签最低高度设置min-height不兼容 问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容 碰到几率:5% 解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;} 备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。
- 浏览器兼容问题七:透明度的兼容CSS设置 做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。
以上是关于如何让CSS的标签兼容不同的浏览器的主要内容,如果未能解决你的问题,请参考以下文章