Resetting the opacity of a child element - Maple Browser (Samsung TV App)

后端 未结 3 1453
鱼传尺愫
鱼传尺愫 2020-11-30 01:55

I have an issue with creating a transparent element which has a child element. Using this code the child element gets the opacity value from the parent element.

I ne

相关标签:
3条回答
  • 2020-11-30 02:09

    The problem you probably have (based on looking at your selectors) is that opacity affects all child elements of a parent:

    div
    {
        background: #000;
        opacity: .4;
        padding: 20px;
    }
    
    p
    {
        background: #f00;
        opacity: 1;
    }​
    

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

    But there is a solution! Use rgba background values and you can have transparency wherever you want :)

    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/


    For text, you can just use the same rgba code, but set to the color property of CSS:

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

    But you must use rgba on everything for this to work, you have to remove the opacity for all parent elements.

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

    0 讨论(0)
  • 2020-11-30 02:13

    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?

    0 讨论(0)
  • 2020-11-30 02:16

    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.

    0 讨论(0)
提交回复
热议问题