zoukankan      html  css  js  c++  java
  • [Angular 2] Controlling how Styles are Shared with View Encapsulation

    Style and View Encapsulation is best understood by seeing how each option (Emulated, Native, and None) compare to each other.

    <html>
    <head>
        <title>Angular 2 QuickStart</title>
        <style>
            .started{
                background-color: #0b97c4;
            }
            .completed{
                background-color: #80d8ff;
            }
        </style>
        <script src="../node_modules/systemjs/dist/system.src.js"></script>
        <script src="../node_modules/angular2/bundles/angular2.dev.js"></script>
        <script>
            System.config({
                packages: {'app': {defaultExtension: 'js'}}
            });
            System.import('app/app');
        </script>
    </head>
    <div class="started">Started</div>
    <div class="completed">Completed</div>
    <body>
    <app>Loading...</app>
    </body>
    </html>
    import {Input, Component, View, NgClass, ViewEncapsulation} from "angular2/angular2";
    import {TodoModel} from './todoService';
    
    @Component({
        selector: 'todo-item-render'
    })
    @View({
        encapsulation: ViewEncapsulation.Emulated, // default state: the global style will have an affect on compoment style
        directives: [NgClass],
        styles: [`
            .${TodoModel.STARTED}{
                color: green;
            }
    
            .${TodoModel.COMPLETED}{
                text-decoration: line-through;
            }
        `],
        template: `
           <div>
               <span [ng-class]="todoinput.status">{{todoinput.title}}</span>
               <button (click)="todoinput.toggle()">Toggle</button>
           </div>
        `
    })
    
    export class TodoItemRender{
        @Input() todoinput: TodoModel;
    }

    if we switch to Native:

    encapsulation: ViewEncapsulation.Native, // Use shadow down, which mean the global style will not affect the compoment sytle

    last, we switch to None:

    encapsulation: ViewEncapsulation.None, // the component style and global style are the same, affect each other

  • 相关阅读:
    day23 笔记
    iframe子页面与父页面通信
    js格式化时间
    自定义滚动条样式
    表格隔行换色
    css除第一个子元素的其他子元素的4种方法,超实用!
    子div在父div里居中
    红橙黄绿蓝靛紫-RGB-十六进制
    阿里巴巴矢量图标库 字体图标的下载与使用
    calc属性不生效
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4916191.html
Copyright © 2011-2022 走看看