`
jianhan513
  • 浏览: 20761 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

解决div图层被表单(select挡住)盖住的问题

阅读更多

解决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)的选择来改变div图层的展示。本示例就是利用jQuery库来实现这样的功能,使得用户在select中选择不同的选项时,对应...

    vue自定v-model实现表单数据双向绑定问题

    在Vue中,`v-model`指令被广泛用于实现这一功能,特别是在处理表单输入时。它简化了开发者在视图层和数据模型之间的交互,使得数据的更新能够即时反映到用户界面上。 在传统的`v-model`使用中,我们通常直接在表单...

    详解基于Vue的支持数据双向绑定的select组件

    本篇文章将深入探讨如何创建一个支持数据双向绑定的`select`组件,这对于实现复杂表单交互尤其重要。双向绑定使得视图层与数据模型之间可以自动保持同步,大大简化了开发流程。 首先,我们注意到组件名为`VueSelect...

    Struts2之struts2标签库了解和使用案例struts025

    通过Struts2的标签库,我们可以轻松地构建出符合MVC架构的Web应用,将视图层与业务逻辑分离,使得代码更加清晰、易于维护。同时,这些标签还提供了丰富的功能,如数据校验、国际化、AJAX支持等,大大提升了开发效率...

    vue学习笔记1

    Vue.js 是一个轻量级的前端JavaScript框架,专注于视图层的构建,具有易学易用的特点,并且能够方便地与其他库或现有项目整合。在Vue中,`v-`前缀是Vue自定义指令的标志,它们提供了一种声明式的方式去操作DOM。 在...

    vue面试题源码范例和详细说明(由浅入深,深度解读在资料后半部分).docx

    它通常用在表单元素上,如`&lt;input&gt;`、`&lt;textarea&gt;`或`&lt;select&gt;`,将用户的输入与Vue实例的数据属性关联起来。例如: ```html &lt;div&gt; &lt;p&gt;{{ message }} &lt;/div&gt; export default { data() { return { ...

    struts2常用标签总结

    Struts2是一个流行的Java Web框架,它提供了一套丰富的标签库,使得开发者在构建MVC应用时能够更方便地处理视图层。这些标签极大地方便了页面的编写,同时具有良好的可扩展性和代码复用性。Struts2的标签库不仅限于...

    day01.pdf vuejs

    `v-model`通常用于`&lt;input&gt;`、`&lt;select&gt;`、`&lt;textarea&gt;`等表单元素,以及自定义组件中。 MVVM(Model-View-ViewModel)是Vue的设计模式,其中ViewModel作为模型和视图之间的桥梁,负责数据和界面的同步。在Vue中,...

    Struts2标签使用.pdf

    16. `&lt;s:select&gt;`:创建下拉选择框,功能与`s:combobox`类似,但更通用,可自定义标签头、列表等。 以上是Struts2中常用的一些标签,熟练掌握它们能极大提高开发效率,使视图层代码更加简洁、易读。在实际开发中,...

    AngularJS基础 ng-model 指令详解及示例代码

    它不仅仅是一个指令,更是一个强大的工具,它将视图层的输入和后端的数据模型绑定起来,使得数据在模型和视图之间同步变化,极大地减少了前端开发中需要处理的数据同步问题。此外,它还为数据验证和表单状态的管理...

    struts2.0标签库简介

    - 用于在视图层直接调用Action,简化了从前端到后端的交互流程。 #### 3. `&lt;s:actionerror&gt;` 和 `&lt;s:actionmessage&gt;` - 分别用于显示Action错误和消息,增强了错误和信息的展示能力。 #### 4. `&lt;s:append&gt;` - 值...

    ssh 框架技术

    - **Struts2**:解决了Struts1的一些问题,增加了更多高级特性,如拦截器、文件上传等功能。 ##### 3. 为什么要使用Struts2框架 - **简化开发**:提供了丰富的标签库,降低了编码复杂度。 - **易于维护**:MVC模式...

    Struts标签集合简介

    Struts标签是Apache Struts框架提供的用于简化JSP页面开发的组件,它们使得开发者能够更加高效、简洁地处理视图层逻辑。以下是一些主要的Struts标签及其用途的详细说明: A. `&lt;s:a&gt;` 和 `&lt;s:action&gt;`: 这两个标签...

    Struts2标签库详解[1].doc

    Struts2是一个强大的MVC框架,它为Java开发者...以上就是Struts2标签库的主要内容,它们极大地提高了开发效率,降低了视图层与业务逻辑之间的耦合度,使得开发者可以更加专注地构建功能丰富的、用户体验良好的Web应用。

    struts2-s标签

    该标签用于执行一个指定的 Action,可以在视图层直接调用后台 Action 方法,从而避免了传统表单提交的繁琐步骤。 **示例:** ```xml &lt;!-- action logic here --&gt; ``` ##### 3. `&lt;s:actionerror/&gt;` 和 `...

    详解Vue.js之视图和数据的双向绑定(v-model)

    v-model指令最常用于input、select和textarea等表单元素上。 接下来,我们通过一个例子来深入了解v-model的工作原理。在HTML模板中,我们可以这样使用v-model: ```html &lt;div id="app"&gt; 消息:{{ message }} &lt;/...

    Vue循环中多个input绑定指定v-model实例

    在Vue.js中,`v-model` 是用于实现数据双向绑定的关键指令,它使得视图层与数据层之间的交互变得简单。然而,当需要在循环中创建多个表单元素,如`input`,并希望每个输入框都有自己的独立绑定时,就需要采取特定...

    AngularJS 最常用的八种功能

    **功能概述**:`ng-repeat` 是 AngularJS 中非常强大的一个指令,它允许你遍历数组或对象,并且能够在视图层动态地展示出数组或对象中的每一项。 **应用场景**:通常用于创建列表(如表格、无序列表或有序列表)。 ...

    基础《网页制作与网站建设》在线作业.pdf

    26. **性别输入**:在表单中,通常使用`&lt;select&gt;`控件输入性别。 27. **密码输入框**:设置`type="password"`可以让文本框显示为星号或圆点,隐藏输入内容。 28. **选项组事件**:当用户在选项组中选择任一选项时...

    struts2中核心知识点(职场必备)

    - `&lt;sx:div&gt;`:创建一个可通过AJAX局部刷新的div区域。 - `&lt;sx:submit&gt;`:使用AJAX更新元素或提交表单。 - `&lt;sx:tree&gt;`:创建支持AJAX的树形组件。 6. **常见的拦截器及其作用**: - `i18n`:处理国际化显示。 ...

Global site tag (gtag.js) - Google Analytics