DHTML CSS Positioning (CSS-P)
CSS 用于为 HTML 元素添加样式。
实例
注释:大多数 DHTML 实例需要IE 4.0+、Netscape 7+ 或者 Opera 7+!
position:relative
如何相对于元素的正常位置来定位这个元素。
<html>
<head>
<style>
h1.ex1
{
position:relative;
left:20px;
}
h1.ex2
{
position:relative;
left:-20px;
}
</style>
</head>
<body>
<h1>Normal Heading</h1>
<h1 class="ex1">Heading +20</h1>
<h1 class="ex2">Heading -20</h1>
<p>相对定位相对于元素的正常位置对其进行移动。</p>
<p>"left:20" 给元素的 LEFT 位置增加 20 像素。</p>
<p>"left:-20" 从元素的 LEFT 位置减去 20 像素。</p>
</body>
</html>
position:relative
如何相对其正常位置来定位所有的标题。
<html>
<head>
<style>
h1
{
position:relative;
left:40px;
}
</style>
</head>
<body>
<h1>标题 A</h1>
<p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
<h1>标题 B</h1>
<p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
<h1>标题 C</h1>
<p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
<h1>标题 D</h1>
<p>这是段落。这是段落。这是段落。这是段落。这是段落。</p>
</body>
</html>
position:absolute
如何使用一个绝对值来定义一个元素。
<html>
<head>
<style>
h1.x
{
position:absolute;
left:100px;
top:150px;
}
</style>
</head>
<body>
<h1 class="x">这是一个标题</h1>
<p>通过绝对定位,可以把元素放置页面的任何位置。</p>
<p>这个标题的 LEFT 位置距离页面左侧 100 像素。TOP 位置距离页面顶端 150 个像素。</p>
</body>
</html>
您可以在页面下方找到更多的例子。
哪些属性可与 CSS-P 一同使用?
首先,此元素必须指定 position 属性(relative 或 absolute)。
然后,我就可以设置下列 CSS-P 属性了:
- left - 元素的左侧位置
- top - 元素的顶端位置
- visibility - 指定元素应当可见还是隐藏
- z-index - 元素的堆叠次序
- clip - 元素裁剪
- overflow - 如何处理溢出的内容
Position
CSS 的 position 属性允许您控制文档中某个元素的定位。
position:relative
position:relative 属性可向对于一个元素的当前位置来定位此元素。
下面的例子把这个 div 元素定位到距离其正常位置右方 10 像素的位置:
- div
- {
- position:relative;
- left:10;
- }
position:absolute
position:absolute 属性根据距离窗口的 margin 来定位一个元素。
下面的例子把这个 div 元素定位到距离其包含块左侧 margin 的右方 10 像素的位置:
- div
- {
- position:absolute;
- left:10;
- }
Visibility
visibility 属性可决定一个元素是否可见。
visibility:visible
visibility:visible 属性可使元素可见。
- h1
- {
- visibility:visible;
- }
visibility:hidden
visibility:hidden 属性可使元素不可见。
- h1
- {
- visibility:hidden;
- }
Z-index
z-index 属性用于把一个元素放置于另一个元素之后。z-index 的默认值是 0。值越高,其优先权也越高。z-index: -1 更低的优先权。
- h1
- {
- z-index:1;
- }
- h2
- {
- z-index:2;
- }
在上面的例子中,如果 h1 和 h2 彼此叠加,则 h2 元素会位于 h1 的上面。
Filters
filter 属性允许您向文本和图像添加更多的样式效果。
- h1
- {
- width:100%;
- filter:glow;
- }
注释:若需要使用 filter 属性,请始终指定元素的宽度。
上面的例子产生下面的输出:
Header
不同的滤镜
注释:除非 background-color 属性被设置为 transparent,否则某些 Filter 属性将无法工作!
属性 | 参数 | 描述 | 例子 |
---|---|---|---|
alpha |
opacity finishopacity style startx starty finishx finishy | 允许您设置元素的透明度 |
|
blur |
add direction strength | 使元素模糊 |
|
chroma | color | 使指定的颜色透明 |
|
fliph | none | 水平反转元素 | filter:fliph; |
flipv | none | 垂直反转元素 | filter:flipv; |
glow |
color strength | 使元素发光 |
|
gray | none | 用黑白色来呈现元素 | filter:gray; |
invert | none | 用反转的颜色和亮度值来呈现元素 | filter:invert; |
mask | color | 呈现带有指定背景色和透明前景色的元素 |
|
shadow |
color direction | 呈现带有阴影的元素 |
|
dropshadow |
color offx offy positive | 呈现带有阴影的元素 |
|
wave |
add freq lightstrength phase strength | 把元素呈现为波浪状 |
|
xray | none | 使用黑白色显示带有反转色和亮度值的元素 | filter:xray; |
Background
background 属性允许您选用自己的背景。
background-attachment:scroll
背景随页面滚动。
background-attachment:fixed
背景不会随页面滚动。
更多实例
Visibility
如何使某个元素不可见。你希望此元素显示还是不显示?
<html>
<head>
<style>
h1.one
{
visibility:visible;
}
h1.two
{
visibility:hidden;
}
</style>
</head>
<body>
<h1 class="one">标题 一</h1>
<h1 class="two">标题 二</h1>
<p>标题二在哪儿?</p>
</body>
</html>
Z-index
Z-index 可用于把一个元素放置于另一个元素之后,通过使用 Z-index 次序。
<html>
<head>
<style>
img.x
{
position:absolute;
left:0px;
top:0px;
z-index:-1;
}
</style>
</head>
<body>
<h1>这是一个标题</h1>
<img class="x" src="/i/eg_bulbon.gif" />
<p>默认 z-index 是 0。Z-index -1 有更低的优先级。</p>
</body>
</html>
Z-index
请看一下,元素的 Z-index 次序已经改变了。
<html>
<head>
<style>
img.x
{
position:absolute;
left:0px;
top:0px;
z-index:1;
}
</style>
</head>
<body>
<h1>这是一个标题</h1>
<img class="x" src="/i/eg_bulbon.gif" />
<p>默认 z-index 是 0。Z-index 1 有更高的优先级。</p>
</body>
</html>
Cursors
通过 CSS 来改变鼠标指针的样式。
<html>
<body>
<p>请把鼠标移动到单词上,这样会看到鼠标指针的变化:</p>
<span style="cursor: auto">Auto</span><br />
<span style="cursor: crosshair">Crosshair</span><br />
<span style="cursor: default">Default</span><br />
<span style="cursor: pointer">Pointer</span><br />
<span style="cursor: hand">Hand</span><br />
<span style="cursor: move">Move</span><br />
<span style="cursor: e-resize">e-resize</span><br />
<span style="cursor: ne-resize">ne-resize</span><br />
<span style="cursor: nw-resize">nw-resize</span><br />
<span style="cursor: n-resize">n-resize</span><br />
<span style="cursor: se-resize">se-resize</span><br />
<span style="cursor: sw-resize">sw-resize</span><br />
<span style="cursor: s-resize">s-resize</span><br />
<span style="cursor: w-resize">w-resize</span><br />
<span style="cursor: text">text</span><br />
<span style="cursor: wait">wait</span><br />
<span style="cursor: help">help</span><br />
</body>
</html>
Filters
使用 filter 属性来改变标题的样式。
<html>
<head>
<style>
h2
{
width:100%;
}
</style>
</head>
<body>
<h2 style="filter:glow()">发光</h2>
<h2 style="filter:blur()">模糊</h2>
<h2 style="filter:fliph()">Flip H</h2>
<h2 style="filter:flipv()">Flip V</h2>
<h2 style="filter:shadow()">阴影</h2>
<h2 style="filter:dropshadow()">阴影</h2>
<h2 style="filter:wave(Strength=2)">波浪</h2>
<p>注释:如果元素的 width 属性没有设置,那么滤镜不会起作用。</p>
</body>
</html>
Filters on Images
filter 属性也可以应用于图像,这里有一些已应用了 filter 属性的图像例子。
<html>
<head>
<style>
div
{
width:160px;
height:120px;
}
</style>
</head>
<body>
Alpha:
<div style="filter:alpha(Opacity=20)">
<img src="/i/eg_landscape.jpg" width="160" height="120" />
</div>
Gray:
<div style="filter:gray()">
<img src="/i/eg_landscape.jpg" width="160" height="120" />
</div>
Invert:
<div style="filter:invert()">
<img src="/i/eg_landscape.jpg" width="160" height="120" />
</div>
Xray:
<div style="filter:xray()">
<img src="/i/eg_landscape.jpg" width="160" height="120" />
</div>
Mask:
<div style="position:absolute;left:10;top:610;">
<img src="/i/eg_landscape.jpg" width="160" height="120" />
</div>
<div style="position: absolute; left: 10; top: 610; filter: mask(color=#ffffff); width: 160; height: 120">
<h2>The mask value makes the text transparent</h2>
</div>
</body>
</html>
Watermark
当页面滚动时不会移动的背景图片。
<html>
<head>
<style>
body
{
background-attachment: fixed;
background-image: url("/i/eg_bulboff.gif");
background-repeat: no-repeat;
}
</style>
</head>
<body>
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
<br /><br /><br /><br /><br /><br /><br />
<p>请滚动页面,看看会发生什么。</p>
</body>
</html>