欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【JavaScript】巧用before和after偽元素制作動畫特效

admin
2023年7月7日 10:52 本文熱度 1085

為什么要整理這篇文章,是因為最近一個項目用到了:before:after這兩個偽元素,結合css3transform相關屬性實現鼠標懸停在圖片上出現邊框線條動畫特效。在CSS 中:before 和 :after這兩個偽類元素說不上常用 ,只是偶爾會被人用來添加些自定義格式什么的,但是它們的功用不僅于此。接下來就為大家介紹這兩個偽類元素。

一、基本概念

1.他們都是CSS偽元素,與:hover/:active等偽類不一樣。
2.:before:after偽元素是在CSS2中提出來的,所以兼容性可能到IE8了。
3.::before::afterCSS3中的寫法,為了將偽類和偽元素區分開。但是平時為了兼容性,還是會用一個冒號的寫法。

二、基本用法

p:after{}
img:before{}

這兩個偽類下特有的屬性 content ,用于在 CSS 渲染中向元素邏輯上的頭部或尾部添加內容。注意這些添加不會改變文檔內容,不會出現在 DOM 中,不可復制,僅僅是在 CSS 渲染層加入。比較有用的是以下幾個值:

[String] – 使用引號包括一段字符串,將會向元素內容中添加字符串。示例: 

a:after { content: "↗"; }

attr() – 調用當前元素的屬性,可以方便的比如將圖片的 Alt 提示文字或者鏈接的 Href 地址顯示出來。示例:

a:after { content:"(" attr(href) ")"; }

url() / uri() – 用于引用媒體文件。示例: 

h1::before { content: url(logo.png); }

counter() – 調用計數器,可以不使用列表元素實現序號功能。具體請參見 counter-increment 和 counter-reset 屬性的用法。示例:

h2:before { counter-increment: chapter; content: "Chapter " counter(chapter) ". " }

三、進階用法

清除浮動是一個時常會遇到的問題,不少人的解決辦法是添加一個空的 div 應用 clear:both; 屬性。現在,無需增加沒有意義的元素,僅需要以下樣式即可在元素尾部自動清除浮動:

.clear-fix { *overflow: hidden; *zoom: 1; }
.clear-fix:after { display: table; content: ""; width: 0; clear: both; }

制作三角的方法:

我們在寫聊天氣泡效果時會用到偽類元素

.c-main:before{
    content: '';
    border-top: 9px solid transparent;/*方框上部分背景顏色為透明*/
    border-bottom: 9px solid transparent;/*方框下部分背景為透明*/
    border-right: 9px solid #eee;/*箭頭背景顏色*/
    position: absolute;/*絕對定位1*/
    top: 25px;/*距離頂部位置偏移量2*/
    left: -9px;/*距離左邊位置偏移量3*/ /*123都是控制顯示位置的*/
}
 .c-main:after{
    content: '';
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 7px solid #fbfdfb;/*箭頭背景顏色,覆蓋前面的#eee顏色,使其顏色與整體顏色一致*/
    position: absolute;
    top: 27px;
    left: -7px;
}

定位都是其次的,主要是看border設置。一邊有顏色,其他三邊透明就可以實現。

四、特效妙用

除了簡單的添加字符,配合 CSS 強大的定位和特效特性,完全可以達到給簡單的元素另外附加最多兩個容器的效果。有一點需要注意的是,如果不需要內容僅配合樣式屬性做出效果,內容屬性也不能為空,即 content:”” 。否則,其他的樣式屬性一概不會生效。接下來我就以我最近項目中特效為例做演示。

鼠標移上圖片懸停不懂出現邊框特效:

HTML代碼

<div class="strength grWidth hidden">
    <div class="homeTitle">
        <h2>前端博客</h2>
    </div>
    <ul class="strengthMain">
        <li><a href="https://mybj123.com/"><img src="xiank.jpg" alt="專業團隊"><div class="font"><h3>碼云筆記</h3><p>歡迎訪問碼云筆記,這里有豐富的前端知識,但不局限于前端!</p></div></a></li>
    </ul>
</div>

CSS特效代碼

body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0}
fieldset,img{border:0;}
img{vertical-align:middle;}
ol,ul,li{list-style-type:none;}
table{border-collapse:collapse;border-spacing:0;}
button,input,select,textarea{font-size:13px;font-family:inherit;margin:0;outline:none;resize:none;border:none;}
.clearfix:after {clear: both; content: "."; display: block; height: 0; overflow: hidden; visibility: hidden; }
.clearfix { zoom:1; }
html{verflow:-Scroll;overflow-x:hidden;zoom:1;overflow-y:scroll;overflow:-moz-scrollbars-vertical;}
body{color:#1b1f2b;line-height:24px;font-family:"微軟雅黑","宋體", Arial, Helvetica, sans-serif; }
a{color:#1b1f2b;text-decoration:none;outline:none;blr:expression(this.onFocus=this.blur());}
a:hover{color:#e5000c;text-decoration:none;}:focus{outline:none;}
/* CSS活動的公共樣式 */
.fl{float:left;}
.fr{float:right;}
.gr_center{text-align:center;}
.grWidth{width:1200px; margin:0 auto;}
.mb10{margin-bottom:10px;}
.mb15{margin-bottom:15px;}
.center{text-align:center;}
.hidden{overflow:hidden;}
.nor{font-weight:normal;}
.homeTitle {
text-align: center;
margin-bottom: 35px;
text-transform: uppercase;
line-height: 40px;
}
.homeTitle h2 {
font-size: 36px;
color: #FF0000;
font-weight: normal;
}
.strength {
padding-top: 60px;
}
.strengthMain {
height: ;
overflow: hidden;
}
.strengthMain li {
float: left;
width: 600px;
height: 330px;
overflow: hidden;
background: #000;
position: relative;
}
.strengthMain li img {
width: 600px;
height: 330px;
transition: all .5s;
opacity: 0.4;
filter: alpha(opacity=40);
}
.strengthMain li .font {
width: 600px;
height: 205px;
top: 0;
left: 0;
position: absolute;
color: #fff;
text-align: center;
font-size: 16px;
padding-top: 125px;
}
.strengthMain li .font h3 {
font-size: 36px;
color: #fff;
font-weight: normal;
margin-bottom: 20px;
line-height: 36px;
}
.strengthMain li:hover img {
transform: scale(1.05, 1.05);
}
.strengthMain li .font::before,
.strengthMain li .font::after {
position: absolute;
content: '';
opacity: 0;
transition: all 0.5s;
}
.strengthMain li .font::before {
top: 25px;
right: 15px;
bottom: 25px;
left: 15px;
border-top: 1px solid #fff;
border-bottom: 1px solid #fff;
transform: scale(0, 1);
-webkit-transform-origin: 0 0;
transform-origin: 0 0
}
.strengthMain li .font::after {
top: 15px;
right: 25px;
bottom: 15px;
left: 25px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
transform: scale(1, 0);
transform-origin: 100% 0;
}
.strengthMain li:hover .font::before,
.strengthMain li:hover .font::after {
opacity: 1;
transform: scale(1);
transition: all 0.5s;
}

結束語

以上代碼親測可用,用:before 和:after偽類結合更多CSS3強大的特性,還可以完成非常多有意思的特效和 Hack ,這里僅是拋磚引玉,更多特效還需你去實現,更多精彩內容持續更新,感謝閱讀!


該文章在 2023/7/7 10:52:53 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved