2016-07-31 4 views
2

Meine angular 2 Komponenten nehmen die volle Breite der Seite. Wenn ich die Breite der Komponente begrenze, wird der Rand auf die volle Breite gestreckt. So kann ich andere Komponenten nicht dazu bringen. Wie kann ich die Breite von Bauteilen begrenzen? Ich habe versucht Display: Inline, aber keine Verwendung.Noch die Komponente nimmt volle Breite, so dass nichts neben diesem kommen.Wie zu beheben, wenn eckige 2-Komponente die volle Breite der Seite nehmen?

import { Component } from '@angular/core'; 
import { Item } from './../item'; 
import { ItemComponent } from './ItemComponent'; 

@Component({ 
    selector: 'Item-Set', 
    directives: [ItemComponent], 
    template: '<div class="singleItem" *ngFor="let eachItem of itemList"><Item></Item></div>' 
}) 

export class ItemSet{ 
    itemList: Item[]; 
    constructor(){ 
    this.itemList=ItemList; 
    } 
} 

In Stylesheet

.singleItem{ 
    width:300px; 
} 
+0

Wie können wir Hilfe ohne den Code zu sehen ?? .... Veröffentlichen Sie ein minimales Arbeitscode-Snippet, das das Problem reproduziert. – LGSon

+0

Code hinzugefügt. Ich habe gerade angefangen, angular2 zu verwenden. @LGSon –

+0

Wir brauchen ein _working code snippet_, etwas, das ein Ergebnis rendert, am besten als Stack-Snippet, aber eine Geige funktioniert auch – LGSon

Antwort

5

Sie müssen die CSS setzen die Breite an der richtigen Stelle hinzuzufügen. In Ihrem Beispiel wäre das die styles Parameter von ItemSet oder Item wie

Plunker example

Entweder auf den ItemComponent mit der :host Selektor (Selbst-):

@Component({ 
    selector: 'Item', 
    template: '<div>Item</div>', 
    styles: [':host {display: block; border: solid 1px red; width: 300px;}'] 
}) 
export class ItemComponent{} 

oder der übergeordneten Komponente mit .singleItem als Selektor

@Component({ 
    selector: 'Item-Set', 
    directives: [ItemComponent], 
    styles: [` 
    .singleItem{width:300px;} 
    :host {display: block; border: solid 1px green;}` 
    ] 
    template: '<div class="singleItem" *ngFor="let eachItem of itemList"><Item></Item></div>' 
}) 
export class ItemSet{ 
    itemList = ['a', 'b', 'c', 'd']; 
})