멀티미디어 콘텐츠, 특히 비디오 콘텐츠는 웹사이트에서 중요한 역할을 합니다. CSS를 사용하면 비디오 오버레이(Overlay)와 자막(Subtitles)을 사용자 친화적이고 시각적으로 매력적으로 스타일링할 수 있습니다. 이 글에서는 CSS를 사용하여 비디오 오버레이와 자막을 스타일링하는 방법을 소개합니다.

1. 비디오 오버레이 스타일링

비디오 오버레이는 비디오 위에 텍스트나 그래픽 요소를 덧씌워 추가 정보를 제공하거나 시각적인 효과를 줄 수 있습니다.

1.1 HTML 구조:

<div class="video-container">
    <video autoplay muted loop class="video">
        <source src="your-video.mp4" type="video/mp4">
        Your browser does not support the video tag.
    </video>
    <div class="overlay">
        <h2 class="overlay-text">Your Overlay Text</h2>
    </div>
</div>

설명:

  • video-container: 비디오와 오버레이를 감싸는 컨테이너입니다.
  • video: 비디오 요소로, 오버레이 뒤에 위치합니다.
  • overlay: 비디오 위에 덧씌워지는 오버레이 요소입니다.

1.2 CSS 스타일링:

.video-container {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}

.video {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 반투명 검은색 오버레이 */
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 8px;
}

.overlay-text {
    color: white;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    padding: 20px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); /* 텍스트에 그림자 추가 */
}

설명:

  • 오버레이 설정: overlay 요소는 position: absolute로 설정되어, 비디오 위에 덧씌워집니다. 반투명한 배경을 사용해 비디오의 내용을 약간 가리면서도 텍스트를 강조합니다.
  • 텍스트 스타일링: overlay-text 요소는 중앙에 배치되고, 흰색 텍스트와 그림자를 사용해 읽기 쉽게 스타일링됩니다.

2. 자막 스타일링

자막은 비디오 콘텐츠를 이해하는 데 중요한 요소입니다. CSS를 사용해 자막을 사용자 친화적이고 일관되게 스타일링할 수 있습니다.

2.1 HTML 구조:

HTML5 비디오 요소의 track 태그를 사용해 자막을 추가할 수 있습니다.

<div class="video-container">
    <video autoplay muted loop class="video" controls>
        <source src="your-video.mp4" type="video/mp4">
        <track src="subtitles.vtt" kind="subtitles" srclang="en" label="English">
        Your browser does not support the video tag.
    </video>
</div>

설명:

  • track 태그: 자막 파일(.vtt)을 비디오에 연결하는 역할을 합니다.

2.2 기본 자막 스타일링:

기본적으로 자막 스타일링은 웹 브라우저에서 제공되지만, 커스텀 스타일을 적용할 수 있습니다. 자막 스타일링은 브라우저 별로 다를 수 있으므로, 웹사이트에서 통일된 스타일을 유지하려면 JavaScript로 커스텀 자막을 구현하거나 기본 자막 스타일을 CSS로 조정할 수 있습니다.

CSS로 기본 자막 스타일을 조정하는 예는 다음과 같습니다:

video::cue {
    background-color: rgba(0, 0, 0, 0.75);
    color: white;
    font-size: 18px;
    font-weight: bold;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    padding: 5px;
    border-radius: 5px;
}

설명:

  • video::cue: HTML5의 기본 자막(track 태그) 스타일을 지정하는 CSS 의사 요소입니다.
  • 자막 스타일링: 자막의 배경색, 텍스트 색상, 크기, 그림자 효과 등을 커스텀하여 가독성을 높입니다.

3. 반응형 비디오 오버레이와 자막

모든 화면 크기에서 비디오 오버레이와 자막이 잘 보이도록 반응형 디자인을 구현할 수 있습니다.

3.1 반응형 비디오 오버레이:

@media (max-width: 768px) {
    .overlay-text {
        font-size: 18px;
        padding: 15px;
    }
}

설명:

  • 미디어 쿼리: 화면 너비가 768px 이하일 때 오버레이 텍스트의 크기와 패딩을 조정하여 작은 화면에서도 잘 보이도록 합니다.

3.2 반응형 자막:

자막의 크기를 반응형으로 조정하여 작은 화면에서도 가독성을 유지할 수 있습니다.

@media (max-width: 768px) {
    video::cue {
        font-size: 14px;
        padding: 3px;
    }
}

설명:

  • 미디어 쿼리: 화면 크기에 따라 자막의 폰트 크기와 패딩을 조정하여 가독성을 유지합니다.

4. 커스텀 자막 구현

브라우저 기본 자막 스타일링을 넘어서는 커스텀 자막을 구현하려면 JavaScript를 사용해 자막을 직접 생성하고, CSS로 스타일링할 수 있습니다. 예를 들어, 자막을 동적으로 생성하고, CSS로 위치와 스타일을 지정할 수 있습니다.

<div class="video-container">
    <video id="video" autoplay muted loop class="video" controls>
        <source src="your-video.mp4" type="video/mp4">
    </video>
    <div id="custom-subtitles" class="custom-subtitles"></div>
</div>
.custom-subtitles {
    position: absolute;
    bottom: 10%;
    width: 100%;
    text-align: center;
    color: white;
    font-size: 20px;
    font-weight: bold;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    background-color: rgba(0, 0, 0, 0.75);
    padding: 10px;
    border-radius: 5px;
    display: none;
}
const video = document.getElementById('video');
const subtitles = document.getElementById('custom-subtitles');

// Example: Manually sync subtitles
video.addEventListener('timeupdate', () => {
    if (video.currentTime > 2 && video.currentTime < 5) {
        subtitles.textContent = "This is the first subtitle!";
        subtitles.style.display = 'block';
    } else if (video.currentTime > 5 && video.currentTime < 8) {
        subtitles.textContent = "Here comes the second subtitle!";
        subtitles.style.display = 'block';
    } else {
        subtitles.style.display = 'none';
    }
});

설명:

  • custom-subtitles: 비디오 위에 커스텀 자막을 오버레이하는 요소입니다.
  • JavaScript: 비디오의 timeupdate 이벤트를 사용해 비디오 시간에 따라 자막을 동적으로 변경하고 표시합니다.

결론

CSS를 사용한 비디오 오버레이와 자막 스타일링은 멀티미디어 콘텐츠를 더욱 풍부하고 사용자 친화적으로 만드는 데 중요한 역할을 합니다. 비디오 오버레이를 사용하여 시각적 관심을 끌고, 자막을 통해 접근성을 높일 수 있습니다. 반응형 디자인을 적용하여 모든 장치에서 일관된 경험을 제공하고, JavaScript를 사용하여 더욱 정교한 커스텀 자막을 구현할 수 있습니다. 이 글에서 소개한 방법을 활용해, 멀티미디어 콘텐츠를 더욱 매력적이고 사용자 중심적으로 만들어보세요.

+ Recent posts