解决div图层被表单(select挡住)盖住的问题2008-08-15 16:43工作中经常要使用Div层来实现一些效果,最常见的就是提示和菜单效果了,在IE下使用会碰到层被select等表单元素盖住的问题(Firefox下不会,IE就是喜欢弄些BT的东西来开发大家解决问题的能力),于是聪明的web开发者找出了解救被强*的Div层的方法,那就是把Iframe元素拖出来做垫背的!!使用iframe来解决问题有两种方法:
第一种是把iframe在div层中,把原来div中的内容放在iframe中,这样虽然div依然被盖住,iframe中的内容就不会被盖住了。这种方法使用起来会比较麻烦,因为内容要另外做成一个页面,通过src属性来引入iframe,增加了页面数量,而且内容页面中的链接和表单等元素要在iframe所在页面中起作用,所以处理起来会很麻烦,所以这种方法不够好。
第二种是在div下面放一个同样大小的iframe元素,直接挡住select表单而使div正常显示。这种方法比较完美的解决了问题,只要定义好iframe的位置和大小就行,所以用这种方法比较好。
我在做下拉菜单时使用了第二种方法来解决这个问题,菜单原来的结构是:
<code>
<div>
<ul>
<li>menu1</li>
<li>menu2</li>
<li>menu3</li>
<li>submenu
<ul>
<li>submenu1</li>
<li>submenu2</li>
<li>submenu3</li>
</ul>
</li>
</ul>
</div>
<code>
因为显示时菜单块实际是<ul></ul>部分,所以我在其中插入iframe,将其垫在<li></li>菜单项下面,结构变成这样:
<code>
<div>
<ul> //一级菜单,不用插入iframe
<li>menu1</li>
<li>menu2</li>
<li>menu3</li>
<li>submenu
<ul>
<iframe></iframe>
<li>submenu1</li>
<li>submenu2</li>
<li>submenu3</li>
</ul>
</li>
</ul>
</div>
<code>
iframe的大小在生成菜单时通过js来自动设置
iframe的高=父元素ul的高
iframe的宽=父元素ul的宽
(li样式中定义宽和高,以及定义display:block;position:relative;这样才能正确获得高和宽,并且iframe会显示在li菜单项下面)
设置iframe的位置很简单,因为和li同属于ul的子元素,所以通过样式就可以实现
给iframe设置样式position:absolute;top:0;left:0;就可以了,iframe会自动浮动在li下面。
分享到:
相关推荐
在网页设计中,有时我们需要通过不同的交互方式来切换页面上的元素显示,比如通过下拉框(select)的选择来改变div图层的展示。本示例就是利用jQuery库来实现这样的功能,使得用户在select中选择不同的选项时,对应...
在Vue中,`v-model`指令被广泛用于实现这一功能,特别是在处理表单输入时。它简化了开发者在视图层和数据模型之间的交互,使得数据的更新能够即时反映到用户界面上。 在传统的`v-model`使用中,我们通常直接在表单...
本篇文章将深入探讨如何创建一个支持数据双向绑定的`select`组件,这对于实现复杂表单交互尤其重要。双向绑定使得视图层与数据模型之间可以自动保持同步,大大简化了开发流程。 首先,我们注意到组件名为`VueSelect...
通过Struts2的标签库,我们可以轻松地构建出符合MVC架构的Web应用,将视图层与业务逻辑分离,使得代码更加清晰、易于维护。同时,这些标签还提供了丰富的功能,如数据校验、国际化、AJAX支持等,大大提升了开发效率...
Vue.js 是一个轻量级的前端JavaScript框架,专注于视图层的构建,具有易学易用的特点,并且能够方便地与其他库或现有项目整合。在Vue中,`v-`前缀是Vue自定义指令的标志,它们提供了一种声明式的方式去操作DOM。 在...
它通常用在表单元素上,如`<input>`、`<textarea>`或`<select>`,将用户的输入与Vue实例的数据属性关联起来。例如: ```html <div> <p>{{ message }} </div> export default { data() { return { ...
Struts2是一个流行的Java Web框架,它提供了一套丰富的标签库,使得开发者在构建MVC应用时能够更方便地处理视图层。这些标签极大地方便了页面的编写,同时具有良好的可扩展性和代码复用性。Struts2的标签库不仅限于...
`v-model`通常用于`<input>`、`<select>`、`<textarea>`等表单元素,以及自定义组件中。 MVVM(Model-View-ViewModel)是Vue的设计模式,其中ViewModel作为模型和视图之间的桥梁,负责数据和界面的同步。在Vue中,...
16. `<s:select>`:创建下拉选择框,功能与`s:combobox`类似,但更通用,可自定义标签头、列表等。 以上是Struts2中常用的一些标签,熟练掌握它们能极大提高开发效率,使视图层代码更加简洁、易读。在实际开发中,...
它不仅仅是一个指令,更是一个强大的工具,它将视图层的输入和后端的数据模型绑定起来,使得数据在模型和视图之间同步变化,极大地减少了前端开发中需要处理的数据同步问题。此外,它还为数据验证和表单状态的管理...
- 用于在视图层直接调用Action,简化了从前端到后端的交互流程。 #### 3. `<s:actionerror>` 和 `<s:actionmessage>` - 分别用于显示Action错误和消息,增强了错误和信息的展示能力。 #### 4. `<s:append>` - 值...
- **Struts2**:解决了Struts1的一些问题,增加了更多高级特性,如拦截器、文件上传等功能。 ##### 3. 为什么要使用Struts2框架 - **简化开发**:提供了丰富的标签库,降低了编码复杂度。 - **易于维护**:MVC模式...
Struts标签是Apache Struts框架提供的用于简化JSP页面开发的组件,它们使得开发者能够更加高效、简洁地处理视图层逻辑。以下是一些主要的Struts标签及其用途的详细说明: A. `<s:a>` 和 `<s:action>`: 这两个标签...
Struts2是一个强大的MVC框架,它为Java开发者...以上就是Struts2标签库的主要内容,它们极大地提高了开发效率,降低了视图层与业务逻辑之间的耦合度,使得开发者可以更加专注地构建功能丰富的、用户体验良好的Web应用。
该标签用于执行一个指定的 Action,可以在视图层直接调用后台 Action 方法,从而避免了传统表单提交的繁琐步骤。 **示例:** ```xml <!-- action logic here --> ``` ##### 3. `<s:actionerror/>` 和 `...
v-model指令最常用于input、select和textarea等表单元素上。 接下来,我们通过一个例子来深入了解v-model的工作原理。在HTML模板中,我们可以这样使用v-model: ```html <div id="app"> 消息:{{ message }} </...
在Vue.js中,`v-model` 是用于实现数据双向绑定的关键指令,它使得视图层与数据层之间的交互变得简单。然而,当需要在循环中创建多个表单元素,如`input`,并希望每个输入框都有自己的独立绑定时,就需要采取特定...
**功能概述**:`ng-repeat` 是 AngularJS 中非常强大的一个指令,它允许你遍历数组或对象,并且能够在视图层动态地展示出数组或对象中的每一项。 **应用场景**:通常用于创建列表(如表格、无序列表或有序列表)。 ...
26. **性别输入**:在表单中,通常使用`<select>`控件输入性别。 27. **密码输入框**:设置`type="password"`可以让文本框显示为星号或圆点,隐藏输入内容。 28. **选项组事件**:当用户在选项组中选择任一选项时...
- `<sx:div>`:创建一个可通过AJAX局部刷新的div区域。 - `<sx:submit>`:使用AJAX更新元素或提交表单。 - `<sx:tree>`:创建支持AJAX的树形组件。 6. **常见的拦截器及其作用**: - `i18n`:处理国际化显示。 ...