GVKun编程网logo

CSS 子节点继承父节点(祖先节点)的样式(子节点和父节点)

8

最近很多小伙伴都在问CSS子节点继承父节点(祖先节点)的样式和子节点和父节点这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Angular4:如何通过路由器添加的子节点将数据从父节

最近很多小伙伴都在问CSS 子节点继承父节点(祖先节点)的样式子节点和父节点这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Angular4:如何通过路由器添加的子节点将数据从父节点传递给子节点、css – max-height:100%的父节点溢出父节点、css – 父节点中只有一个子节点的选择器、ext 3.1 树形结构数据怎么查找所有父节点,然后在父节点下创建一个和父节点同名的子节点;等相关知识,下面开始了哦!

本文目录一览:

CSS 子节点继承父节点(祖先节点)的样式(子节点和父节点)

CSS 子节点继承父节点(祖先节点)的样式(子节点和父节点)

如果子节点没有自己的样式,那么子节点将继承父节点或祖先节点的样式。

<ul>
	<li>child 1</li>
	<li>
		child 2
		<ul>
			<li>child A</li>
			<li>child B</li>
		</ul>
	</li>
</ul>

设置祖先节点container的颜色值,其之下的所有后代节点都运用它的样式:

.container {
	color: #7979DE;
}

image

如果子节点有自己的样式,就优先运用自己的样式,父节点样式对它没有效果:

.container-2 {
	color: #00B7FF;
}

image

比如,页面字体大小、字体颜色都可以设置在最高级的节点内(body、html 节点),其所有后代节点都运用祖先节点上的样式,当后代节点拥有自己的样式时,祖先节点的样式就不再运用。

总结

以上是小编为你收集整理的CSS 子节点继承父节点(祖先节点)的样式全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://www.cnblogs.com/shiramashiro/p/16325097.html

Angular4:如何通过路由器添加的子节点将数据从父节点传递给子节点

Angular4:如何通过路由器添加的子节点将数据从父节点传递给子节点

继续这个问题 Angular 4^ : How to have more than one child of a component with each child targeting its own router outlet,我能够将一些子组件注入到多个父组件中,现在我想将这些父组件中的数据async传递给child.试过@Input,似乎无法获胜.

儿童

export class UserheaderComponent implements OnInit,AfterViewInit,OnChanges {
  loading;
  @input() data;
  user = {
    name: '______________',icon: '',username: '_________',uid: '________'
  };
  constructor(private router: Router) {
  }

  goToUser(uid) {
    this.router.navigate(['user'],{ queryParams: { uid: uid } });
  }

  ngOnInit() {
    this.user = this.data;
    console.log(this.data);
  }

  ngAfterViewInit() {
    console.log(this.data);
  }

  ngOnChanges(changes: SimpleChanges) {
    console.log(changes);
  }
}

家长Html

<router-outlet name='userprofile-userhead' [data]="currentUser"></router-outlet>

家长TS

export class UserprofileComponent {
  public currentUser;

  constructor(
    private userFactory: UserFactory,private router: Router,private snack: MatSnackBar) {
    this.userFactory.checkSession(exists => {
      if (!exists) {
        return;
      }
      this.userFactory.getSessionUser((uid,user) => {
        this.currentUser = user;
      });
    });
  }
}

和路由

path: '',component: UserprofileComponent,outlet: 'userprofile',children: [
          { path: '',component: UserheaderComponent,outlet: 'userprofile-userhead' },]

什么都没有传递给孩子,这种安排是否可能,或者我错过了什么?

无法使用共享服务.

每个组件都应该使用它自己的Id.想象一下,这是一个像上下文这样的帖子的时间轴,比如社交媒体时间轴,这是帖子的头,你知道,用户图标,名称……用户名是.因此,’post’组件会将其作为子项注入,并将其传递给用户对象:{name:’…’,用户名:’…’},所以我看不到服务在这里会做什么.

现在,当我们在应用程序的某个地方,一个配置文件组件,搜索组件可能会调用此…

如果你仍然认为服务会做,请详细说明.

我找到了你,但我认为共享服务仍然是这个问题的答案

您可以尝试实现一个pub / sub服务,您可以在其中分配它将订阅和广播的数据.

试试这个:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';

/**
 * Publisher/Subscriber Service
 */
@Injectable()
export class PubSubService {

    private events: any = {};

    constructor() { }

    /**
     * Subscribes the instance of the assigned event name
     * @param eventName
     * Event name of the delegate
     */
    public On(eventName: PubSubEvents): Observable<any> {

        if (typeof this.events[eventName] === 'undefined') {
            this.events[eventName] = new Subject<any>();
        }

        return this.events[eventName].asObservable();
    }

    /**
     * broadcast data to the specified event channel
     * @param eventName
     * Event name of the delegate
     * @param eventArgs
     * Arguments to pass through to the connected channel
     */
    public broadcast(eventName: PubSubEvents,eventArgs: any) {
        if (!this.events[eventName]) {
            return;
        }

        this.events[eventName].next(eventArgs);
    }

}

//Your events
export declare type PubSubEvents =
    "OnChild1" | "OnChild2";

在父组件中,您可以根据需要订阅所有事件.

constructor(private pubsub: PubSubService){
  this.pubsub.On("OnChild1").subscribe((res) =>{ //Child 1 data}));
  this.pubsub.On("OnChild2").subscribe((res) =>{ //Child 2 data}));
}

而在子组件中你必须这样做

孩子1

constructor(private pubsub: PubSubService){
  this.pubsub.broadcast("OnChild1","your_data")
}

孩子2

constructor(private pubsub: PubSubService){
  this.pubsub.broadcast("OnChild2","your_data")
}

css – max-height:100%的父节点溢出父节点

css – max-height:100%的父节点溢出父节点

我试图理解看起来是对我意想不到的行为:

我有一个max-height为100%的容器内的元素,也使用max-height,但是,意外的是,子元素溢出父:

测试用例:http://jsfiddle.net/bq4Wu/16/

.container {  
    background: blue; 
    padding: 10px; 
    max-height: 200px; 
    max-width: 200px; 
}

img { 
    display: block;
    max-height: 100%; 
    max-width: 100%; 
}

这是固定的,但是,如果父给一个明确的高度:

测试用例:http://jsfiddle.net/bq4Wu/17/

.container {  
    height: 200px;
}

有没有人知道为什么孩子不会在第一个例子中尊重其父的最大高度?为什么需要显式高度?

解决方法

当您为子级指定max-height的百分比时,它是父级的实际高度的百分比,而不是父级的最大高度, oddly enough.这同样适用于 max-width

所以,当你没有在父对象上指定显式高度时,子对象的最大高度没有基本高度,因此max-height计算为none,允许子对象尽可能高。现在唯一影响孩子的其他约束是它的父元素的最大宽度,并且由于图像本身比它宽,所以它向下溢出容器的高度,以便保持其长宽比,同时仍然大到可能整体。

当你为父节点指定一个显式高度时,子节点知道它必须是该显式高度的100%。这允许它被约束到父的高度(同时仍然保持其高宽比)。

css – 父节点中只有一个子节点的选择器

css – 父节点中只有一个子节点的选择器

我正在玩CSS选择器,我想知道我可以构建一个自定义的css选择器,只有当只有一个类.widget-button,示例代码时才能工作;

<div>
  <div/>
  <div/>
  <div/> 
  <div/>
</div>

那么你会认为这是一个伪选择器(:only-child?)的组合,可以用于上述工作吗?然而,下面的示例应该没有选择/样式应用,因为那里有更多的类.

<div>
  <div/>
  <div/>
  <div/>
  <div/>
  <div/>
  <div/>
  <div/>
</div>

这里是一个JSfiddle
https://jsfiddle.net/2L593m3x/

解决方法

can i build a custom css selector to only work when there only one of class

长话短说:没有.

我们在这里一直有关于如何选择nth-class的问题.

你不能选择nth-class-class.

您可以选择儿童.

您可以按元素类型进行选择.

您不能按元素类选择.

在某些时候,第n个匹配(和互补选择器)可能会到达:

例如

.widget-button:nth-match(2n+1)
.widget-button:first-match
.widget-button:last-match
.widget-button:only-match

ext 3.1 树形结构数据怎么查找所有父节点,然后在父节点下创建一个和父节点同名的子节点;

ext 3.1 树形结构数据怎么查找所有父节点,然后在父节点下创建一个和父节点同名的子节点;

ext 3.1 树形结构数据怎么查找所有父节点,然后在父节点下创建一个和父节点同名的子节点;求大神指点

今天关于CSS 子节点继承父节点(祖先节点)的样式子节点和父节点的介绍到此结束,谢谢您的阅读,有关Angular4:如何通过路由器添加的子节点将数据从父节点传递给子节点、css – max-height:100%的父节点溢出父节点、css – 父节点中只有一个子节点的选择器、ext 3.1 树形结构数据怎么查找所有父节点,然后在父节点下创建一个和父节点同名的子节点;等更多相关知识的信息可以在本站进行查询。

本文标签: