css3新增屬性

文章目錄

  • css3新增屬性
    • box-shadow
    • border-radius
      • 設置橢圓
    • position: sticky;
    • 漸變背景
      • 線性漸變
        • 可重復的漸變背景
      • 徑向漸變
        • 可重復的漸變背景
    • 過渡
      • 分屬性
    • 動畫
      • 關鍵幀
      • 與transition的關系
      • demo
    • 變形
      • 平移
        • 使用
      • 旋轉
        • 使用
      • 其他
      • 使用
      • 立體效果
        • perspective
        • 元素位于3D空間還是平面中
      • 縮放
      • 變形的原點
    • 變量
      • 變量的定義、作用域和使用
        • 定義
        • 作用域
        • 使用
        • 示例
    • 運算

css3新增屬性

box-shadow

box-shadow: 10px 10px 10px rgba(54,54,54,0.36);
元素陰影,這個不會影響頁面布局;分別指定如下參數:

  1. 水平偏移量,正數向右,負數向左
  2. 垂直偏移量,正數向下,負數向上
  3. 陰影模糊效果,數值越大越模糊
  4. 顏色

border-radius

border-radius: 2px;
邊框圓角半徑,會影響box-shadow顯示

  • border-top-left-radius
  • border-top-right-radius
  • border-bottom-left-radius
  • border-bottom-right-radius

設置橢圓

border-radius: 30px/10px;

position: sticky;

粘滯定位,和相對定位類型,不同的是粘滯定位可以在元素到達某個位置時將其固定住,兼容性不好;
通過設置top、bottom、left、right設置固定范圍,當這些值設置為0px時,就是整個視口

漸變背景

漸變是圖片,需要通過background-image進行設置;

線性漸變

漸變默認是從上到下;

  • linear-gradient(red, yellow) 從上到下,紅色到黃色的漸變
  • linear-gradient(to right, red, yellow) to right指定漸變方向,這個指定方向還可以設置deg(度),turn(圈)
  • 漸變可以同時指定多個顏色,多個顏色默認情況下平均分布,即指定的顏色之間的距離是相等的
    也可以手動指定分布情況:background-image: linear-gradient(red 20px, yellow 80px);,指定漸變分界顏色出現的位置

可重復的漸變背景

background-image: repeating-linear-gradient(red 0px, yellow 40px);

徑向漸變

  • radial-gradient(red, yellow) red中心向四周輻射yellow

整體和線性漸變一樣;默認情況下徑向漸變的形狀根據元素形狀來計算,即:

  • 元素為正方形,徑向漸變就是圓形

  • 元素為長方形,徑向漸變就是橢圓

  • 可以手動指定徑向漸變范圍的大小radial-gradient(100px 200px, red, yellow)
    這個指定大小存在預設值

    • closest-side 到達最近的邊
    • closest-corner 到達最近的角
    • farthest-side 到達最遠的邊
    • farthest-corner 到達最遠的角
  • 可以手動指定元素的徑向漸變形狀:radial-gradient(circle, red, yellow)或者radial-gradient(ellipse, red, yellow)

  • 可以手動執行元素徑向漸變的中心點位置radial-gradient(100px 200px at 0px 0px, red, yellow)

可重復的漸變背景

background-image: repeating-radial-gradient(red 0px, yellow 40px);

過渡

過渡,只有在屬性、樣式發生變化的時候才會執行,如hover狀態;
transition: 對象 時間,通過過渡指定一個屬性切換到目標狀態以過渡的方式,主要有兩個,一個是目標狀態,一個當前狀態,一個是過渡時間;

  • transition: all 2s 所有屬性再2s內進行過渡
  • transition: width 0.5s, height 1s;同時指定多個使用逗號隔開

分屬性

簡寫屬性無順序要求,只是路過同時使用duration和delay,那么第一個是duration,第二個是delay

  • transition-property 指定要執行過渡的屬性,多個屬性使用逗號隔開,如果要針對所有屬性,那就設置為all

    • transition-property: width, height;
    • transition-property: all;
  • transition-duration 執行執行過渡的持續時間,針對transition-property不同屬性設置的transition-duration也使用逗號隔開,然后會對應上去,如:

    transition-property: width, height;
    transition-duration: 1s, 2s;
    
  • transition-timing-function 執行過渡的時間分布效果,注意,要看到效果一定要先指定transition-during

    • ease 默認效果,慢速開始,先加速再減速
    • linear 勻速運動
    • ease-in 加速運動
    • ease-out 減速運動
    • ease-in-out 先加速后減速
    • cubic-bezier() 通過指定函數,通過網站https://cubic-bezier.com/#.17,.67,.83,.67可以得到這個曲線
    • steps() 指定過渡效果分幾步進行過渡,可設置一個、兩個值
      • 一個值就是指定分幾步
      • 兩個值就是制定分幾步,每次在一步的什么時候執行過渡
  • transition-delay 指定進行過渡的延時

動畫

設置動畫效果,必須先要設置一個關鍵幀,動畫效果執行完畢就正常顯示元素。
簡寫屬性無順序要求,只是路過同時使用duration和delay,那么第一個是duration,第二個是delay

  • animation-name 指定動畫的關鍵幀
  • animation-duration 指定整個動畫持續時間
  • animation-delay 指定動畫延時時間
  • animation-timing-function 指定動畫播放時間函數,這個函數指的是關鍵幀之間的函數;
    • step() 指定的是關鍵幀之間的跳轉次數
  • animation-iteration-count 動畫執行次數,默認一次
    • infinite 無限次
  • animation-direction 方向
    • normal from -> to
    • reverse to -> from
    • alternate 交替 from -> to -> from …
    • alternate-reverse 反向交替 to -> from -> to …
  • animation-play-state 控制動畫停止和播放
    • running 播放
    • paused 停止
  • animation-fill-mode 動畫執行的填充效果
    • none 默認,動畫執行完畢元素回到元素屬性定義的位置
    • forward 動畫執行完畢元素停止到動畫結束的位置
    • backward 動畫延遲等待時,元素會處于動畫開始狀態,結束位置會回到none位置
    • both == backward + forward

關鍵幀

@keyframes
關鍵幀設置了動畫執行的每一個步驟;

與transition的關系

transition – 過渡,與transition類型,但是transition需要當元素屬性發生變化才會發生;而動畫可以自動觸發動態效果;

demo

.parent-30 {width: 100px;height: 100px;background-color: silver;/* 設置動畫 */animation-name: keyframe-1;animation-duration: 2s;animation-delay: 1s;animation-timing-function: ease-in-out;
}@keyframes keyframe-1 {
/* to表示動畫的開始位置,也可以使用 0% 表示 */
from {width: 100px;height: 100px;
}/* from表示動畫的結束位置,也可以使用 100% 表示 */
to {width: 200px;height: 200px;
}
<div class="parent-30"></div>

變形

變形是指元素形狀或位置發生的改變;他不會影響頁面布局;這個就是和margin的區別,margin會影響到布局。
transform 用來設置變形效果,變形效果如果想要看到3D效果,就要對變形元素的父元素設置persprctive屬性

平移

  • translateX() 元素沿著X方向平移,平移使的百分比不是相對父元素,而是相對自身
  • translateY() 元素沿著Y方向平移,平移使的百分比不是相對父元素,而是相對自身
    可以利用上面兩個實現可適應內容大小的塊盒居中
  • translateZ() 元素沿著Z方向平移
    Z軸平移,正常情況下就是調整元素和人眼之間的距離,距離越大,元素離人越近
    Z軸平移屬于立體效果(近大遠小),默認情況下網頁不支持,如果需要看見效果,必須要設置視距perspectivetransform: perspective(800px) translateZ(200px);;設置視距之后Z軸平移才有效果;
    平移Z軸,他是將整個屏幕向用戶方向移動,就像場景視圖概念,此時場景向用戶移動,視圖顯示的范圍必定會縮小,于是顯示范圍會縮減,計算機的視圖一直是場景中心,因此會出現四周元素消失的情況。

使用

transform: translateX(-50%) translateY(-50%);這個是按照順序進行變形的。

旋轉

旋轉的時候立體坐標系的原點在元素的中心位置,橫穿原點的是x軸,縱穿原點的是y軸,垂直顯示器平面的是Z軸,站在軸的正方向,順時針旋轉時,旋轉角度為正數;逆時針為負數。
通過旋轉可以使元素沿著x、y、z旋轉指定的角度

  • rotateZ 沿著Z旋轉,旋轉的點為元素中心
  • rotateX 驗證X旋轉,旋轉的軸為X軸,是元素橫向的、元素縱向中點的那條線,父元素設置perspective有立體效果
  • rotateY 沿著Y旋轉,旋轉的是Y軸,橫向左邊為元素中點,父元素設置perspective有立體效果
    旋轉到背面元素上的數據依舊是可見的,只不過是倒過去了。

使用

transform: rotateZ(45deg);

其他

backface-visibility

  • visible 默認顯示
  • hidden 這個不顯示是直接背景也都不顯示的

使用

transform: rotateY(45deg) translateZ(100px);,這個是按照順序進行變形的,先旋轉Y軸,然后Z軸也會跟著旋轉,因此平移Z軸時移動的方向并不是正對著人,而是會有一個偏移。

立體效果

perspectivetransform-style均設置在父元素中

perspective

perspective 指定了觀察者與 z=0 平面的距離,使具有三維位置變換的元素產生透視效果。z>0 的三維元素比正常大,而 z<0 時則比正常小,大小程度由該屬性的值決定。
三維元素在觀察者后面的部分不會繪制出來,即 z 軸坐標值大于 perspective 屬性值的部分。
當該屬性值不為 0 和 none 時,會創建新的 層疊上下文。在這種情況下,容器內元素的層疊關系像是使用了 position: fixed 一樣。

元素位于3D空間還是平面中

transform-style

  • flat 默認值,設置元素的子元素位于該元素的平面中,一般的移動(主要是Z軸移動),他是沒有效果的,即使有效果,那也是計算機計算出來的,僅顯示x、y平面上可以看到的;設置為preserve-3d,那么在顯示時會顯示Z軸方向上的信息。
  • preserve-3d 指示元素的子元素應位于 3D 空間中。

縮放

縮放的本質是對軸進行拉伸,他是一種對像素的增益,而不是直接修改了像素,也就是說顯示像素=元素像素*增益

  • transform: scaleX(2) 水平方向縮放
  • transform: scaleY(3) 垂直方向縮放
  • transform: scale(3) 雙方向上的縮放
  • transform: scaleZ(3)
    如果transform-style為默認情況,即flat,那么對于單個元素,此時scaleZ()是看不出效果的,因為這種元素他只是一個平面的概念,他是沒有Z軸的,要看到Z軸的效果,就要將兩個元素(也就是兩個平面)利用position: absolute放置到相同x、y位置,然后旋轉Y軸才看的出來兩者的Z軸間隙。
    而單純的給人看的時候,兩者的像素一直都是不變的,因此單純在平面是無法觀測到的。

變形的原點

transform-origin,設定變形原點,所有的縮放均圍繞變形原點進行變形:旋轉、縮放均與該屬性相關。

  • center 默認值,在中心位置,偶數為n/2,奇數為n/2 + 1
  • transform-origin: 0px 0px

變量

兼容性差;
css中有變量的概念,但是兼容性存在問題。

變量的定義、作用域和使用

定義

定義就是在一個元素中使用--key: value;進行定義

作用域

css定義的變量的作用域是當前元素以及當前元素的后代元素

使用

var(--key)

示例

<style>.parent-1 {/* 定義變量 */--color: red;}.parent-1 .box-1 {width: 100px;height: 100px;/* 使用變量 */background-color: var(--color);}.parent-1 .box-2 {width: 100px;height: 100px;/* 使用變量 */color: var(--color);}
</style>
<div class="parent-1"><div class="box-1"></div><div class="box-2">123</div>
</div>

運算

兼容性差
width: calc(100px / 2);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43184.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43184.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43184.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tornado在模板中遍歷二維數組

要在Tornado模板中遍歷一個二維數組&#xff0c;你可以使用Tornado的模板語法來實現迭代和顯示數組中的每個元素。 以下是一個示例&#xff0c;演示如何在Tornado模板中遍歷和顯示二維數組的內容&#xff1a; template.html: <!DOCTYPE html> <html> <head&g…

小米分享 | 解密面試題:網易面試如何回答“創建線程有哪幾種方式?”

大家好&#xff0c;我是你們的小米&#xff01;今天要和大家一起探討一個在技術面試中常見的問題&#xff1a;創建線程有哪幾種方式&#xff1f;這可是個經典面試題哦&#xff01;不過別擔心&#xff0c;小米在這里為你詳細解析&#xff0c;幫你輕松應對&#xff0c;讓你在面試…

深度學習在MRI運動校正中的應用綜述

運動是MRI中的主要挑戰之一。由于MR信號是在頻率空間中獲取的&#xff0c;因此除了其他MR成像偽影之外&#xff0c;成像對象的任何運動都會導致重建圖像中產生偽影。深度學習被提出用于重建過程的幾個階段的運動校正。廣泛的MR采集序列、感興趣的解剖結構和病理學以及運動模式&…

用dcker極簡打包java.jar鏡像并啟動

用dcker極簡打包java.jar鏡像并啟動 一、本地打包好jar包 二、新建文件夾&#xff0c;將步驟1中的jar包拷貝到文件夾下 三、同目錄下新建Dockerfile ## 基礎鏡像&#xff0c;這里用的是openjdk:8 FROM openjdk:8## 將步驟一打包好的jar包 拷貝到鏡像的 跟目錄下[目錄可以自定義…

Oracle字段長度不足位數補零

Oracle字段長度不足位數補零 有時候從數據庫中取出的月份值是1&#xff0c;而不是01&#xff0c;該怎么辦呢 SELECTLPAD( CODE_MONTH, 2, 0 ) FROMtb_cube_TY001 WHERECODE_BM_MEATYPE TY20 AND code_measure MYLX01 AND code_month <> ~ AND CODE_ENTITY 01A AND…

【實戰】十一、看板頁面及任務組頁面開發(二) —— React17+React Hook+TS4 最佳實踐,仿 Jira 企業級項目(二十四)

文章目錄 一、項目起航&#xff1a;項目初始化與配置二、React 與 Hook 應用&#xff1a;實現項目列表三、TS 應用&#xff1a;JS神助攻 - 強類型四、JWT、用戶認證與異步請求五、CSS 其實很簡單 - 用 CSS-in-JS 添加樣式六、用戶體驗優化 - 加載中和錯誤狀態處理七、Hook&…

“深入探索JVM:解析Java虛擬機的工作原理與優化“

標題&#xff1a;深入探索JVM&#xff1a;解析Java虛擬機的工作原理與優化 摘要&#xff1a;本篇博客將深入探討Java虛擬機&#xff08;JVM&#xff09;的工作原理以及如何優化JVM的性能。我們將介紹JVM的組成部分、類加載過程、內存管理、垃圾回收機制以及常見的性能優化技術…

記一次線上OOM事故

OOM 問題 linux內核有個機制叫OOM killer(Out-Of-Memory killer)&#xff0c;當系統需要申請內存卻申請不到時&#xff0c;OOM killer會檢查當前進程中占用內存最大者&#xff0c;將其殺掉&#xff0c;騰出內存保障系統正常運行。 一般而言&#xff0c;一個應用的內存逐漸增加&…

__setitem__和__getitem和__delitem__

目錄 一、__setitem__ 二、__getitem__ 三、__delitem__與__delattr__ python從小白到總裁完整教程目錄:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5502 class Foo:def __init__(self, name):self.name namedef __getitem__(s…

mekefile 編寫

mekefile 編寫 參考 Linux下使用 autoconf和automake 自動構建 項目 make file文件 makefile 中加入shell語句 if shell 參考 foo.bak: foo.barecho "foo"if [ -d "~/Dropbox" ]; then echo "Dir exists"; fi Or foo.bak: foo.barecho &quo…

文心一言 VS 訊飛星火 VS chatgpt (76)-- 算法導論7.3 1題

一、如果用go語言&#xff0c;為什么我們分析隨機化算法的期望運行時間&#xff0c;而不是其最壞運行時間呢? 文心一言&#xff1a; 在分析算法的性能時&#xff0c;期望運行時間是一個重要的指標&#xff0c;它描述了算法在平均情況下的表現。期望運行時間考慮了所有可能的…

管理類聯考——邏輯——真題篇——按知識分類——匯總篇——二、論證邏輯——支持加強——第二節——分類2——正面支持

文章目錄 第二節 支持加強-分類2-正面支持題-支持加強-分類2-正面支持-表達“確實如此”題-支持加強-分類2-正面支持-表達“確實如此”-正面支持不直觀:轉為削弱反面更直觀真題(2010-38)-支持加強-分類2-正面支持真題(2018-29)-支持加強-分類2-正面支持-支持關鍵詞真題(…

musl libc ldso 動態加載研究筆記:02

前言 本篇繼續研究 musl libc ldso 的動態加載過程中遇到的關鍵性的概念&#xff1a;到底要加載ELF 文件的哪些內容到 內存 當前如果遇到 ELF 動態加載&#xff0c;當前系統需要有【文件系統】&#xff0c;并且有較大的內存&#xff0c;因為 ELF 文件是無法直接運行的&#xf…

IDEA兩種方法修改生成的jar包名字

方法一&#xff1a; 直接修改pom文件中的如下部分 <artifactId>excelreport</artifactId> <version>0.0.1-SNAPSHOT</version> <name>excelreport</name> <description>excelreport</description> 修改完成后&#xff0c;點…

SpringBoot3集成Kafka

標簽&#xff1a;Kafka3.Kafka-eagle3&#xff1b; 一、簡介 Kafka是一個開源的分布式事件流平臺&#xff0c;常被用于高性能數據管道、流分析、數據集成和關鍵任務應用&#xff0c;基于Zookeeper協調的處理平臺&#xff0c;也是一種消息系統&#xff0c;具有更好的吞吐量、內…

跟著美團學設計模式(感處)

讀了著篇文章之后發現真的是&#xff0c;你的思想&#xff0c;你的思維是真的比比你擁有什么技術要強的。 注 開閉原則 開閉原則&#xff08;Open-Closed Principle&#xff09;是面向對象設計中的基本原則之一&#xff0c;它的定義是&#xff1a;一個軟件實體應該對擴展開放…

python生成旗幟--比如美國國旗生成

目錄 1、解釋說明&#xff1a; 2、使用示例&#xff1a; 3、注意事項&#xff1a; 1、解釋說明&#xff1a; 在Python中&#xff0c;生成國旗可以通過使用第三方庫或者自定義函數來實現。通常&#xff0c;我們可以使用Pillow庫來處理圖像&#xff0c;以及使用matplotlib庫來…

python爬蟲7:實戰1

python爬蟲7&#xff1a;實戰1 前言 ? python實現網絡爬蟲非常簡單&#xff0c;只需要掌握一定的基礎知識和一定的庫使用技巧即可。本系列目標旨在梳理相關知識點&#xff0c;方便以后復習。 申明 ? 本系列所涉及的代碼僅用于個人研究與討論&#xff0c;并不會對網站產生不好…

carla中lka實現(二)

前言&#xff1a; 首先計算之前檢測出來的車道線的中線與輸入圖像的中線進行計算距離&#xff0c;&#xff0c;并設置不同的閾值對于不同的方向進行相關的調整。 一、車輛中心線 一般而言將攝像頭架設在車輛的正中心軸上&#xff0c;所獲得的圖像的中間線極為車輛的中心。 …

QGraphicsView 實例3地圖瀏覽器

主要介紹Graphics View框架&#xff0c;實現地圖的瀏覽、放大、縮小&#xff0c;以及顯示各個位置的視圖、場景和地圖坐標 效果圖: mapwidget.h #ifndef MAPWIDGET_H #define MAPWIDGET_H #include <QLabel> #include <QMouseEvent> #include <QGraphicsView&…