【问题标题】:Making the <header> tag disabled using CSS without Hiding使用 CSS 禁用 <header> 标签而不隐藏
【发布时间】:2014-06-30 07:43:58
【问题描述】:

如何使用 CSS 禁用 &lt;header&gt; 而不隐藏它? 我没有看到任何可以添加到元素的 disabled 属性。我在标题标签中有一些下拉菜单和按钮。

当我想禁用整个页面时。我使用 JQuery 添加了一个带有类的 div。

<div class="modalOverlay"></div>

CSS 样式是

.modalOverlay {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0%;
    left: 0%;
    right:0%;
    bottom : 0%;
    background-color: rgba(0, 0, 0, 0.1); /* black semi-transparent */
}

该样式适用于整个页面,但 header 标记中的元素除外。我该如何禁用这些?可能使用 CSS,所以我可以添加一个类并在必要时将其删除。

更新:

<header>
    <nav class="navbar navbar-default">
        <a class="navbar-brand" href="#"> Title </a> <a
            class="toggle-nav btn pull-left" href=""> <i class="icon-reorder"></i>
        </a>
        <ul class="nav">
            <li class="dropdown medium only-icon widget"><a
                class="dropdown-toggle" data-toggle="dropdown" href=""> <i
                    class="icon-rss"></i>
                    <div class="label">1</div>
            </a>
                <ul class="dropdown-menu">
                    <li><a href="">
                            <div class="widget-body">
                                <div class="pull-left icon">
                                    <i class="icon-user text-success"></i>
                                </div>
                                <div class="pull-left text">
                                    New User Added. <small class="text-muted">just now</small>
                                </div>
                            </div>
                    </a></li>
                    <li class="divider"></li>
                    <li class="widget-footer"><a href="">All notifications</a></li>
                </ul></li>
            <li class="dropdown dark user-menu"><a class="dropdown-toggle"
                data-toggle="dropdown" href=""> <img width="23" height="23"
                    alt="userName" src="assets/images/male_icon.png" />
                    <span class="user-name">Hi, Guest</span> <b
                    class="caret"></b>
            </a>
                <ul class="dropdown-menu">
                    <li><a href=""> <i class="icon-user"></i> Profile
                    </a></li>
                    <li><a href=""> <i class="icon-cog"></i> Settings
                    </a></li>
                    <li class="divider"></li>
                    <li><a href="" ng-click="logout()"> <i
                            class="icon-signout"></i> Sign out
                    </a></li>
                </ul></li>
        </ul>
    </nav>
</header>

谢谢。

【问题讨论】:

  • 代码示例中没有header 元素。目前还不清楚禁用某些东西是什么意思; CSS 通常不会禁用功能。
  • 在标题标签中,我有一些我想禁用的链接和按钮。我在问题中提到了这一点。那么有什么不清楚的呢?我也添加了 HTML 供您理解。
  • 如果“禁用”意味着元素没有它们正常的 HTML 功能,那么答案是“你不能,CSS 不适合这样的事情。”标题相当具有误导性,因为 header 元素本身没有 HTML 功能。

标签: css html http-headers


【解决方案1】:

你可以试试“z-index:99”

.modalOverlay {
 position: fixed;
 width: 100%;
 height: 100%;
 top: 0%;
 left: 0%;
 right:0%;
 bottom : 0%;
 z-index:99;
 background-color: rgba(0, 0, 0, 0.1); /* black semi-transparent */
}

【讨论】:

    【解决方案2】:
    header{
      position: relative;
      z-index: 90;
    }
    
    .modalOverlay {
      z-index: 100;
    }
    

    【讨论】:

      【解决方案3】:

      您不能禁用 CSS 中的元素,即删除它们在 HTML 中定义或使用 JavaScript 编程的功能。大多数这样做的尝试将影响大多数鼠标操作,而不是基于键盘(或基于语音)的控件和链接使用。

      在 HTML 中禁用控件的正确方法是在 HTML 或 JavaScript 中为其设置 disabled 属性或属性。对于链接,您需要删除 href 属性(如果需要,您可以将其值保存到 data-href 属性中,以便可以恢复它)。要对元素内的所有控件和链接执行此操作,您需要一些遍历元素后代的 JavaScript 代码。

      【讨论】:

      • 我将pointer-events:none; 应用于标题标签,它对我有用。
      • @ShijuKBabu,我认为你没有测试当你用键盘使用页面时会发生什么,例如使用 TAB 键移动到链接或按钮,使用 Enter 键跟随链接或激活按钮。
      【解决方案4】:

      您可以使用 pointer-events:none; 在这种情况下文本应该是可见的,但 div 和 evel &lt;a&gt; 中的内容将不起作用。看看 DEMO

      .modalOverlay {
          position: fixed;
          width: 100%;
          height: 100%;
          top: 0%;
          left: 0%;
          right:0%;
          bottom : 0%;
          background-color: rgba(0, 0, 0, 0.1); /* black semi-transparent */
       pointer-events:none; /*This is the KEY*/
      }
      

      【讨论】:

      • pointer-events 属性在起作用时仅影响指针事件。它不会阻止通过键盘使用链接、按钮和下拉菜单。
      • pointer-events:none; 应用于此类将不起作用。相反,当我根据您的回答添加时,其他元素或链接也可以正常工作。但是我在将 div 添加到正文时也将样式单独添加到标题标签。那个时候它成功了:)
      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 2012-08-21
      • 2022-07-15
      • 1970-01-01
      • 2011-12-20
      • 2010-10-29
      相关资源
      最近更新 更多