在CSS定位布局中,一般遵循 外部相对定位,内部绝对定位 这是为什么呢

html-css016

在CSS定位布局中,一般遵循 外部相对定位,内部绝对定位 这是为什么呢,第1张

默认情况下,所有的元素都是静态定位(position: static),在默认情况下,如果:

<div id="wrap>

  <div id="content">content</div>

</div>

这时候,如果内部#content 这个div使用绝对定位,那么这个内部div#content 不是相对于外部div#wrap来定位,而是相对于div#wrap的祖先元素中包含(position:relative或者 position:absolute)的那个祖先元素来定位,如果div#wrap的祖先元素都没有(position:relative或者 position:absolute),那么div#content相对于<body></body>来定位。

一旦外部的div#wrap是position:relative或者 position:absolute,那么div#content相对于div#wrap定位。就是把div#wrap的左上点当做(0,0)坐标,div#wrap(div#wrap的高度是height,宽度是width)的右下点当做(width,height)坐标。

1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)

2, 居中问题.

1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行.)

2).水平居中. margin: 0 auto(当然不是万能)

3, 若需给 a 标签内内容加上 样式, 需要设置 display: block(常见于导航标签)

4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题.

5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)

6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.

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

2 css布局中的居中问题

主要的样式定义如下:

body {TEXT-ALIGN: center}

#center { MARGIN-RIGHT: autoMARGIN-LEFT: auto}

说明:

首先在父级元素定义TEXT-ALIGN: center这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。

但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: autoMARGIN-LEFT: auto”

需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV里,你可以依次拆出多个div,

只要在每个拆出的div里定义MARGIN-RIGHT: autoMARGIN-LEFT: auto就可以了。

我也是复制的,给你一个网站,可以看看希望对你有帮助http://www.csspeak.cn/

随着时间的积累这里的内容会有增加或者修改,希望下面的东西对后来的标准学习者会有些帮助,或者毫无用处.

主要的内容是在IE和MOZILLA之间的差异和容易忽视的细节,一些经典应用的最佳实现方法,应该避免违犯的错误.

由于是自己平时经验的积累,难免会出现一些错误的解释,如有幸被高人看到,请务必指出,先谢过了.

ul

标签在Mozilla中默认是有padding值的,而在IE中只有margin有值.

同一个的class选择符可以在一个文档中重复出现,而id选择符却只能出现一次对一个标签同时使用class和id进行CSS定义,如果定义有重复,id选择符做的定义有效.

一个兼容性调整(IE和Mozilla)的笨办法:

初学可能会碰到这样一个情况:同样一个标签的属性在IE设置成A显示是正常的,而在Mozilla里必须要设成B才能正常显示,或者两个倒过来.

临时解决方法:

选择符

{属性名:B

!important

属性名:A}

如果一组要嵌套的标签之间需要些间距的话,那就留给位于里面的标签的margin属性吧,而不要去定义位于外面的标签的padding

li

标签前面的图标推荐使用background-image

而不是list-style-image

IE分不清继承关系和父子关系的差别,全部都是继承关系.

在给你的标签疯狂加选择符的时候,别忘了在CSS里给选择符加上注释.

等你以后修改你的CSS的时候就知道为什么要这么做了.

如果你给一个标签设置了一个深色调的背景图片和亮色调的文字效果.建议这个时候给你的标签再设置一个深色调的背景颜色.

定义链接的四种状态要注意先后顺序:

Link

Visited

Hover

Active

与内容无关的图片请使用background

定义颜色可以缩写#8899FF

=

#89F

table

在某些方面比其它标签表现的要好的多.请在需要列对齐的地方用它

<script>没有language这个属性,应该写成这样:

<script

type="text/javascript">

标题是标题,标题的文字是标题的文字.有时候标题不一定需要显示文字,所以:<h1>标题内容</h1>

改成

<h1><span>标题内容</span></h1>

完美的单象素外框线表格

table

{border-collapse:collapse}

td

{border:#000

solid

1px}

margin取负值可以在标签使用绝对定位的时候起到相对定位的作用,在页面居中显示时,使用绝对定位的层不适合使用left:XXpx这个属性.

把这个层放到一个要相对定位的标签旁,然后使用margin的负值是个好方法.

绝对定位时使用margin值定位可以达到相对于本身所在位置的定,这与top,left等属性相对与窗口边缘的定位不同.绝对定位的优势在于可以让其它元素忽略它的存在.