這篇文章主要介紹了詳解CSS-opacity子元素繼承父元素透明度的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面随着小編來一起學習學習吧
在寫項目頁面的過程中,遇到子元素繼承父元素透明度的問題,查找了好多文檔給出的都是第一種方法,這種方法主要解決簡單場景的,而對于設定複雜的background時,該方法不再适用。
分析原因:
父元素背景顔色設定透明度opacity:0.5,子元素會繼承,給子元素設定opacity:1,子元素的透明度也是在父元素0.5的基礎上設定的。
第一種方法:
父元素背景顔色設定透明度時,避免使用background:#000;opacity:0.5,建議使用background:rgba(0,0,0,0.5)
第二種方法:
如果設定背景色為漸變色等這種複雜背景,第一種方法就不在适用。
background-image: linear-gradient(-180deg, rgba(20,20,20,0.00) 19%, #303030 100%);
opacity: 0.5;
因為子元素會繼承父元素的opacity屬性,我們讓它不成為子元素。新增一個子元素,将其絕對定位到父元素位置,然後在該元素上設定背景色與透明度。
- < div class=" container">
- < div class=" content">
- < p>我是 class為 content的 DIV</ p>
- < p>我的背景是 class為 background的背景</ p>
- < p>通過相對定位和絕對定位,我把 class為 background的 DIV移動到了我的位置。</ p>
- < p>同時通過我的較大的 z-index浮在了它的上面。 :)</ p>
- </ div>
- < div class=" background"></ div>
- </ div>
- .container {
- width: ;
- height: ;
- color: ;
- position:relative;
- }
- .content {
- position:relative;
- z-index: ;
- width: ;
- height: ;
- overflow: hidden;
- }
- .background {
- background-color: ;
- position:absolute;
- top: ;
- left: ;
- width: ;
- height: ;
- z-index: ;
- /*相容IE7、8 */
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
- filter: alpha(opacity= );
- opacity:. ;
- }
面對國内衆多的雲平台,個人和企業該如何選擇呢?可以參考這篇文檔:【雲伺服器推薦】2021年騰訊雲、阿裡雲、華為雲伺服器價格和配置評測
這篇文章主要介紹了詳解CSS-opacity子元素繼承父元素透明度的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面随着小編來一起學習學習吧
在寫項目頁面的過程中,遇到子元素繼承父元素透明度的問題,查找了好多文檔給出的都是第一種方法,這種方法主要解決簡單場景的,而對于設定複雜的background時,該方法不再适用。
分析原因:
父元素背景顔色設定透明度opacity:0.5,子元素會繼承,給子元素設定opacity:1,子元素的透明度也是在父元素0.5的基礎上設定的。
第一種方法:
父元素背景顔色設定透明度時,避免使用background:#000;opacity:0.5,建議使用background:rgba(0,0,0,0.5)
第二種方法:
如果設定背景色為漸變色等這種複雜背景,第一種方法就不在适用。
background-image: linear-gradient(-180deg, rgba(20,20,20,0.00) 19%, #303030 100%);
opacity: 0.5;
因為子元素會繼承父元素的opacity屬性,我們讓它不成為子元素。新增一個子元素,将其絕對定位到父元素位置,然後在該元素上設定背景色與透明度。
- < div class=" container">
- < div class=" content">
- < p>我是 class為 content的 DIV</ p>
- < p>我的背景是 class為 background的背景</ p>
- < p>通過相對定位和絕對定位,我把 class為 background的 DIV移動到了我的位置。</ p>
- < p>同時通過我的較大的 z-index浮在了它的上面。 :)</ p>
- </ div>
- < div class=" background"></ div>
- </ div>
- .container {
- width: ;
- height: ;
- color: ;
- position:relative;
- }
- .content {
- position:relative;
- z-index: ;
- width: ;
- height: ;
- overflow: hidden;
- }
- .background {
- background-color: ;
- position:absolute;
- top: ;
- left: ;
- width: ;
- height: ;
- z-index: ;
- /*相容IE7、8 */
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
- filter: alpha(opacity= );
- opacity:. ;
- }