如何仅禁用一个组件的主体样式

mar*_*ark 9 html css frontend angular

我只想禁用overflow-y: hidden一个组件的样式。这种样式在我的 style.scss 中,就像这样

body {
overflow-y: hidden;
}
Run Code Online (Sandbox Code Playgroud)

我在我的组件中尝试过这个,但没有用。

<div class="div1" style="overflow-y: visible !important;">
...
</div>
Run Code Online (Sandbox Code Playgroud)

pc_*_*der 9

你能试着把

.visibleClass{overflow-y: visible ;}
Run Code Online (Sandbox Code Playgroud)

到 body css 属性下的 style.css

在 appcomponent.html 中添加 activate 事件到 router-outlet

<router-outlet (activate)="showHideNav($event)"></router-outlet>
Run Code Online (Sandbox Code Playgroud)

然后在 component.ts

 showHideNav(event){
    event instanceof YourComponent ? document.body.classList.add("visibleClass") :
                                     document.body.classList.remove("visibleClass")
  } 
Run Code Online (Sandbox Code Playgroud)


sat*_*ime 2

它不起作用,因为它div位于不可见的内部body,并且无法告诉 body 在不显示自身的情况下显示它。

在你的情况下,不改变架构是不可能的。

您需要执行类似于下面的代码的操作。

<body>
  <div class="new-body-root"> <!-- move all body styles here -->
    ... all the code
  </div>
  <div class="div1"> <!-- now it's always visible, hide it when you don't need it -->
    ...
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)