還在和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;
}
目前畫面長這樣,可以看到置中的地方有一點邊框
開始製作毛玻璃效果
.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);
,可以看到背景已經呈現霧狀
為了讓四周也模糊的比較平均,加上margin: -20px;
讓模糊擴大
這時會發現模糊的範圍超過card原本的範圍,需要修改,所以再card上加入overflow: hidden;
就完成了
再依需求加入陰影修改就完成了
box-shadow: 0 0 0 1px #ffffff3f inset, 0 8px 16px black;