代码之家  ›  专栏  ›  技术社区  ›  Emanuela Colta

md菜单覆盖角度2中的默认最大宽度

  •  9
  • Emanuela Colta  · 技术社区  · 9 年前

        <img src="/assets/images/ic-notifications.png" [mdMenuTriggerFor]="appMenu"/> 
        <md-menu #appMenu="mdMenu"  [overlapTrigger]="false" yPosition="below" xPosition="before" class="notifications-dropdown">
            <button md-menu-item >
               <div class="row notification-row"> 
                 <div>
                   <span class="image-container"> Option 1 </span>
                 </div>
               </div>
            </button>
        </md-menu>   
    

    .mat-menu-panel.notifications-dropdown {
        max-width:none;
        width: 100vw; 
        margin-left: -8px;
        margin-top: 24px;
        overflow: visible;
    }
    
    .notification-row{
        width: 424px;
    }
    

    在控制台中,我可以识别设置默认值的类: max-width:280px; ,当我在控制台中编辑它时,它可以完美地工作,但即使我尝试在CSS代码中覆盖它,我也无法做到这一点。我也试过:

    .mat-menu-panel{
        max-width: 600px;
    } 
    

    这是:

    .cdk-overlay-container .mat-menu-panel{
         max-width:600px;
        width: 100vw;
        margin-left: -8px;
        margin-top: 24px;
    }
    

    3 回复  |  直到 9 年前
        1
  •  15
  •   Andrei Matracaru    9 年前

    设置 View Encapsulation

    @Component({
        templateUrl: './my.component.html' ,
        styleUrls: ['./my.component.css'], 
        encapsulation: ViewEncapsulation.None,
    })
    

    然后,在组件css中,您可以完全执行您尝试的操作:

    .mat-menu-panel.notifications-dropdown {
        max-width:none;
        width: 100vw; 
        margin-left: -8px;
        margin-top: 24px;
        overflow: visible;
    }
    
    .notification-row{
        width: 424px;
    }
    

    视图封装=无表示Angular没有视图 封装。Angular将CSS添加到全局样式中。范围界定 本质上与将组件的样式粘贴到 HTML。

        2
  •  1
  •   Divyanshu Rawat    7 年前

    .mat-menu-panel .cdk-overlay-pane ,在这种情况下,css应该是这样的。

    .cdk-overlay-pane.mat-menu-panel {
        max-width: your_custom_value
    }
    

    由于css特殊性规则,需要两类特殊性来覆盖默认值。

        3
  •  1
  •   tHeSiD    6 年前

    ::ng-deep .cdk-overlay-pane .mat-menu-panel {
      max-width: 436px;
    }
    

    At组件SASS文件

    请参阅: Angular Component Styles - View Encapsulation

    @gaiki https://github.com/angular/material2/issues/4462