整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          零基礎學編程(hover)

          零基礎學編程(hover)

          ss中:hover是一個偽類選擇器,:hover偽類選擇器在鼠標移到元素上時向此元素添加特殊的樣式。:hover選擇器適用于所有元素。

          :hover在鼠標移到鏈接上時添加的特殊樣式。

          在IE中必須聲明“<!DOCTYPE>”才能保證“:hover”選擇器能夠有效

          -------------------------------------------------------------------------------------------------------------------------

          代碼如下

          <!DOCTYPE html>
          <html>
          
          <head>
            <title>標題-爆米花</title>
            <link rel="stylesheet" type="text/css" href="mystyle.css">
            <script type="text/javascript" src="linkJavaScript.js"></script>
            <meta charset="UTF-8">
            <style type="text/css">
              #ceshi {
                display: flex;
                align-items: center;
                justify-content: space-around;
                height: 500px;
                background: #031628;
                /* 鼠標的樣式 */
                cursor: url('./mycur.cur'), auto
              }
          
              /* 這個是對span的簡單修飾 沒什么實質性作用 */
              .myspan {
                border: 1px solid;
                background-color: transparent;
                text-transform: uppercase;
                font-size: 14px;
                padding: 10px 20px;
                font-weight: 300;
          
              }
          
              .one {
                width: 250px;
                height: 370px;
                background-image: url(./3.jpeg);
                background-repeat: no-repeat;
                background-size: contain;
              }
          
              .one:hover {
                width: 600px;
                height: 350px;
                background-image: url(./2.jpg);
                background-repeat: no-repeat;
                background-size: contain;
          
              }
            </style>
            <script>
              document.write("hover特效!")
            </script>
          </head>
          
          <body>
            爆米花的內容<br>
            <div id="ceshi">
              <span class="myspan one">變美</span>
            </div>
          </body>
          
          </html>

          具體解釋在其中顯示

          1)想讓元素樣式有個變化的過程,那么我們需要以某種方式從一個樣式過渡到另一種樣式。

          • transition
          • transition-property
          • transition-duration
          • transition-timing-function
          • transition-delay

          CSS3 過渡是元素從一種樣式逐漸過渡到另一種樣式。

          其語法如下所示:

          transition: 指定屬性 持續時間 速度曲線 開始時間;

          它是一個復合屬性,我們也可以如下分開使用這幾個屬性。

          transition-property: 屬性值; /*指定屬性名*/
          transition-duration: 屬性值; /*完成過渡這一過程的時間*/
          transition-timing-function: 屬性值; /*速度曲線*/
          transition-delay: 屬性值; /*過渡的開始時間*/
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <style>
                  div{
                      margin-top:40px;
                      margin-left:40px;
                      width:50px;
                      height:50px;
                      background-color:#51adcf;
                      transition: transform 1s ease-in-out; /*ease-in-out 慢速開始慢速結束*/
                  }
                  div:nth-child(2){
                      transform: rotate(-60deg);
                  }
                  div:hover{
                      transform: scale(2);
                  }
              </style>
          </head>
          <body>
              <div></div>
              <div></div>
          </body>
          </html>

          hover變兩倍大

          • div:hover 中,使用 transform: scale(2) 設置當鼠標放在 div 元素上時,元素會放大 1 倍。
          • div:nth-child(2) 中,使用 div:nth-child(2) 設置第二個元素逆時針旋轉 60deg
          • 使用 transtion 屬性實現過渡的效果,其中 ease-in-outtransition-timing-function 屬性的屬性值。

          transition-timing-function 屬性用來設置過渡效果從開始到結束的時間曲線,它有很多可用屬性值,常用屬性值如下表:

          屬性值

          說明

          ease

          規定慢速開始,然后變快,然后慢速結束的過渡效果(cubic-bezier(0.25,0.1,0.25,1))。

          linear

          規定以相同速度開始至結束的過渡效果(等于 cubic-bezier(0,0,1,1))。

          ease-in

          規定以慢速開始的過渡效果(等于 cubic-bezier(0.42,0,1,1))。

          ease-out

          規定以慢速結束的過渡效果(等于 cubic-bezier(0,0,0.58,1))。

          ease-in-out

          規定以慢速開始和結束的過渡效果(等于 cubic-bezier(0.42,0,0.58,1))。

          steps(int,start 或者 end)

          steps() 有兩個參數,第一個為步長,其值必須為整數,第二個值為可選值,它有兩個取值,分別是 start 和 end。

          step-start

          相當于 steps(1, start)。

          step-end

          相當于 steps(1, end)。

          cubic-bezier(n,n,n,n)

          規定在 cubic-bezier 函數中定義自己的值。可能的值是 0 至 1 之間的數值。

          initial

          規定使用默認值。

          inherit

          規定從父元素繼承該屬性值。

          例子,圖片一秒一步,4步變大為原先二倍:

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <style>
                  div{
                      width:50px;
                      height:50px;
                      margin:50px;
                      background-color:cornflowerblue;
                      transition: transform 4s steps(4);
                  }
                  div:hover{
                      transform:scale(2);
                  }
              </style>
          </head>
          <body>
              <div></div>
          </body>
          </html>

          練習一下:

        1. 在 body 中添加一個寬和高均為 100 個像素的 div 元素,其背景顏色為黃色。
        2. 設置過渡樣式,當鼠標放在元素上,延遲 1 秒后,元素的寬度會慢慢變成 300 個像素。
        3. 過渡整個過程會持續 5 秒。
        4. 按以上要求用 HTML 完成以下效果:

          寫CSS的常用套路(下篇)...

          點擊觀看——我寫CSS的常用套路(上篇)...

          box-shadow

          為盒子添加陰影,增加盒子的立體感,可以多層疊加,并且會使陰影更加絲滑

          本demo地址:Pagination

          內發光

          注意到box-shadow還有個inset,用于盒子內部發光

          利用這個特性我們可以在盒子內部的某個范圍內設定顏色,做出一個新月形

          再加點動畫和濾鏡效果,“猩紅之月”閃亮登場!

          注意到它散發著淡淡的紅光,其實就是2個偽元素應用了模糊濾鏡所產生的效果

          本demo地址:Crimson Crescent Loading

          text-shadow

          文本陰影,本質上和box-shadow相同,只不過是相對于文本而言,常用于文本發光,也可通過多層疊加來制作霓虹文本和偽3D文本等效果

          發光文本

          本demo地址:Staggered GlowIn Text

          霓虹文本

          本demo地址:Neon Text

          偽3D文本

          本demo地址:Staggered Bouncing 3D Loading

          background-clip:text

          能將背景裁剪成文字的前景色,常用來和color: transparent配合生成漸變文本

          本demo地址:Menu Hover Fill Text

          gradient

          漸變可以作為背景圖片的一種,具有很強的色彩效果,甚至可以用來模擬光

          linear-gradient

          線性漸變是筆者最常用的漸變

          這個作品用到了HTML的dialog標簽,線性漸變背景,動畫以及overflow障眼法,細心的你看出來了嗎:)

          本demo地址:Confirm Modal

          radial-gradient

          徑向漸變常用于生成圓形背景,上面例子中Snow的背景就是一個橢圓形的徑向漸變

          此外,由于背景可以疊加,我們可以疊加多個不同位置大小的徑向漸變來生成圓點群,再加上動畫就產生了一種微粒效果,無需多余的div元素

          本demo地址:Particle Button

          conic-gradient

          圓錐漸變可以用于制作餅圖

          用一個偽元素疊在餅圖上面,并將content設為某個值(這個值通過CSS變量計算出來),就能制作出度量計的效果,障眼法又一次完成了它的使命

          本demo地址:Gauge (No SVG)

          filter

          PS里的濾鏡,blur最常用

          融合效果

          當blur濾鏡和contrast濾鏡一起使用時,會產生一種融合(gooey)的奇特效果

          本demo地址:Snow Scratch

          backdrop-filter

          對背景應用濾鏡,產生毛玻璃的效果

          本demo地址:Frosted Glass

          mix-blend-mode

          PS里的混合模式,常用于文本在背景下的特殊效果

          以下利用濾色模式(screen)實現文本視頻蒙版效果

          本demo地址:Video Mask Text

          clip-path

          PS里的裁切,可以制作各種不規則形狀。如果和動畫結合也會相當有意思

          本demo地址:Name Card Hover Expand

          故障效果

          由于clip-path有裁切功能,因此可以將多個文字疊在一起,并按比例裁切成多分,再應用交錯動畫,就能制作出酷炫的故障效果(glitch)。

          本demo地址:Cross Bar Glitch Text

          mask

          PS里的遮罩。所謂遮罩,就是原始圖片只顯示遮罩圖片非透明的部分

          鏤空效果

          雖然clip-path能裁切出形狀,但它無法鏤空,因為形狀的里面它管不著

          可能有人(包括我)會用偽元素來“模擬”鏤空(通過設置同樣的背景色),但這樣并非真的鏤空,換了個背景或浮在圖片上就會暴露出來,這時我們就要求助于遮罩了

          假設,你想制作一個空心的圓環,那么你只需將一個徑向漸變作為元素的遮罩,并且第一個color-stop設置為透明,其他的color-stop設置為其他顏色即可,因為遮罩的定義就是只顯示遮罩圖片非透明的部分

          注意:為了消除鋸齒,這個徑向漸變的中間需要有一個額外的color-stop用于緩沖,長度設置為原長度加0.5px即可

          本demo地址:Circle Arrow Nav

          -webkit-box-reflect

          投影效果,不怎么常用,適合立體感強的作品

          本demo地址:Card Flip Reflection

          web animations

          雖然這并不是一個CSS特性,但是它經常用于完成那些CSS所做不到的事情

          那么何時用它呢?當CSS動畫中有屬性無法從CSS中獲取時,自然就會使用到它了

          跟蹤鼠標的位置

          目前CSS還尚未有獲取鼠標位置的API,因此考慮用JS來進行

          通過查閱相關的DOM API,發現在監聽鼠標事件的API中,可通過e.clientX和e.clientY來獲得鼠標當前的位置

          既然能夠獲取鼠標的位置,那么跟蹤鼠標的位置也就不是什么難事了:通過監聽mouseenter和mouseleave事件,來獲取鼠標出入一個元素時的位置,并用此坐標來當作鼠標的位移距離,監聽mousemove事件,來獲取鼠標在元素上移動時的位置,同樣地用此坐標來當作鼠標的位移距離,這樣一個跟蹤鼠標的效果就實現了

          本demo地址:Menu Hover Image

          CSS Houdini

          CSS Houdini是CSS的底層API,它使我們能夠通過這套接口來擴展CSS的功能

          讓漸變動起來

          目前來說,我們無法直接給漸變添加動畫,因為瀏覽器不理解要改變的值是什么類型

          這時,我們就可以利用CSS.registerProperty()來注冊我們的自定義變量,并聲明其語法類型(syntax)為顏色類型<color>,這樣瀏覽器就能理解并對顏色應用插值方法來進行動畫

          還記得上文提到的圓錐漸變conic-gradient()嗎?既然它可以用來制作餅圖,那么我們能不能讓餅圖動起來呢?答案是肯定的,定義三個變量:--color1、--color2和--pos,其中--pos的語法類型為長度百分比<length-percentage>,將其從0變為100%,餅圖就會順時針旋轉出現

          利用絕對定位和層疊上下文,我們可以疊加多個從小到大的餅圖,再給它們設置不同的顏色,應用交錯動畫,就有了下面這個炫麗的效果

          本demo地址:Mawaru

          彩蛋

          將交錯動畫和偽類偽元素結合起來寫出來的慎重勇者風格的菜單

          本demo地址:Shinchou Menu


          主站蜘蛛池模板: 少妇无码一区二区三区免费| 中字幕一区二区三区乱码| 国产综合一区二区在线观看| 精品国产精品久久一区免费式| 国产精品一区二区三区久久| 久久久久女教师免费一区| 亚洲狠狠久久综合一区77777| 毛片一区二区三区| 国产成人一区二区精品非洲| 手机看片一区二区| 亚洲高清一区二区三区 | 国产香蕉一区二区三区在线视频| 亚洲一区二区三区在线网站| 国产精品一区二区电影| 国产精品无圣光一区二区| 亚洲日韩中文字幕无码一区| 内射少妇一区27P| 亚洲福利视频一区| 日本免费一区二区三区最新vr| 国模精品一区二区三区| 最新欧美精品一区二区三区| jizz免费一区二区三区| 无码播放一区二区三区| 亚洲乱码国产一区网址| 亚洲第一区香蕉_国产a| 精品一区二区三区在线观看l| 精品福利一区二区三区精品国产第一国产综合精品 | 免费在线观看一区| 无码国产伦一区二区三区视频 | 中文字幕一区一区三区| 国产在线观看91精品一区| 无码人妻视频一区二区三区| 波多野结衣在线观看一区二区三区 | 香蕉久久av一区二区三区| 日韩一区二区三区免费体验| 人妻无码久久一区二区三区免费| 国产一区二区三区精品久久呦| 亚洲福利视频一区二区三区| 国产一区二区视频在线播放| 狠狠综合久久av一区二区| 91一区二区三区四区五区|