2016-10-08 4 views
3

[Edited, чтобы лучше описать проблему]Вопросы Styling: хозяин в угловых 2

Я с трудом применяя различные стили: хоста в угловых 2. Простой plunker ниже демонстрирует проблему. Сначала я думал, что некоторые стили, такие как margin/padding, не применяются, но кажется, что проблема заключается в том, что элемент host не ведет себя как обычный элемент. Обратите внимание, что я добавил границу и дополнение. . Граница выглядит очень странной и обивка не перемещает содержимое внутри элемента на всех (хотя это действительно кажется, влияет на то, как выглядит граница Это стиль, который я подаю заявление:

:host {padding:10px; border:1px solid red;} 

Визуализированным код выглядит следующим образом:

<sample-component _nghost-cxm-2=""> 
    <div _ngcontent-cxm-2=""> 
    <h3 _ngcontent-cxm-2="">Sample Component</h3> 
    </div> 
</sample-component> 

я могу видеть в Дев инструментов, стили которые применяются к <sample-component> элемента, но это то, что страница выглядит как оказывается:

Weird border behavior

Я бы ожидал, что граница обернет содержимое внутри компонента, но он ведет себя странно. Вот пример плунжера: https://plnkr.co/edit/k7LJcmVlhJINmakBJAau?p=preview

Что мне не хватает?

+0

его работа как ожидалось. Я так не думаю, что это проблема. https://plnkr.co/edit/Fs2Igm0N2eMTE1dyMsdF?p=preview значение изменения (px), и оно будет реагировать соответственно. – micronyks

+0

Странно даже ваш плкрр не работает для меня. Какой браузер вы используете? Я пробовал Firefox 49.0.1 и chrome 53.0.2785.143. Изменение 100px на любое другое значение ничего не меняет. –

+0

Я думаю, что вы ищете свойство margin. Прокладка просто отлично работает в хроме (последняя версия). попробуйте добавить «border: 1px solid», затем измените значение прокладки, и вы увидите, что в соответствии с поведением. – micronyks

ответ

7

Я просто понял, что проблема есть. Элементы хоста установлены на display:inline. Изменение элемента на display:block устраняет проблему. Не знаю, как я пропустил это раньше.

2

Я уже показал вам, что ваш плукер работает. Кроме этого вы можете использовать host metaproperty применить стиль для размещения элемента, как показано ниже,

https://plnkr.co/edit/7JquAioc6lUx9bUrPCiZ?p=preview

UPDATE после редактирования:

Я не могу дать вам точный ответ но есть некоторая проблема с элементом/тегом <sample-component>, который создается в DOM. Возможно, я понимаю, чего вы пытаетесь достичь. У меня есть обходное решение для того же самого.

взгляд на здесь - https://plnkr.co/edit/yLLsZABJWCrvE0CWHgFy?p=preview

+0

Проверьте обновленный ответ. – micronyks

+0

Спасибо, @micronyks. Это полезное решение. Я на самом деле работаю над учебным видеоуправлением Angular 2, и я хочу продемонстрировать стиль, используя: host, поэтому я собираюсь отложить это, отвечая на этот вопрос, надеясь, что кто-то действительно сможет объяснить, почему проблемы с ''. Спасибо за вашу помощь! –

+0

Нет проблем @JimCooper. Вы можете задать свой вопрос и в Гитубе. – micronyks