2017-12-13 3 views
0

여기 Vue.js 모달 데모를 가지고 놀았습니다 : https://vuejs.org/v2/examples/modal.html. 슬롯을 통해 모달 대화 상자로 표시하려는 내용을 편리하게 삽입 할 수 있습니다. 하나의 단점은 Modal이 Modal 구성 요소 내의 CSS를 통해 설정된 고정 너비라는 것입니다. 너비가 동적 인 경우 나 몸길에 전달하는 내용의 너비에 따라 결정되면 더 유용 할 것입니다.동적 폭 모드?

나는했습니다 그것을 좀 더 유연한에 '폭'소품을 추가하여이 장착으로, 크기는 상위 구성 요소에 의해 설정 될 수 있도록 :

mounted(){ 
    if(this.width) { 
    $(".vue-modal .modal-container").css("width", this.width); 
    } 
} 

그것은하지만, 여전히 동적 아니다 , 물론, 나는 단지 고정 된 크기로 전달하고있다. 이 아이디어를 얻기위한 아이디어가 있는지 궁금합니다.

답변

1

이것을 달성 할 수있는 한 가지 방법은 제공된 클래스를 대체하는 것입니다. modal-wrapperdisplay: table-cell를 사용하여 반대로, 당신은 대신 인 flexbox 사용할 수 있습니다 그리고

.modal-wrapper { 
    display: flex; 
    align-items:center; 
    justify-content:center; 
    height:100%; 
} 

을에 modal-container 당신은 inline-blockdisplaywidthauto에 설정해야합니다

.modal-container{ 
    display:inline-block; 
    width:auto; 
} 

Here's your JSfiddle link based on VueJS's example

+0

제 생각에는 VueJS 예제를 대체해야합니다. 결과적으로 다양하고 유용합니다. 감사! –

+0

@JohnMoore 디스플레이 테이블 : 셀이 더 광범위하게 지원됩니다. IE 10/9는 지원하지 않으며 11은 여전히 ​​약간 버그입니다. [다른 대부분의 주요 브라우저는 기본 지원을 제공합니다] (https://caniuse.com/#search=flex). 개인적으로 IE 브라우저를 지원하지는 않지만 저에게 이것은 괜찮습니다. – Ohgodwhy