CSS3 學習筆記

来源:http://www.cnblogs.com/jimmzy/archive/2016/06/11/5575778.html
-Advertisement-
Play Games

border radius 圓角是做網頁永遠繞不過的話題,以前基本是通過背景圖片做的,有了 CSS3 以後通過屬性就 能夠搞定,我們可以通過 border radius 設置元素的圓角半徑。 對於一個正方形,我們只需要設置為邊長的一半就可以呈現一個圓。 "代碼" border radius 是縮寫的 ...


border-radius

圓角是做網頁永遠繞不過的話題,以前基本是通過背景圖片做的,有了 CSS3 以後通過屬性就 能夠搞定,我們可以通過 border-radius 設置元素的圓角半徑。

border-radius: 5px;

對於一個正方形,我們只需要設置為邊長的一半就可以呈現一個圓。

div {
    width: 200px;
    height: 200px;
    border-radius: 50%; // 設置百分比
    border-radius: 100px; // 設置長度一半
}

代碼

border-radius 是縮寫的格式,其實 border-radiusborder 屬性一樣,還可以把各個角單獨拆分出來,也就是以下四種寫法

border-top-left-radius: length, length;
border-top-right-radius: length, length;
border-bottom-left-radius: length, length;
border-bottom-right-radius: length, length;

第一個值是圓角水平半徑,第二個值是垂直半徑,如果第二個值省略,那麼其等於第一個值,這時這個角就是一個四分之一的圓角,如果任意一個值為0,那麼這個角就不是圓角

box-shadow

CSS3 原生支持了陰影效果

box-shadow:inset h-shadow v-shadow blur-radius spread-radius color

box-shadow 屬性至多有6個參數設置:

  1. 陰影類型:此參數是一個可選值,如果不設值,其預設的投影方式是外陰影;如果取其唯一值inset,就是將外陰影變成內陰影

  2. h-shadow: 是指陰影水平偏移量其值可以是正負值可以取正負值,如果值為正值,則陰影在對象的右邊,反之其值為負值時,陰影在對象的左邊

  3. v-shadow: 是指陰影的垂直偏移量,其值也可以是正負值,如果為正值,陰影在對象的底部,反之其值為負值時,陰影在對象的頂部

  4. 陰影模糊距離:此參數是可選,,但其值只能是為正值,如果其值為0時,表示陰影不具有模糊效果,其值越大陰影的邊緣就越模糊

  5. 陰影陰影的尺寸:此參數可選,其值可以是正負值,如果值為正,則整個陰影都延展擴大,反之值為負值是,則縮小

  6. 陰影顏色:此參數可選,如果不設定任何顏色時,瀏覽器會取預設色,但各瀏覽器預設色不一樣

box-shadow 可以使用一個或多個投影,如果使用多個投影時必須需要用逗號,分開

box-shadow: 3px 3px 3px orange, 3px 3px 3px red;

box-sizing

這個屬性多少和邊框也相關,傳統的盒模型width就是指內容區域寬度,和padding、border沒有關係,但是這在佈局上帶來一定的困難

box-sizing 可以改變盒模型

  1. content-box:標準盒模型
  2. border-box:
    width = padding-left + padding-right + border-left-width + border-right-width + content width
    height = padding-top + padding-bottom + border-top-width + border-bottom-width + content height
div {
    width: 100px; // width 包含了左右padding的寬度 + 左右border的寬度
    height: 100px; // height 包含了上下padding的寬度 + 上下border的寬度
    padding: 20px;
    border: 1px solid #000;
    box-sizing: border-box;
}

代碼

text-overflow

  1. clip:隱藏超出文本
  2. ellipsis:顯示省略符號來代表被修剪的文本。

對於省略號效果還需要其它屬性配合

p {
    width: 100px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

擔心會有人提問上面的代碼只能在第一行顯示省略號,假如我想在第二行或者第三行顯示怎麼辦呢?

代碼

原理就是通過偽元素 ::after 來實現是不是非常的 easy。

過渡和動畫

CSS3 的動畫是瀏覽器原生支持的,好處就是流暢

transition(過渡)

在CSS3引入 transition 之前css沒有時間軸,所有的狀態變化都是瞬間完成。

transition 的作用在於,指定狀態變化所需要的時間

div {
    width: 100px;
    height: 100px;
    border: 1px solid #000;
    background-color: #000;
    transition: all 1s;
}

div:hover {
    width: 200px;
    height: 200px;
}

代碼

指定屬性

我們還可以指定transition適用的屬性

div {
    transition: 1.5s width;
}

完整代碼

這樣一來,只有height的變化需要1秒實現,其他變化(主要是width)依然瞬間實現。

在同一行transition語句中,可以分別指定多個屬性

div {
    transition: 1.5s width, 1s height;
}

代碼

delay

delay:中文翻譯延遲,顧名思義就是延遲多長時間在執行狀態變化。

需要註意的是 delay的參數是在時間的後面

div {
    transition: 狀態完成時間 height, 狀態完成時間 延遲時間(delay) width;
}
div {
    transition: 2s height, 0.5s 2s width;
}

完整代碼

delay的真正意義在於,它指定了動畫發生的順序,使得多個不同的transition可以連在一起,形成複雜效果

transition-timing-function

transition的狀態變化速度(又稱timing function),預設不是勻速的,而是逐漸放慢,這叫做ease

div {
    transition: 1s ease;
}

除了ease以外,其他模式還包括

  • linear:勻速
  • ease-in:加速
  • ease-out:減速
  • ease-in-out:規定以慢速開始和結束的過渡效果
  • cubic-bezier函數:自定義速度模式 鏈接

註意事項

  1. 目前,各大瀏覽器(包括IE 10)都已經支持無首碼的transition,所以transition已經可以很安全地不加瀏覽器首碼 transition相容性
  2. transition需要明確知道,開始狀態和結束狀態的具體數值,才能計算出中間狀態,什麼none到block之類的是不行的
  3. transition是一次性的,不能重覆發生,除非一再觸發。

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

-Advertisement-
Play Games
更多相關文章
  • 使用delegate(),on()綁定事件,可以將事件綁定到其祖先元素上,這樣以後載入出來的元素,單擊事件仍然有效 ...
  • 1.先說幾個基本類型: DOMString, boolean, long, unsigned long, double, NaN(Not-a-Number)。 DOMString其實就是其它大家常用的語言中的string。 在HTML5中,它用於表示url,Dom內容 等等。其他的boolean(布 ...
  • 1.下拉框 select : 移除option $("#ID option").each(function(){ if($(this).val() == 111){ $(this).remove(); } }); 添加option $("<option value='111'>UPS Ground< ...
  • 在js裡面,對於函數的調用,實際上也是也是面向對象的思路,於是寫好js函數,也是考核面向對象設計的能力,同時也必須考慮到如何實現高內聚和低耦合,拿一個例子來說,現在的需求是這樣的,實現個投資進度框,就是如圖所示:總共分四步來走,第一步“創建訂單中”,成功改變提示信息“創建訂單成功!”,顯示,不成功改 ...
  • Sencha ExtJS 6 在UI上非常強大,這裡介紹一個widget Grid示例來說明如何來在表格中顯示精度條和迷你圖... ...
  • CSS 有兩個說不上常用的偽類 :before 和 :after,偶爾會被人用來添加些自定義格式什麼的,但是它們的功用不僅於此。前幾天發現了 Creative Link Effects 這個非常有意思的介紹創意鏈接特效的頁面,裡面驚人的效果大量使用到的特性除了 transform 屬性進行變形之外, ...
  • 在使用UeEditor中遇到幾個個坑 1.添加的html代碼中使用的樣式class被guolv掉 解決方案:在ueditor.config.js中,xss過濾白名單中,每個元素添加class,如下圖 2.伺服器端許可權問題 解決方案:在controller.ashx(我用的.net版本)中添加相關的權 ...
  • 今天寫問卷的時候遇到個label點擊的時候,監聽的click事件被執行兩次;產生這個的原因麽。。。事件冒泡 然後麽找了下方法。。。 方法一:把label扔了。。。 然後方法二 只認input,判斷事件源為input(這是網上有人貼出來的解決方法)http://www.cnblogs.com/feng ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...