developer tip

하위 요소의 불투명도 재설정-Maple Browser (삼성 TV 앱)

copycodes 2020. 11. 7. 10:14
반응형

하위 요소의 불투명도 재설정-Maple Browser (삼성 TV 앱)


자식 요소가있는 투명 요소를 만드는 데 문제가 있습니다. 이 코드를 사용하여 자식 요소는 부모 요소에서 불투명도 값을 가져옵니다.

자식의 요소 불투명도를 임의의 값으로 재설정 / 설정해야합니다. 참조 브라우저는입니다 Maple Browser (for a Samsung TV Application).

 .video-caption {
        position: absolute;
        top:50px;
        width: 180px;
        height: 55px;
        background-color: #000;
        -khtml-opacity:.40; 
        -moz-opacity:.40; 
        -ms-filter:"alpha(opacity=40)";
        filter:alpha(opacity=40);
        filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.4); /*just for testing*/
        opacity:.40; 
    }
    .video-caption > p {
        color: #fff !important;
        font-size: 18px;
        -khtml-opacity:1; 
        -moz-opacity:1; 
        -ms-filter:"alpha(opacity=100)";
        filter:alpha(opacity=100);
        filter: progid:DXImageTransform.Microsoft.Alpha(opacity=1);
        opacity:1; 
    }

마크 업 수정

<div> <img id="videothb-1" src="https://xxxxx/splash.jpg"> <div class="video-caption"> <p>Description here</p> </div> </div>

아마도 (선택자를 살펴본 결과) 문제는 불투명도가 부모의 모든 자식 요소에 영향을 미친다는 것입니다.

div
{
    background: #000;
    opacity: .4;
    padding: 20px;
}

p
{
    background: #f00;
    opacity: 1;
}​

http://jsfiddle.net/Kyle_/TK8Lq/

그러나 해결책이 있습니다! rgba 배경 값을 사용하면 원하는 곳 어디에서나 투명성을 가질 수 있습니다. :)

div
{
    background: rgba(0, 0, 0, 0.4);
    /*opacity: .4;*/
    padding: 20px;
}

p
{
    background: rgba(255, 0, 0, 1);
    /*opacity: 1;*/
}​

http://jsfiddle.net/Kyle_/TK8Lq/1/


텍스트의 경우 동일한 rgba 코드를 사용할 수 있지만 CSS의 색상 속성으로 설정합니다.

color: rgba(255, 255, 255, 1);

그러나 이것이 작동하려면 모든 것에 rgba를 사용해야합니다. 모든 부모 요소에 대한 불투명도를 제거해야합니다.

http://jsfiddle.net/Kyle_/TK8Lq/2/


Kyle's solution works fine.

In addition, if you don't like to set your colors using RGBA, but rather using HEX, there are solutions.

With LESS for exemple, you could use a mixin like:

.transparentBackgroundColorMixin(@alpha,@color) {
  background-color: rgba(red(@color), green(@color), blue(@color), @alpha);
}

And use it like

.myClass {
    .transparentBackgroundColorMixin(0.6,#FFFFFF);
}

Actually this is what a built-in LESS function also provide:

.myClass {
    background-color: fade(#FFFFFF, 50%);
}

See How to convert HEX color to rgba with Less compiler?


Answer above works well, however for people who like using hex color codes, you can set transparency by hex color itself. EXP: #472d20b9 - the last two values set opacity for color while #472d20 will be the same color but without opacity. Note: Works fine in Chrome and Firefox, while Edge and IE doesn't. Haven't had a chance to test it in other browsers.

참고URL : https://stackoverflow.com/questions/13508877/resetting-the-opacity-of-a-child-element-maple-browser-samsung-tv-app

반응형