반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- CSS
- v-html
- jsx
- Wecode
- scss
- MySQL
- Vue
- event
- 쉬운설명
- TypeScript
- nodejs
- express
- State
- 댓글달기
- App.vue
- sass
- HOC
- mapGetters
- JavaScript
- webpack
- react
- vuex
- Vue transition
- Vue.js
- 리액트
- ES6
- input
- storybook
- 자바스크립트
- 자료구조
Archives
- Today
- Total
익명의 개발노트
[vue.js] v-tooltip 사용하기 본문
반응형
vue tooltip 라이브러리 중에 vuetify를 제외하고 쓸만한 라이브러리가 v-tooltip 밖에 없는 듯...
1. 설치
npm install --save v-tooltip
2. 글로벌 등록
//main.js
import Vue from 'vue'
import VTooltip from 'v-tooltip' //추가
Vue.use(VTooltip); //추가
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
3. 스타일 적용하기
공식문서에 일반 css 와 pre-processor 방식인 sass, less 방식이 있다.
공식문서에는 자세히 안나와 있어서, 전역 스타일 안에다가 아래 코드를 넣었는데 작동하지 않았고,
개발자 도구를 열고 보니, 최상단에서 작동하는 것을 확인하였음.
따라서, 글로벌로 작동하는 scss 와 같은 레벨에 따로 scss 파일을 만들고 넣어줬으며,
사용하고자 하는 컴포넌트 scss에서 @import해서 사용.
//tooltip.scss
.tooltip {
display: block !important;
z-index: 10000;
.tooltip-inner {
background: #262626;
color: white;
padding: 3px 8px;
font-size: 12px;
height: 24px;
line-height: 1.7;
}
.tooltip-arrow {
width: 0;
height: 0;
border-style: solid;
position: absolute;
margin: 5px;
border-color: black;
z-index: 1;
}
&[x-placement^="top"] {
margin-bottom: 5px;
.tooltip-arrow {
border-width: 5px 5px 0 5px;
border-left-color: transparent !important;
border-right-color: transparent !important;
border-bottom-color: transparent !important;
bottom: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
}
&[x-placement^="bottom"] {
margin-top: 5px;
.tooltip-arrow {
border-width: 0 5px 5px 5px;
border-left-color: transparent !important;
border-right-color: transparent !important;
border-top-color: transparent !important;
top: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
}
&[x-placement^="right"] {
margin-left: 5px;
.tooltip-arrow {
border-width: 5px 5px 5px 0;
border-left-color: transparent !important;
border-top-color: transparent !important;
border-bottom-color: transparent !important;
left: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
}
&[x-placement^="left"] {
margin-right: 5px;
.tooltip-arrow {
border-width: 5px 0 5px 5px;
border-top-color: transparent !important;
border-right-color: transparent !important;
border-bottom-color: transparent !important;
right: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
}
&[aria-hidden='true'] {
visibility: hidden;
opacity: 0;
transition: opacity .15s, visibility .15s;
}
&[aria-hidden='false'] {
visibility: visible;
opacity: 1;
transition: opacity .15s;
}
}
local 컴포넌트 범위에서 사용하고자 할때는 반드시 style에서 scoped를 제외해주어야 한다.
반응형
'코딩일기 > TIL' 카테고리의 다른 글
[vue.js] audio file upload (0) | 2020.07.02 |
---|---|
[vue.js] 이미지 박스???? 썸네일 박스?? 구현하기 (0) | 2020.06.10 |
[vue.js] input 창 한글입력 바인딩 처리 (0) | 2020.05.13 |
[vue.js] URL.createObjectURL 을 이용한 이미지 처리 (3) | 2020.05.13 |
[vue.js] mapGetters 관한 꿀팁 (0) | 2020.04.29 |
Comments