搜尋
首頁web前端css教學幾個好用的css函數小技巧

幾個好用的css函數小技巧

Nov 20, 2017 pm 01:19 PM
css技巧

CSS為HTML標記語言提供了一種樣式描述,定義了其中元素的顯示方式。 CSS在Web設計領域是一個突破。利用它可以實現修改一個小的樣式更新與之相關的所有頁面元素。在這篇文章中我們將會介紹CSS函數中8種有用的小技巧。

1.純CSS Tooltip

許多網站還是在使用JavaScript來創建Tooltip效果,但實際上透過CSS能更簡單的實作。最簡單的方法就是在你的HTML程式碼中加入一個帶有提示文字的屬性,例如 data-tooltip="…" 。然後你就可以在你的CSS檔案中加入以下的程式碼透過attr() 函數來顯示提示文字:

.tooltip::after {    content: attr(data-tooltip);
}

相當簡單對吧?當然實際上我們還需要更多的程式碼來為提示增加樣式,但是不用擔心,已經有了為此設計的強大且純粹的叫 Hint.css 的CSS庫和 Balloon.css 。

2.使用自訂資料屬性和 attr() 函數

我們已經學會如何使用 attr() 來建立提示,另外還有一些場景能使用到這個函數。透過與資料屬性結合,你可以透過很簡單的一行HTML程式碼來建立帶有標題和描述的縮圖:


   Illustration

現在你可以透過attr() 函數來顯示標題與說明:

.caption::after {    content: attr(data-title);
   ...
}

以下為具體的例子:

注意:這個方法在瀏覽器支援上可能會有一些問題,具體內容你可以查看 Accessibility support for CSS generated content 這篇文章。

3. CSS Counters

你可以透過CSS Counters來實現超棒的功能。這不是一個非常為人所知的屬性,大多數人甚至可能認為瀏覽器不能很好的支援這個屬性,但事實上所有的瀏覽器都支援這個屬性:

#但你不應該將CSS counters使用在有序列表

    上,它更適合使用在類似分頁或圖片庫下面顯示的數字上。你可以透過下面的範例看出如何使用很少的程式碼(甚至不使用JavaScript)來對選取的項目進行計數:

    CSS counters也非常適合顯示可透過拖放進行重新排序的項目列表上動態變化的數字:

    正如最後一個例子,我們需要記住,透過該方法產生的內容在可訪問性上可能會有些問題。

    4.CSS濾鏡實現的磨砂效果

    在iOS7中,蘋果實現了「磨砂玻璃」的效果--半透明的,模糊的元素,看起來像覆蓋了一層磨砂玻璃。受到蘋果的啟發,這種效果被運用到很多地方。在CSS濾鏡出現之前要重現這個效果還是有些棘手的。你必須透過使用 模糊圖片 來實現這種毛玻璃的效果。但現在CSS濾鏡幾乎得到了所有的主流瀏覽器的支持,所以要 重現這個效果 就簡單很多了。

    在未來,我們可以透過背景濾鏡和 filter() 函數 來達到這樣的效果,但目前只有 Safari 同時支援這兩個功能。

    有關於CSS的 filter 更多的介紹可以點擊這裡進行了解。

    5.將HTML元素當作背景

    一般我們可以設定一個JPEG或PNG檔案當背景,或是也可以設定一個漸層的背景。但是你知道可以透過使用 element() 函數,從而將一個

    設定為背景圖片嗎?現在, element() 函數只有在Firefox中得到了支援:

    可能性是無止境的, 這裡 是MDN上的一個例子。

    有關於CSS的 element() 函數的相關介紹可以點擊這裡。

    6.透過 calc() 創造更好的網格

    流體網格雖然很棒但是仍然存在很嚴重的問題。例如,在頂部和底部的間距大小幾乎不可能與在左邊和右邊的間距大小相同。另外,若使用的網格系統不一樣,標記就會非常混亂。雖然彈性佈局不是最終的解決方案,但是透過與 calc() (可以在CSS檔案中作為屬性值)結合,我們能夠創建一個更好的網格。在 這裡 ,George Martsoukos列舉了許多例子,例如擁有完美間距的畫廊網格。透過使用CSS預編譯語言,例如Sass, 組成一個創造性的網格系統 可以非常簡單且易於維護。同時瀏覽器對 calc() 的支援幾乎完美,因此 calc() 絕對是你應該掌握的功能。

    有關於CSS的 calc() 函數相關的介紹可以點這裡。

    7. 透過 calc() 對齊 position:fixed 元素

    calc() 的另一個作用是用來對齊 position:fixed 的元素。例如,你有一個內容封裝器,它左右都有流動的間距,你希望在這個內容封裝器內精確對齊position 為fixed 的元素,但是這種情況下要計算出left 和right 屬性的具體賦值就很困難。透過calc() ,你可以結合相對和絕對的值來精確定位你的元素:

    .wrapper {    max-width: 1060px;    margin: 0 auto;
    }.floating-bubble {    margin: 0 auto;
    }.floating-bubble {    position : fixed;    right: calc(50% - 530px); /* 50% - half your wrapper width */}

    #例如:

    有關於這方面的詳細介紹可以閱讀 @brnnbrn 寫的《 Aligning position:fixed Elements with CSS calc 》一文。

    8.使用cubic-bezier() 實作動畫

    為了讓一個網站或APP的使用者介面更具有吸引力,你可使用一些動畫,但是可以選擇的過渡效果的速度曲線是相當有限的,例如, linear 或ease-in-out 。而標準的速度曲線連彈性運動的效果都實現不了。透過使用 cubic-bezier() 函數,你可以精確地實現你想要的動畫效果。

    有兩種方法使用 cubic-bezier() -了解 背後的機制 後自己創建,或是使用 cubic-bezier 產生器 。

    說實話,我使用的是後者。

    有關於 cubic-bezier() 詳細的介紹可以點這裡。

    總結

    更聰明的使用CSS函數不僅可以解決上面的問題例如創建一個更好的網格,它還可以給你更多的創作自由。隨著瀏覽器支援越來越好,你可以使用CSS函數例如 calc() 來修改和提升一下你之前的CSS程式碼。

    本文根據 @Anselm Urban 的 《8 Clever Tricks with CSS Functions》 所譯,整個譯文帶有我們自己的理解與思想,如果譯得不好或有不對之處還請同行朋友指點。如需轉載此譯文,需註明英文出處: https://www.sitepoint.com/8-clever-tricks-with-css-functions 。

    以上就是8個css函數小技巧,覺得不錯的朋友們趕緊收藏起來吧。

    相關推薦:

    Jquery css函數實作動態操縱DOM節點的樣式

    CSS3 畫出各種基本圖形小技巧

    最完整的CSS開發常用技巧

    ####

以上是幾個好用的css函數小技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
鏈接HTML中CSS文件的最終指南鏈接HTML中CSS文件的最終指南May 13, 2025 am 12:02 AM

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

CSS Flexbox與網格:全面評論CSS Flexbox與網格:全面評論May 12, 2025 am 12:01 AM

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

如何包括CSS文件:方法和最佳實踐如何包括CSS文件:方法和最佳實踐May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo

CSS計數器:自動編號的綜合指南CSS計數器:自動編號的綜合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他們可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑戰挑戰InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)創造性

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。