Css3新特性應用之視覺效果

来源:http://www.cnblogs.com/cqhaibin/archive/2016/12/11/6159721.html
-Advertisement-
Play Games

一、單側陰影 box-shadow屬性的應用,格式:h-shadow v-shadow blur spread color inset屬性取值介紹 h-sahdow:水平陰影的位置,允許負值 v-shadow:垂直陰影的位置,允許負值 blur:模糊距離 spread:陰影的尺寸,擴張距離,可以為負 ...


一、單側陰影

  • box-shadow屬性的應用,格式:h-shadow v-shadow blur spread color inset屬性取值介紹
    • h-sahdow:水平陰影的位置,允許負值
    • v-shadow:垂直陰影的位置,允許負值
    • blur:模糊距離
    • spread:陰影的尺寸,擴張距離,可以為負數
    • color:陰影的顏色
    • inset/outset:內部或者外部陰影
  • 陰影的擴張距離對四邊都有效,不能單獨應用於單邊。
  • box-shadow支持多組值同時生效的設置
  • 示例代碼:
.wrap{
            width: 200px;
            height: 120px;
            background: yellowgreen;
            box-shadow: 2px 0px 4px -2px black,
                        -2px 0px 4px -2px black;
        }

二 、不規則投影

  • 利用border-radius生成的形狀,用投影很好,但是如果加入了偽元素和半透明的裝飾,陰影表現就很不好了,如下情況都會有問題。
    • 半透明圖像、背景圖像、或者border-image
    • 元素設置了點狀、虛線或半透明的邊框,但沒有背景(或者background-clip不是border-box時)
    • 元素內部有小角是用偽元素生成
    • 通過clip-path生成的形狀
  • 解決辦法:利用svg的drop-shadow來實現
  • 示例代碼:
.wrap{
            width: 200px;
            height: 120px;
            border: 6px dotted yellowgreen;
            --box-shadow: 0px 0px 4px 0px black;
            -webkit-filter: drop-shadow(2px 0px 2px rgba(0,0,0,1))
        }

三、染色體效果

  • 基於濾鏡實現,應用filter屬性的相關值,調整圖片的飽合度、亮度等值
  • 基於min-blend-mode實現,作用:實現元素內容與背景以及下麵的元素髮生“混合”
  • 基本background-blend-mode實現,作用:實現背景顏色與背景圖片、背景圖片與圖片的混合
  • 三種情況的示例代碼:
.wrap1{
            width: 200px;
            height: 120px;
            overflow: hidden;
        }
        .wrap1 > img{
            max-height: 100%;
            max-width: 100%;
            -webkit-filter: sepia(1) saturate(4) hue-rotate(150deg);
        }

        .wrap2{
            width: 200px;
            height: 120px;
            background: hsl(335, 100%, 50%);
            overflow: hidden;
        }
        .wrap2 > img{
            height: 100%;
            width: 100%;
            mix-blend-mode: luminosity;
        }

        .wrap3{
            width: 200px;
            height: 120px;
            background-size: cover;
            background-color: hsl(335, 100%, 50%);
            background-image: url("../img/cat.png"); 
            background-blend-mode: luminosity;
        }

四、毛玻璃效果

主要實現原理:內容偽元素背景與底層背景相同的圖片;並加上filter:blur模糊濾鏡即可。註意blur不能應用在底層背景,也不能應用在元素的背景上(這樣會地元素本身應用blur模糊,會導致文本看不見),只能就用在偽元素上。

代碼如下:

body{
    background: url("../img/cat.png") no-repeat;
    background-size: cover;
}
.wrap{
    position: relative;
    width: 500px;
    margin: 0px auto;
    padding: 10px;
    line-height: 1.5;
    background: hsla(0, 0%, 100%, .3);
    overflow: hidden;
}
.wrap::before{
    content: '';
    background: url("../img/cat.png") 0/cover fixed;
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    filter: blur(20px);
    z-index: -1;
    margin: -30px;
}

代碼說明:

  • body與wrap偽元素都應用相同的背景圖片
  • wrap的background-attachment設置為fixed,讓背景圖不要跟隨滾動一起動
  • wrap偽元素設置為絕對定位,且z-index層級只高於背景
  • 利用blur設定wrap偽元素的模糊尺寸
  • 用margin負值增加寬度,父元素用overflow:hidden隱藏溢出,讓模糊背景更加真實。

五、折角效果

實現步驟

  • 首先利用linear-gradient實現切角效果
  • 然後再利用linear-gradinet生成一個三角形,並設置他的位置與寬高
  • 代碼如下:
.wrap{
        background: linear-gradient(to left bottom, transparent 50%, rgba(0, 0, 0, .4) 0) no-repeat 100% 0/2em 2em,
        linear-gradient(-135deg, transparent 1.4em, #58a 0);
        width: 200px;
        height: 120px;
    }

註意

  • 100% 0/2em 2em在定位背景元素的位置與寬高,尤其是2em的寬與高都是背景元素正常的寬度。
  • 而第二個linear-gradient中的1.4em是沿著漸變軸進行度量的,也就是漸變軸到元素頂邊的距離,本例是漸變軸到右上邊頂的距離
  • to left bottom是表示漸變從左下角開始

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、jQuery插件支持的轉換方式 二、瀏覽器支持的轉換方式(Firefox,Chrome,Opera,Safair,IE9,IE8) 註意:由於ie8(相容模式),ie7和ie6沒有JSON對象,需要使用JSON官方的方式,引入json.js。 三、javascript支持的轉換方式 註意:ie8 ...
  • 在jQuery之焦點圖轉換-左右的基礎上,將jQuery代碼改成js原生,並添加定時器(setInterval()和clearInterval()) ...
  • ...
  • 左右轉換需要在實現左右轉換的同時實現點擊換圖,這樣就需要(num=index;即紅色部分。),詳解見代碼。 ...
  • 以上是一個簡單地焦點圖事例,思路:圖片路徑寫在a標簽的href屬性里,點擊a得到$(this).attr("href");並把這個值給img的src。用簡單地jQuery寫一個點擊事件。 ...
  • log4js "log4js" 是一個管理,記錄日誌的工具。 其實與 "morgan" 的作用類似。 安裝 log4js的6個日誌級別 分別是:trace(藍色)、debug(青色)、info(綠色)、warn(黃色)、error(紅色)、fatal(粉色) 這6個level方便我們給日誌設置不同的 ...
  • 前言 好吧,我承認我是為了搞定Sass編譯CSS文件的問題,迷一樣的著手入gulp的坑,sass和gulp的爬坑歷程大概會一起更新。然後感覺這裡windows和mac的流程差不多,不過mac的通常在指令前加sudo ,本喵是windows的本本,所以就以windows的流程為例了。 1. 安裝淘寶c ...
  • 最近遇到一個問題,對於某一個持續的動作,希望能夠知曉用戶何時停止這個動作, 比如說 我們通過註冊onresize事件,去監聽瀏覽器視窗變化的事件,在這個事件裡面,我們可能要執行大量的計算去確定視窗變化後的一個佈局 可惜的是,onresize事件,在視窗大小發生改變的時候就會觸發一次,像筆者這種喜歡拖 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...