【问题标题】:Why css wont inherit on their own为什么css不会自己继承
【发布时间】:2018-03-12 04:20:48
【问题描述】:

我正在尝试设计一个简单的网站。我在使用 css 时遇到了麻烦,尤其是在继承方面。我的目标是让侧边菜单和里面的项目一个一个地放在另一个之下:

#inner-flex-container {
  display: flex;
  flex-direction: column;
  width: 100%;
}

#container {
  display: flex;
}

.left-menu-navbar {
  display: inherit;
  flex-direction: column;
}

.left-menu {
  display: inherit;
  background: hotpink;
  flex-direction: column;
}

.header {
  flex: 1;
  background: tomato;
}

.outlet {
  flex: 2;
  background: deepskyblue;
}

.footer {
  flex: 1;
  background: lightgreen;
}
<div id="container">
  <div class="left-menu">
    <span class="left-menu-navbar">
        <a routerLink="projects" routerLinkActive="active">Projects</a>
        <a routerLink="upload" routerLinkActive="active">Upload</a>
        <a routerLink="account" routerLinkActive="active">Account</a>
        <a routerLink="create" routerLinkActive="active">Create project</a>
      </span>
    <span>111</span>
    <span>222</span>
    <span>333</span>
  </div>
  <div id="inner-flex-container">
    <span class="header">MENU COMPONENT</span>
    <div class="outlet">
      <router-outlet></router-outlet>
    </div>
    <span class="footer">vVVVVVVv</span>
  </div>
</div>

这段代码完成了这项工作,但我要问的是为什么我必须在标签&lt;span class=left-menu-navbar"&gt; css 属性中显式声明为显示并显式声明方向?我希望从父母 (left-menu) 那里继承它,但那没有发生......

【问题讨论】:

标签: html css flexbox alignment


【解决方案1】:

为什么我必须在标签中显式声明 css 属性作为显示并显式声明方向?

简单的答案是:

并非所有 CSS 属性都是继承的,因为它没有意义 其中一些是。例如,边距不是继承的,因为 子元素不太可能需要与其相同的边距 父母。在大多数情况下,常识会告诉您哪些属性是 继承,哪些不是,但要确定你需要查找 CSS 2.1 specification property summary table 中的每个属性。

源:https://www.w3.org/wiki/Inheritance_and_cascade

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 2010-10-04
    • 2010-09-18
    相关资源
    最近更新 更多