2017-02-24 8 views
2

안녕하세요, 최근에 Aurelia에서 사용자 정의 요소를 만들기 시작했습니다. 우리가 설정 한 규칙 중 하나는 사용자 정의 요소에 클래스 이름을 사용할 수 없다는 것입니다.Aurelia 맞춤 요소가 플렉스 컨테이너 내에서 작동하지 않습니다.

사용자 지정 요소 자체에 속성이 없으므로 스타일링이 많이 끊어 지므로 이로 인해 문제가 발생합니다.

특히 플렉스 컨테이너에 넣을 때 깨집니다.

나는 :host 셀렉터를 사용하여 사용자 정의 요소의 스타일을 지정할 수 있지만, Aurelia에 대한 언급은 찾을 수 없다.

문제를 설명하기위한 코드가 있습니다 here. 당신이 :host를 사용하려면

<div class="half-container"> 
    <p>Breaking because of custom element (Flex container is yellow)</p> 
    <div class="flex-container"> 
    <div class="flex-item"></div> 
    <div class="flex-item"></div> 
    <div class="flex-item green">  
     <o-custom-element></o-custom-element> 
    </div> 
    </div> 
</div> 

, 당신은 사용자 정의 요소의 그림자 DOM 내부 <style> 요소에 넣어해야합니다 :

답변

1

하면 플렉스 항목 div에 사용자 정의 요소를 넣어 http://codepen.io/anon/pen/LWYwxK

+0

내가 규칙을 변경하는쪽으로 의지를하지만 내 전화 아니에요. 우리는 거대한 프로젝트에서 큰 팀을 이루어 일을 처리하도록 규칙을 만들었습니다. 호스트 선택기를 사용하여 호스트가 섀도우 돔 내부에서 스타일이 지정된 데모를 만들 수 있기를 바랍니다. 그것은 우리에게 도움이 될 해결책이 될 것입니다. – IOIIOOIO

+0

@ IOIIOOIO 다음을 사용하여 예제를 추가했습니다. – Supersharp

+0

오우 와우 .. 그처럼 쉬워 ... 감사합니다. 나는 이렇게 somethonig에서 일할 것입니다. 내 두통의 끝이어야한다! – IOIIOOIO

2

할 수 있습니다 스타일 사용자 지정 요소 좋 ...

문제는 당신이 규칙을 복제해야한다는 것입니다 그것은 사용자 정의 요소에 클래스를 추가하는 것보다 더 나쁜 이 같은 요소 자체를 참조하여 :

o-custom-element { 
    color: white; 
    background: green; 
    flex-grow: 1; 
} 

나는 변화를 표시하도록 codepen을 갈래했습니다 http://codepen.io/anon/pen/ZeEdLL

+0

불행히도 우리가 할 수없는 또 다른 규칙은 – IOIIOOIO

+0

입니다. 흠, 나는 항상 이것을 구성 요소에 포함합니다 (': host'도 역시 맞을 것입니다). 그리고'require' 구성 요소의보기에서 CSS를. IMO는': host' 자체만큼 좋으며, 본질적으로 또 다른 이름입니다. 하지만 재미있는 이유는'host :'가 Aurelia와 작동하지 않기 때문입니다. – Daniel

+0

감사합니다. Daniel, 나는 그것에 대해 생각하지 않았습니다. 내가 잘못하고있을 수도 있습니다. ': host'가 작동하지 않으면''메소드를 시도 할 것입니다. 우리 팀 전체가 맞춤 구성 요소에 익숙하지 않기 때문에 우리는 함께 배우면서 모두 배우고 있습니다. 따라서 Joe Soap이 새로운 구현 아이디어를 가질 때마다 통제를 벗어나지 않도록 조심해야합니다. – IOIIOOIO