Is it possible to change only the alpha of a rgba background colour on hover?

后端 未结 14 2286
离开以前
离开以前 2020-11-29 07:04
14条回答
  •  盖世英雄少女心
    2020-11-29 07:50

    This is now possible with custom properties:

    .brown { --rgb: 118, 76, 41; }
    .green { --rgb: 51, 91, 11; }
    
    a { display: block; position: relative; }
    div { position: absolute; bottom: 0; background-color: rgba(var(--rgb), 0.8); }
    a:hover div { background-color: rgba(var(--rgb), 1); }
    

    To understand how this works, see How do I apply opacity to a CSS color variable?

    If custom properties are not an option, see the original answer below.


    Unfortunately, no, you'll have to specify the red, green and blue values again for each individual class:

    a { display: block; position: relative; }
    
    .brown { position: absolute; bottom: 0; background-color: rgba(118, 76, 41, 0.8); }
    a:hover .brown { background-color: rgba(118, 76, 41, 1); }
    
    .green { position: absolute; bottom: 0; background-color: rgba(51, 91, 11, 0.8); }
    a:hover .green { background-color: rgba(51, 91, 11, 1); }
    

    You can only use the inherit keyword alone as a value for the property, and even then the use of inherit isn't appropriate here.

提交回复
热议问题