详解CSS布局技巧十则

开发 前端
你对CSS的使用技巧是否了解,这里和大家分享一下CSS技巧十则,本文主要面对CSS新手朋友,这十则CSS技巧能促进你的学习与编码技巧。

本文向大家描述一下CSS技巧十则,主要包括CSS字体属性简写规则,CSSborder的缺省值,CSS图片替换技巧,CSS用于文档打印等内容,相信本文介绍一定会让你有所收获。

CSS技巧十则详解

这十则CSS技巧汇编于网络,作为老手已经司空见惯了,也没有什么新意,但温故而知新,或许阅读一遍也有一定的启发,本文主要面对CSS新手朋友,有一些东西或许不是搞的很明白。而这十则CSS技巧能促进你的学习与编码技巧,更多的知识浏览51cto.com的教程。希望大家能认真阅读。

一、CSS字体属性简写规则

  一般用CSS设定字体属性方法: 

  1.  font-weight:bold;  
  2.   font-style:italic;  
  3.   font-varient:small-caps;  
  4.   font-size:1em;  
  5.   line-height:1.5em;  
  6.   font-family:verdana,sans-serif;  

  可以把它们全部写到一行上去: 

  1.  font:bolditalicsmall-caps1em/1.5emverdana,sans-serif;  
  2.  

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

二、CSSborder的缺省值

  通常可以设定边界的颜色,宽度和风格,如: 

  1.   border:3pxsolid#000;  
  2.  

  这位把边界显示成3像素宽,黑色,实线。但实际上这里只需要指定风格即可。
  如果只指定了风格,其他属性就会使用缺省值。一般地,Border的宽度缺省是medium,一般等于3到4个像素;缺省的颜色是其中文字的颜色。如果这个值正好合适的话,就不用设那么多了。

三、给元素同时使用两个类

  一般一个元素设定一个类(Class),但这并不意味着不能用两个。事实上,你可以这样:
  


  同时给P元素两个类,中间用空格格开,这样所有text和side两个类的属性都会加到P元素上来。如果它们两个类中的属性有冲突的话,后设置的起作用,即在CSS文件中放在后面的类的属性起作用。
  补充:对于一个ID,不能这样写

也不能这样写

四、CSS用于文档打印

  许多网站上都有一个针对打印的版本,但实际上这并不需要,因为可以用CSS来设定打印风格。
也就是说,可以为页面指定两个CSS文件,一个用于屏幕显示,一个用于打印: 

  1.  <linktypelinktype=”text/css”rel=”stylesheet”href=”stylesheet.css”media=”screen”/> 
  2.   <linktypelinktype=”text/css”rel=”stylesheet”href=”printstyle.css”media=”print”/> 
  3.  

  第1行就是显示,第2行是打印,注意其中的media属性。
  但应该在打印CSS中写什么东西呢?你可以按设计普通CSS的方法来设定它。设计的同时就可以把这个CSS设成显示CSS来检查它的效果。也许你会使用display:none这个命令来关掉一些装饰图片,再关掉一些导航按钮等。#p#

五、CSS图片替换技巧

  一般都建议用标准的HTML来显示文字,而不要使用图片,这样不但快,也更具可读性。但如果你想用一些特殊字体时,就只能用图片了。
  比如你想整个卖东西的图标,你就用了这个图片: 

  1.  <h1><imgsrcimgsrc=”widget-image.gif”alt=”Buywidgets”/>h1> 
  2.  

  这当然可以,但对搜索引擎来说,和正常文字相比,它们对alt里面的替换文字几乎没有兴趣这是因为许多设计者在这里放许多关键词来骗搜索引擎。所以方法应该是这样的:  

  1. <h1>Buywidgetsh1> 
  2.  

  但这样就没有特殊字体了。要想达到同样效果,可以这样设计CSS:  

  1. h1{background:url(widget-image.gif)  
  2. no-repeat;height:imageheighttext-indent:-2000px}  
  3.  
  4.  

  注意把imageheight换成真的图片的高度。这里,图片会当作背景显示出来,而真正的文字由于设定了-2000像素这个缩进,它们会出现在屏幕左边2000点的地方,就看不见了。但这对于关闭图片的人来说,可能全部看不到了,这点要注意。

六、CSSbox模型的另一种技巧

  这个Box模型的调整主要是针对IE6之前的IE浏览器的,它们把边界宽度和空白都算在元素宽度上。比如:  

  1. #box{width:100px;border:5px;padding:20px}  
  2.  

  这样调用它:
  

  这时盒子的全宽应该是150点,这在除IE6之前的IE浏览器之外的所有浏览器上都是正确的。但在IE5这样的浏览器上,它的全宽仍是100点。可以用以前人发明的Box调整方法来处理这种差异。
  但用CSS也可以达到同样的目的,让它们显示效果一致。 

  1.  #box{width:150px}  
  2.  #boxdiv{border:5px;padding:20px}  

  这样调用: 

  1.  <dividdivid=”box”><div>div>div> 
  2.  

  这样,不管什么浏览器,宽度都是150点了。

七、CSS设置块元素水平居中对齐

  如果想做个固定宽度的网页并且想让网页水平居中的话,通常是这样: 

  1.  #content{width:700px;margin:0auto}  
  2.  

  你会使用来围上所有元素。这很简单,但不够好,IE6之前版本会显示不出这种效果。改CSS如下: 

  1.   body{text-align:center}#content{text-align:left;width:700px;margin:0auto}  
  2.  

  这会把网页内容都居中,所以在Content中又加入了:text-align:left。#p#

八、用CSS来处理垂直对齐

  垂直对齐用表格可以很方便地实现,设定表格单元vertical-align:middle就可以了。但对CSS来说这没用。如果你想设定一个导航条是2em高,而想让导航文字垂直居中的话,设定这个属性是没用的。

  CSS方法是什么呢?对了,把这些文字的行高设为2em:line-height:2em,这就可以了。

九、CSS在容器内的定位

  CSS的一个好处是可以把一个元素任意定位,在一个容器内也可以。比如对这个容器:  

  1. #container{position:relative}  
  2.  

  这样容器内所有的元素都会相对定位,可以这样用: 

  1.  <dividdivid=”container”><dividdivid=”navigation”>div>div> 
  2.  

  如果想定位到距左30点,距上5点,可以这样: 

  1.  #navigation{position:absolute;left:30px;top:5px}  
  2.  

  当然,你还可以这样: 

  1.   margin:5px0030px  
  2.  

  注意4个数字的顺序是:上、右、下、左。当然,有时候定位的方法而不是边距的方法更好些。
  更多的CSS布局与技术,请参考52CSS.com的大量教程。

十、直通到屏幕底部的背景色

  在垂直方向是进行控制是CSS所不能的。如果你想让导航栏和内容栏一样直通到页面底部,用表格是很方便的,但如果只用这样的CSS: 

  1.   #navigation{background:blue;width:150px}  
  2.  

  较短的导航条是不会直通到底部的,半路内容结束时它就结束了。该怎么办呢?

  不幸的是,只能采用欺骗的手段了,给这较短的一栏加上个背景图,宽度和栏宽一样,并让它的颜色和设定的背景色一样。 

  1.   body{background:url(blue-image.gif)00repeat-y}  
  2.  

  此时不能用em做单位,因为那样的话,一旦读者改变了字体大小,这个花招就会露馅,只能使用px。
 

【编辑推荐】

  1. 专家提醒 CSS编码时易范十大错误
  2. CSS布局中float和position属性使用技巧
  3. 四种方法轻松实现CSS隔行换色
  4. CSS Sprites对CSS布局的意义及优缺点
  5. CSS布局中display:inline-block属性用法详解

 

 

责任编辑:佚名 来源: 52css.com
相关推荐

2015-03-24 09:37:50

SwiftiOSCALayer

2010-08-30 14:03:59

CSS

2023-11-28 07:48:23

SQL Server数据库

2010-09-01 11:34:33

CSS布局

2010-09-07 15:31:21

DIV CSS表单

2023-09-21 15:10:55

2010-08-30 13:54:30

CSS

2010-09-08 14:35:22

CSS

2010-09-09 13:44:06

DIVCSS

2010-09-02 11:18:46

CSSfloatposition

2009-03-04 12:03:30

LinuxZsh技巧

2010-09-03 15:59:19

DIV CSS

2010-08-24 09:12:14

CSS

2012-03-19 09:55:38

CSS

2010-09-01 10:27:12

CSS

2020-07-13 13:00:24

CSS变量技巧

2010-08-23 16:31:33

CSS

2010-09-13 16:13:47

DIV CSS表单

2012-03-29 09:35:32

WEBCSS

2010-09-01 13:55:14

CSS
点赞
收藏

51CTO技术栈公众号