【问题标题】:Hide an element through CSS code通过 CSS 代码隐藏元素
【发布时间】:2014-11-10 19:10:42
【问题描述】:

我不懂 css,而且在移动版中通过我的自托管 wordpress 网站主题显示菜单似乎很困难。这个想法是使用以下代码:

#sidebar-primary { display: none; }

虽然我添加它时似乎没有任何反应。有没有办法隐藏这个元素?以下是存在移动版本时的完整代码。谢谢

@media only screen and (max-width: 767px) {
    .wrap { max-width: 300px; }
    #branding {
        float: left;
        width: 100%;
        position: relative;
    }
    #sidebar-header {
        width: 100%;
        margin-bottom: 10px;
    }
    .featured-wrapper, .aside, .content-wrap, #content, #sidebar-subsidiary .widget, #respond { width: 100%; }
    .featured-post h2.entry-title a { 
        font-size: 12px; 
        line-height: 1.4em; 
        padding-right: 15px;
        bottom: 87px;
    }
    .featured-post .byline { 
        bottom: 63px;
        padding: .25em 15px .25em 1.3em;
    }
    .home.singular .byline { font-size: 10px; }
    .menu-toggle { 
        display: block; 
        width: 100%;
    }
    #menu-primary {
        float: left;
        clear: both;
        width: 100%;
        margin-top: 10px;
    }
    #menu-primary .menu, .menu ul { 
        float: left;
        width: 100%; 
    }
    #menu-primary ul li {
        clear: left;
        display: block;
        padding-left: 0;
        background: none;
    }
    #menu-primary ul li a {
        font-size: 20px; 
        margin-left: 0;
        padding: 12px 15px;
    }
    #menu-primary li li a { font-size: 18px; }
    #menu-primary li ul, #menu-primary li li { border: none !important; }
    #menu-primary li li a:hover { background: none; }
    #menu-primary ul li ul {    
        display: block !important;
        float: left !important;
        visibility: visible !important;
    }
    #menu-primary li ul {
        display: block !important;
        position: relative !important;
        top: 0;
        left: 30px;
    }   
    #menu-primary ul li li ul { left: 30px !important; }
    #menu-primary li:hover ul, #menu-primary li.sfHover ul {
        display: block !important;
        top: 0 !important;
    }
    #menu-primary li:first-child ul { left: 0; }    
    #menu-primary .sf-sub-indicator { background: none !important; }


    #menu-secondary .sf-sub-indicator { background: none !important; }
    .hentry {
        width: 100%;
        margin-right: 0;
    }
    .page-template-front .hentry:hover .read-more, .archive .hentry:hover .read-more, .search .hentry:hover .read-more { display: none; }
    .page-template-front .hfeed-more .hentry {
        float: left;
        width: 100%;
        margin-right: 0;
    }
    .comment-list li li { padding-left: 0; }
    #sidebar-primary, #sidebar-secondary, #sidebar-subsidiary {
        width: 100%;
        clear: left;
    }
    #footer-content, #menu-subsidiary {
        width: 100%;
        margin-bottom: 20px;
    }
    #menu-subsidiary .menu { float: left; }
    #menu-subsidiary li {
        background: none;
        float: none;
        padding-left: 0;
        margin-bottom: .4em;
    }
    #menu-subsidiary li a {
        font-size: 10px;
        line-height: 2.5em; 
    }

    textarea { width: 96%; }
}

【问题讨论】:

  • 我看不到你在哪里使用 display none 作为侧边栏的主要项目。
  • 我提供了原始代码,这里没有使用,但我使用时仍然显示。
  • 这意味着某些脚本不允许您的 css。你可以在 jQuery 中再做一次???
  • jquery $('#id').hide();
  • #sidebar-primary { 显示:无!重要; } 试试这个。

标签: css wordpress mobile


【解决方案1】:

如果它不起作用,那么看起来移动设备的样式是在不同的@media 查询中定义的

max-width : 320px@media 查询主要用于移动设备

对于移动设备max-width : 320px,只需检查它是否存在并在该查询中添加样式

@media only screen 
and (max-width : 320px) {
    /* Styles */
}

更多关于@media 查询的信息可以在herehere 找到

【讨论】:

    【解决方案2】:

    您是否尝试将!important 添加到您的风格中?

    #sidebar-primary { display: none; !important}
    

    【讨论】:

    • 是的,我刚刚添加了它:textarea { width: 96%;并且当我检查元素时仍然出现
    【解决方案3】:

    你确定没有错过任何其他的

    @media only screen and (max-width: xyz px) 
    

    可能是

    @media only screen and (max-width: 767px) 
    

    style 没有调用。

    检查其他@media标签是否存在于css中。

    【讨论】:

      【解决方案4】:

      强制元素不显示的正确方法是使用下面的css:

      #sidebar-primary { display: none !important;}
      

      !important 后的分号

      即使你将 display 设置为 none,当你检查 dom 元素时它仍然会出现。要完全删除它,您需要使用 jquery 或 javascript 文档准备好删除元素的触发器。

      $(document).ready(function(){
      
        if($(window).width() < 767){
      
      $('#sidebar-primary').remove();
      
      
      }
      
      })
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2018-11-03
        • 1970-01-01
        • 1970-01-01
        • 2014-05-10
        • 1970-01-01
        • 2019-05-12
        • 1970-01-01
        • 1970-01-01
        • 2017-12-13
        相关资源
        最近更新 更多