求CSS下拉菜单源码

html-css027

求CSS下拉菜单源码,第1张

用CSS 快速定制下拉菜单

访问过 Microsoft 中文主页的很多人都不会忘记它新奇的下拉式菜单吧. 它的确给我们带来一股清新的网风, 它实现了网页上下拉菜单, 不仅剩去了很多点击的麻烦, 并开创了一个网页设计的

未来之路.

我们知道, 通过 CSS 可以确切地定义一个 HTML 元素的样式,包括它的颜色、字体、边框、3D效果、滤镜等等,我们在考虑制作下拉菜单时,首先是想到 CSS 的定位技术,它精确的定位能力可以使我们放心的甚至是在三维空间设置位置和可见性。

CSS 定位使用"position"属性的两种方法定位 HTML 元素,这就是相对定位(relative)和绝对定位(absolute),相关的定位属性有9个:

position、left、top、width、height、clip、overflow、z-index、visibility

当使用"absolute(绝对)"定位元素时,该元素就被当作一个矩形覆盖物来格式化,格式化后的矩形区域就变成了一个可以放置其他 HTML 元素的容器,这个容器可以凌驾于 HTML 文档的布局之上,区域下面的文字和图形永远也无法环绕和透过该容器显示出来。这样被绝对定位了的元素我们称之为块级元素,在块级元素内放置的 HTML元素我们称之为子元素。

另外,当我们在移动鼠标时,具有对 HTML 元素有感应的 JAVA 动作是 onmouseup、onMouseOver、onMouseOut.

onmouseup 为鼠标点击之后的释放动作

onMouseOver 为鼠标经过时的动作

onMouseOut 为鼠标离开某区域时的动作.

除此之外,我们建立菜单都是为了表达一定的快捷的操作,通常是超级连接(URL).菜单上的每一条命令都应该对鼠标的行踪、点击有感应。所以,必须建立菜单对鼠标行为的多级捕获。首先是容器本身(块级元素)对鼠标经过时和离开时建立捕获,其次是菜单上各条命令对鼠标行为的捕获。也就是鼠标经过时,菜单打开响应,鼠标离去是菜单关闭。

因为菜单都是在网页调入时动态建立的,为了减轻浏览器的运行负担,加快速度,所以各个菜单只初始化一次,以后的打开和关闭操作仅仅是容器本身(块级元素)的可视与隐藏而已。

菜单的动态建立用 document.write 语句完成。 ---- 也因为是使用 CSS,因此每个菜单的第一句开头应该如此:

document.write ('<STYLE type="text/css" >...后跟菜单定位语法,根据浏览器的不同一般而言,Netscape 用相对定位, IE 用绝对定位要好一些。

然后是建立容器(块级元素) 对鼠标 onMouseOver 、 onMouseOut 的捕获。可以这样写: document.write('<span id=菜单标识 onMouseOver="发生的打开动作" onMouseOut="菜单的关闭动作" >...

其次,以如下方式层层建立菜单及捕获行为。需要注意的是菜单项定义是和鼠标感应操作定义在一块的。

<a href="超级连接" onMouseOver="菜单响应事件" onMouseOver="菜单关闭事件">第一条命令</a ><br >

<a href="超级连接" onMouseOver="菜单响应事件" onMouseOver="菜单关闭事件" >第二条命令</a ><br >

<a href="超级连接" onMouseOver="菜单响应事件" onMouseOver="菜单关闭事件" >第三条命令</a ><br >

...

如果要把菜单加上边框的话,只须在菜单(块级元素)属性里加上 border: <粗细 ><长度 ><颜色 ><三维效果 >即可。例如:

...{padding: 2pt} #TestMenu1{border:thin soild outsetposition:absolute... 就成为一个立体的细边菜单。

以下是原代码 6KB,载入浏览器时,鼠标在“下拉菜单演示”、“编译器”和“许可说明” 停靠时,便会出现下拉式菜单。

一般写在<head>和</head>之间,参考下面写法:

<style type="text/css">

body {margin:0 autowidth:100%font-size:12pxcolor:#666}

.c{border-collapse:collapsemargin:0 auto}

</style>

CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。总体来说,CSS具有以下特点:

(1)丰富的样式定义

CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离允许随意改变文本的大小写方式、修饰方式以及其他页面效果。

(2)易于使用和修改

CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。另外,可以将相同样式的元素进行归类,使用同一个样式进行定义,也可以将某个样式应用到所有同名的HTML标签中,也可以将一个CSS样式指定到某个页面元素中。如果要修改样式,我们只需要在样式列表中找到相应的样式声明进行修改。

(3)多页面应用

CSS样式表可以单独存放在一个CSS文件中,这样我们就可以在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统一。

1)把当前的编辑器form表单提交修改为Javascript方式提交。

<form action="index.php" method="POST" name="myForm">

form表单加入name元素。

<button class="btn2">提交</button>

submit提交改为button方式。

<script type="text/javascript">

function submitForm(){

document.myForm.action = document.myForm.action

document.myForm.submit()

}

$(".btn2").click(function(){

submitForm()

})

</script>

2)通过UEditor API中的editor.execCommand( 'source')方法事件,在源代码状态提交时切换为编辑模式。

<script type="text/javascript">

var ue = UE.getEditor('editor',{

toolbars: [["undo","redo","|","bold","italic","underline","strikethrough","|","fontsize","forecolor","backcolor","|","removeformat","|","selectall","cleardoc","source","|","unlink","link","|","insertimage"]],wordCount:false

})

function submitForm(){

document.myForm.action = document.myForm.action

document.myForm.submit()

}

$(".btn2").click(function(){

ue.execCommand('source')

submitForm()

})

</script>