整理DIV+CSS网页布局实用技巧错误解决

来源:互联网 发布:中国威客网络兼职网 编辑:程序博客网 时间:2024/05/24 05:29

这些是自己的一些记录,日积累的。仅供参考!

 

一些技巧:

 1、CSS字体属性简写规则字体属性简写规则字体属性简写规则字体属性简写规则

一般用CSS设定字体属性是这样做的: 

font-weight: bold;  font-style: italic;  font-varient: small-caps;  font-size: 1em;  line-height:

1.5em;  font-family: verdana,sans-serif 

但也可以把它们全部写到一行上去:  font: bold italic small-caps 1em/1.5em verdana,sans-serif 

真不错!只有一点要提醒的:这种简写方法只有在同时指定font-size和font-family属性时才起作用。而且,如果你没有设定font-weight, font-style, 以及 font-varient ,他们会使用缺省值,这点要记上。 

 2、同时使用两个类同时使用两个类同时使用两个类同时使用两个类  一般只能给一个元素设定一个类(Class),但这并不意味着不能用两个。事实上,你可以这样:  <p class="text side">...</p>  同时给P元素两个类,中间用空格格开,这样所有text和side两个类的属性都会加到P元素上来。如果它们两个类中的属性有冲突的话,后设置的起作用,即在CSS文件中放在后面的类的属性起作用。 

 3、CSS border的缺省值的缺省值的缺省值的缺省值  通常可以设定边界的颜色,宽度和风格,如:
  border: 3px solid #000  这位把边界显示成3像素宽,黑色,实线。但实际上这里只需要指定风格即可

  如果只指定了风格,其他属性就会使用缺省值。一般地,Border的宽度缺省是medium,一般等于3到4个像素;缺省的颜

色是其中文字的颜色。如果这个值正好合适的话,就不用设那么多了。  
 4、CSS用于文档打印用于文档打印用于文档打印用于文档打印  许多网站上都有一个针对打印的版本,但实际上这并不需要,因为可以用CSS来设定打印风格。  也就是说,可以为页面指定两个CSS文件,一个用于屏幕显示,一个用于打印:  <link type="text/css" rel="stylesheet" href="stylesheet.css" media="screen" />   <link type="text/css" rel="stylesheet" href="printstyle.css" media="print" />  第1行就是显示,第2行是打印,注意其中的media属性。  但应该在打印CSS中写什么东西呢?你可以按设计普通CSS的方法来设定它。设计的同时就可以把这个CSS设成显示CSS来检查它的效果。也许你会使用 display: none 这个命令来关掉一些装饰图片,再关掉一些导航按钮。要想了解更多,可以看“打印差异”这一篇。
 5、图片替换技巧图片替换技巧图片替换技巧图片替换技巧 一般都建议用标准的HTML来显示文字,而不要使用图片,这样不但快,也更具可读性。但如果你想用一些特殊字体时,就只能用图片了。 比如你想整个卖东西的图标,你就用了这个图片:  <h1><img src="widget-image.gif" alt="Buy widgets" /></h1>  这当然可以,但对搜索引擎来说,和正常文字相比,它们对alt里面的替换文字几乎没有兴趣这是因为许多设计者在这里放许多关键词来骗搜索引擎。所以方法应该是这样的:  <h1>Buy widgets</h1>  但这样就没有特殊字体了。要想达到同样效果,可以这样设计CSS:
h1  { 
background: url(widget-image.gif) no-repeat;  height: image height  text-indent: -2000px  } 

注意把image height换成真的图片的高度。这里,图片会当作背景显示出来,而真正的文字由于设定了-2000像素这个缩进,它们会出现

在屏幕左边2000点的地方,就看不见了。但这对于关闭图片的人来说,可能全部看不到了,这点要注意。
 6、CSS box模型的另一种调整技巧模型的另一种调整技巧模型的另一种调整技巧模型的另一种调整技巧 这个Box

模型的调整主要是针对IE6之前的IE浏览器的,它们把边界宽度和空白都算在元素宽度上。
比如:  #box  {  width: 100px;  border: 5px;  padding: 20px  } 
这样调用它:  <div id="box">...</div> 
这时盒子的全宽应该是150点,这在除IE6之前的IE浏览器之外的所有浏览器上都是正确的。
但在IE5这样的浏览器上,它的全宽仍是100点。可以用以前人发明的Box调整方法来处理这种差异。 
但用CSS也可以达到同样的目的,让它们显示效果一致。
  #box  {  width: 150px  }  
  #box div  {  border: 5px;  padding: 20px  }
  这样调用:  <div id="box"><div>...</div></div>  这样,不管什么浏览器,宽度都是150点了。

某人使用过的一些经验:
 
1、最小高度设置

min-height:50px;    /*高度最小值设置为:50px*/

height:auto !important; /*兼容FF,IE7也支持 !important标签*/

height:100px; /*兼容ie6*/

2、<meta http-equiv="X-UA-Compatible" content="IE=7" />的意思:将IE8使用IE7进行渲染,这样使网站在IE8上正常显


(X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面

是否包含<!DOCTYPE>指令,都像是使用了 Windows Internet Explorer 7的标准模式。而content="IE=EmulateIE7"模式遵

循<!DOCTYPE>指令。对于多数网站来说,它是首选的兼容性模式。

目前IE8尚在测试版中,所以为了避免制作出的页面在IE8下面出现错误,建议直接将IE8使用IE7进行渲染。也就是直接在

页面的header的meta标签中加入如下代码:<meta http-equiv="X-UA-Compatible" content="IE=7" />(如:淘宝网);

这样我们才能使得页面在IE8里面表现正常!

3、兼容火狐浏览器与IE浏览器的透明度设置:

filter:Alpha(Opacity=50);

opacity:0.5;

4、要想使网页变灰色,只需要一句 css 代码。使用 css 的滤镜:

view plaincopy to clipboardprint?

html { filter:Gray; }  

html { filter:Gray; }或 view plaincopy to clipboardprint?


html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }  

html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }注:样式加在 body 不能使 Google

Adsense 等用 script 输出的内容变灰,加在 html 上则可以。

5、简单几句去掉链接(包括图片链接)的虚线边框

/* for IE */

a,area { blr:expression(this.onFocus=this.blur()) }

/* for Firefox */

:focus { outline: none; }

6、左右结构CSS调整,一边固定另一边自适应
 A、左边固定,右边自适应
<div>
    <div  style="float:right;margin:0 0 0 -30px; width:100%">
        <div  style="margin:0 0 0 30px; background:#e4e4e4">这里是<Br />右边的内这里是<Br />右边的内这里是

<Br />右边的内这里是<Br />右边的内这里是<Br />右边的内这里是<Br />右边的内这里是<Br />右边的内这里是<Br />

右边的内这里是<Br />右边的内这里是<Br />右边的内这里是<Br />右边的内这里是<Br />右边的内这里是<Br />右边的

内这里是<Br />右边的内容</div>

    </div>
    <div style="float:left;width:30px; background:#669999">这里左边部分</div>
</div>

 B、右边固定,左边自适应
<div>
<div  style="float:right;width:200px; background:#669999">这里右边部分</div>
    <div  style="float:left;margin:0 -215px 0 0; width:100%">
    <div  style="margin:0 215px 0 0; background:#e4e4e4">这里是左边的内容</div>
</div>
</div>

7、图片背景与颜色背景同时起效技巧

background: url(Bg.gif) no-repeat;
background-position: center 0px;
background-color: #cfe4a3;


需要注意解决的一些问题:


1、拖动滚动条时边框IE时隐时现,办法:在边框的div中加overflow:hidden; height:100%(IE6.0)

2、li里直接使用img,底部多出几像素,办法:在img中加display:block

3、div浮动左(下)面多出几像素,办法:浮动中加:display:inline(IE6的BUG,margin在碰到float时会距离会加倍,

也在浮动元素中加display:inline即可)

4、FF浏览器div内有浮动,顶部多出几像素,办法:在浮动外div中加:display:inline

5、有浮动内容的div在IE6下始终多出几像素空白,办法:加一行div,属性设置为:clear:both; height:0; line-

height:0; font-size:0;

6、彻底清除浮动:.Clear{clear:both; font-size:0; height:0; line-height:0;}

7、ul中的li设置float:left后,li内的文字会换行,解决方法:li中加li {      float: left;      white-space:

nowrap;即可
值描述normal默认。空白会被浏览器忽略。pre空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。nowrap文

本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。pre-wrap保留空白符序列,但是正常地进行换行。

pre-line合并空白符序列,但是保留换行符。inherit规定应该从父元素继承 white-space 属性的值。  

8、img底部多出几像素,方法,在img元素加属性float:left属性;  

9、在做一个后台布局是用到Tab切换,切换的内容是表格布局的数据,但发现火狐下切换时单元格宽度不能正常显示。(

布局时,我在第二个开始的Tab内容加了.Hidden{display:none;}这个class,切换Js设置display属性)。解决办法:将

class—Hidden去掉,换成style="display:none;"即可;原来是这个class在作怪。

10、CSS注释,在IE7 FIREFOX下运行正常,在IE6下面竟然一个CSS里设定的格式都么有显示出来。把注释去掉就显示正常

了。如果没要用中文注释请将注释改成/*这里是注释内容**********/ 这样就可以显示了
  
11、解决使用了float后IE6下li高度比Firefox或者IE8高的问题:在ul的样式表中增加了zoom:1就ok了  

12、要使float元素li不折行,这样做:
    li
    {
        float:left;
        padding-right:16px;
        white-space: nowrap; 
       display:inline-block; (不能加overflow:hidden;)
    }  

 

非常感谢这些朋友提供的资料,大家互相研究学习!!

 

原创粉丝点击