DHTML CSS Positioning (CSS-P)

CSS 用于为 HTML 元素添加样式。

实例

注释:大多数 DHTML 实例需要IE 4.0+、Netscape 7+ 或者 Opera 7+!

position:relative

如何相对于元素的正常位置来定位这个元素。

  1. <html>
  2. <head>
  3. <style>
  4. h1.ex1
  5. {
  6. position:relative;
  7. left:20px;
  8. }
  9. h1.ex2
  10. {
  11. position:relative;
  12. left:-20px;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <h1>Normal Heading</h1>
  18. <h1 class="ex1">Heading +20</h1>
  19. <h1 class="ex2">Heading -20</h1>
  20. <p>相对定位相对于元素的正常位置对其进行移动。</p>
  21. <p>"left:20" 给元素的 LEFT 位置增加 20 像素。</p>
  22. <p>"left:-20" 从元素的 LEFT 位置减去 20 像素。</p>
  23. </body>
  24. </html>

position:relative

如何相对其正常位置来定位所有的标题。

  1. <html>
  2. <head>
  3. <style>
  4. h1
  5. {
  6. position:relative;
  7. left:40px;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <h1>标题 A</h1>
  13. <p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
  14. <h1>标题 B</h1>
  15. <p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
  16. <h1>标题 C</h1>
  17. <p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
  18. <h1>标题 D</h1>
  19. <p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
  20. </body>
  21. </html>

position:absolute

如何使用一个绝对值来定义一个元素。

  1. <html>
  2. <head>
  3. <style>
  4. h1.x
  5. {
  6. position:absolute;
  7. left:100px;
  8. top:150px;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <h1 class="x">这是一个标题</h1>
  14. <p>通过绝对定位,可以把元素放置页面的任何位置。</p>
  15. <p>这个标题的 LEFT 位置距离页面左侧 100 像素。TOP 位置距离页面顶端 150 个像素。</p>
  16. </body>
  17. </html>

您可以在页面下方找到更多的例子。

哪些属性可与 CSS-P 一同使用?

首先,此元素必须指定 position 属性(relative 或 absolute)。

然后,我就可以设置下列 CSS-P 属性了:

  • left - 元素的左侧位置
  • top - 元素的顶端位置
  • visibility - 指定元素应当可见还是隐藏
  • z-index - 元素的堆叠次序
  • clip - 元素裁剪
  • overflow - 如何处理溢出的内容

Position

CSS 的 position 属性允许您控制文档中某个元素的定位。

position:relative

position:relative 属性可向对于一个元素的当前位置来定位此元素。

下面的例子把这个 div 元素定位到距离其正常位置右方 10 像素的位置:

  1. div
  2. {
  3. position:relative;
  4. left:10;
  5. }

position:absolute

position:absolute 属性根据距离窗口的 margin 来定位一个元素。

下面的例子把这个 div 元素定位到距离其包含块左侧 margin 的右方 10 像素的位置:

  1. div
  2. {
  3. position:absolute;
  4. left:10;
  5. }

Visibility

visibility 属性可决定一个元素是否可见。

visibility:visible

visibility:visible 属性可使元素可见。

  1. h1
  2. {
  3. visibility:visible;
  4. }

visibility:hidden

visibility:hidden 属性可使元素不可见。

  1. h1
  2. {
  3. visibility:hidden;
  4. }

Z-index

z-index 属性用于把一个元素放置于另一个元素之后。z-index 的默认值是 0。值越高,其优先权也越高。z-index: -1 更低的优先权。

  1. h1
  2. {
  3. z-index:1;
  4. }
  5.  
  6. h2
  7. {
  8. z-index:2;
  9. }

在上面的例子中,如果 h1 和 h2 彼此叠加,则 h2 元素会位于 h1 的上面。

Filters

filter 属性允许您向文本和图像添加更多的样式效果。

  1. h1
  2. {
  3. width:100%;
  4. filter:glow;
  5. }

注释:若需要使用 filter 属性,请始终指定元素的宽度。

上面的例子产生下面的输出:

Header

不同的滤镜

注释:除非 background-color 属性被设置为 transparent,否则某些 Filter 属性将无法工作!

属性 参数 描述 例子
alpha opacity
finishopacity
style
startx
starty
finishx
finishy
允许您设置元素的透明度
  1. filter:alpha(
  2. opacity=20,
  3. finishopacity=100,
  4. style=1,
  5. startx=0,
  6. starty=0,
  7. finishx=140,
  8. finishy=270)
blur add
direction
strength
使元素模糊
  1. filter:blur(
  2. add=true,
  3. direction=90,
  4. strength=6);
chroma color 使指定的颜色透明
  1. filter:chroma(
  2. color=#ff0000)
fliph none 水平反转元素 filter:fliph;
flipv none 垂直反转元素 filter:flipv;
glow color
strength
使元素发光
  1. filter:glow(
  2. color=#ff0000,
  3. strength=5);
gray none 用黑白色来呈现元素 filter:gray;
invert none 用反转的颜色和亮度值来呈现元素 filter:invert;
mask color 呈现带有指定背景色和透明前景色的元素
  1. filter:mask(
  2. color=#ff0000);
shadow color
direction
呈现带有阴影的元素
  1. filter:shadow
  2. (color=#ff0000,
  3. direction=90);
dropshadow color
offx
offy
positive
呈现带有阴影的元素
  1. filter:dropshadow
  2. (color=#ff0000,
  3. offx=5,
  4. offy=5,
  5. positive=true);
wave add
freq
lightstrength
phase
strength
把元素呈现为波浪状
  1. filter:wave(
  2. add=true,
  3. freq=1,
  4. lightstrength=3,
  5. phase=0,
  6. strength=5)
xray none 使用黑白色显示带有反转色和亮度值的元素 filter:xray;

Background

background 属性允许您选用自己的背景。

background-attachment:scroll

背景随页面滚动。

background-attachment:fixed

背景不会随页面滚动。

更多实例

Visibility

如何使某个元素不可见。你希望此元素显示还是不显示?

  1. <html>
  2. <head>
  3. <style>
  4. h1.one
  5. {
  6. visibility:visible;
  7. }
  8. h1.two
  9. {
  10. visibility:hidden;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <h1 class="one">标题 一</h1>
  16. <h1 class="two">标题 二</h1>
  17. <p>标题二在哪儿?</p>
  18. </body>
  19. </html>

Z-index

Z-index 可用于把一个元素放置于另一个元素之后,通过使用 Z-index 次序。

  1. <html>
  2. <head>
  3. <style>
  4. img.x
  5. {
  6. position:absolute;
  7. left:0px;
  8. top:0px;
  9. z-index:-1;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <h1>这是一个标题</h1>
  15. <img class="x" src="/i/eg_bulbon.gif" />
  16. <p>默认 z-index 是 0。Z-index -1 有更低的优先级。</p>
  17. </body>
  18. </html>

Z-index

请看一下,元素的 Z-index 次序已经改变了。

  1. <html>
  2. <head>
  3. <style>
  4. img.x
  5. {
  6. position:absolute;
  7. left:0px;
  8. top:0px;
  9. z-index:1;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <h1>这是一个标题</h1>
  15. <img class="x" src="/i/eg_bulbon.gif" />
  16. <p>默认 z-index 是 0。Z-index 1 有更高的优先级。</p>
  17. </body>
  18. </html>

Cursors

通过 CSS 来改变鼠标指针的样式。

  1. <html>
  2. <body>
  3. <p>请把鼠标移动到单词上,这样会看到鼠标指针的变化:</p>
  4. <span style="cursor: auto">Auto</span><br />
  5. <span style="cursor: crosshair">Crosshair</span><br />
  6. <span style="cursor: default">Default</span><br />
  7. <span style="cursor: pointer">Pointer</span><br />
  8. <span style="cursor: hand">Hand</span><br />
  9. <span style="cursor: move">Move</span><br />
  10. <span style="cursor: e-resize">e-resize</span><br />
  11. <span style="cursor: ne-resize">ne-resize</span><br />
  12. <span style="cursor: nw-resize">nw-resize</span><br />
  13. <span style="cursor: n-resize">n-resize</span><br />
  14. <span style="cursor: se-resize">se-resize</span><br />
  15. <span style="cursor: sw-resize">sw-resize</span><br />
  16. <span style="cursor: s-resize">s-resize</span><br />
  17. <span style="cursor: w-resize">w-resize</span><br />
  18. <span style="cursor: text">text</span><br />
  19. <span style="cursor: wait">wait</span><br />
  20. <span style="cursor: help">help</span><br />
  21. </body>
  22. </html>

Filters

使用 filter 属性来改变标题的样式。

  1. <html>
  2. <head>
  3. <style>
  4. h2
  5. {
  6. width:100%;
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <h2 style="filter:glow()">发光</h2>
  12. <h2 style="filter:blur()">模糊</h2>
  13. <h2 style="filter:fliph()">Flip H</h2>
  14. <h2 style="filter:flipv()">Flip V</h2>
  15. <h2 style="filter:shadow()">阴影</h2>
  16. <h2 style="filter:dropshadow()">阴影</h2>
  17. <h2 style="filter:wave(Strength=2)">波浪</h2>
  18. <p>注释:如果元素的 width 属性没有设置,那么滤镜不会起作用。</p>
  19. </body>
  20. </html>

Filters on Images

filter 属性也可以应用于图像,这里有一些已应用了 filter 属性的图像例子。

  1. <html>
  2. <head>
  3. <style>
  4. div
  5. {
  6. width:160px;
  7. height:120px;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. Alpha:
  13. <div style="filter:alpha(Opacity=20)">
  14. <img src="/i/eg_landscape.jpg" width="160" height="120" />
  15. </div>
  16. Gray:
  17. <div style="filter:gray()">
  18. <img src="/i/eg_landscape.jpg" width="160" height="120" />
  19. </div>
  20. Invert:
  21. <div style="filter:invert()">
  22. <img src="/i/eg_landscape.jpg" width="160" height="120" />
  23. </div>
  24. Xray:
  25. <div style="filter:xray()">
  26. <img src="/i/eg_landscape.jpg" width="160" height="120" />
  27. </div>
  28. Mask:
  29. <div style="position:absolute;left:10;top:610;">
  30. <img src="/i/eg_landscape.jpg" width="160" height="120" />
  31. </div>
  32. <div style="position: absolute; left: 10; top: 610; filter: mask(color=#ffffff); width: 160; height: 120">
  33. <h2>The mask value makes the text transparent</h2>
  34. </div>
  35. </body>
  36. </html>

Watermark

当页面滚动时不会移动的背景图片。

  1. <html>
  2. <head>
  3. <style>
  4. body
  5. {
  6. background-attachment: fixed;
  7. background-image: url("/i/eg_bulboff.gif");
  8. background-repeat: no-repeat;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <p>请滚动页面,看看会发生什么。</p>
  14. <br /><br /><br /><br /><br /><br /><br />
  15. <p>请滚动页面,看看会发生什么。</p>
  16. <br /><br /><br /><br /><br /><br /><br />
  17. <p>请滚动页面,看看会发生什么。</p>
  18. <br /><br /><br /><br /><br /><br /><br />
  19. <p>请滚动页面,看看会发生什么。</p>
  20. <br /><br /><br /><br /><br /><br /><br />
  21. <p>请滚动页面,看看会发生什么。</p>
  22. <br /><br /><br /><br /><br /><br /><br />
  23. <p>请滚动页面,看看会发生什么。</p>
  24. <br /><br /><br /><br /><br /><br /><br />
  25. <p>请滚动页面,看看会发生什么。</p>
  26. <br /><br /><br /><br /><br /><br /><br />
  27. <p>请滚动页面,看看会发生什么。</p>
  28. <br /><br /><br /><br /><br /><br /><br />
  29. <p>请滚动页面,看看会发生什么。</p>
  30. </body>
  31. </html>