iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 15
0
自我挑戰組

前端新手的學習筆記系列 第 15

Day15:每天一個小練習 - CSS毛玻璃效果

  • 分享至 

  • xImage
  •  

還在和BS作業奮鬥。
今天突然發現JS30這個超讚的JS課程,充滿了相見恨晚之感,決定明天開始找時間練習。


這個練習有用到一些BS標籤,可以比較快速的製作。
要刻對齊全頁面的垂直置中毛玻璃效果,首先設定HTML

<body class="d-flex justify-content-center align-items-center">
    <div class="card bg-transparent d-flex justify-content-center align-items-center p-5 text-white">
        <div class="card-bg-glass"></div>
        <p>
        (略)
        </p>
    </div>
</body>

中間的<div class="card-bg-glass"></div>就是製作效果的地方。
來看CSS吧。
首先在body放入大到可以占滿全部畫面的背景圖,並進行設定:

body {
    height: 100vh;
    background: url(圖片位置)  no-repeat;
}

設定.card為position: relative;,讓.card-bg-glass可以進行定位

.card {
    width: 600px;
    height: 300px;
    position: relative;
}

目前畫面長這樣,可以看到置中的地方有一點邊框
https://ithelp.ithome.com.tw/upload/images/20200929/20121534vpxKKMDeFP.png

開始製作毛玻璃效果

.card-bg-glass {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    z-index: -1; //向下一層避免蓋住文字
    background: url(同樣的圖片);
    background-attachment: fixed;

這時畫面和上方沒有不同,是因為background-attachment: fixed;會跟著畫面定位背景圖片要出現的位置。
開始模糊背景,加上filter: blur(10px);,可以看到背景已經呈現霧狀
https://ithelp.ithome.com.tw/upload/images/20200929/20121534tbkaGeDaYB.png
為了讓四周也模糊的比較平均,加上margin: -20px;讓模糊擴大
https://ithelp.ithome.com.tw/upload/images/20200929/20121534csqMUWhdbf.png
這時會發現模糊的範圍超過card原本的範圍,需要修改,所以再card上加入overflow: hidden;就完成了
https://ithelp.ithome.com.tw/upload/images/20200929/201215341pSeaAEiWB.png
再依需求加入陰影修改就完成了

box-shadow: 0 0 0 1px #ffffff3f inset, 0 8px 16px black;

https://ithelp.ithome.com.tw/upload/images/20200929/20121534wtmMP5Fis4.png
連結


上一篇
Day14:每天一個小練習 - Bootstrap自訂元件
下一篇
Day16:每天一個小練習 - JS30-01-JS Drum Kit
系列文
前端新手的學習筆記32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言