搜尋
首頁web前端css教學CSS-ing糖果幽靈按鈕

CSS-ing糖果幽靈按鈕

最近,我尋求編碼靈感,缺乏藝術才能。我的方法?複製他人的視覺吸引力創作,重點關注清潔,簡潔的代碼。這些糖果幽靈按鈕吸引了我的注意!

它們似乎非常適合快速項目。在十五分鐘內,我在鉻中實現了這一目標:

該技術值得共享。本文詳細介紹了我的過程並探討了替代方法。

初始設置

一個簡單的按鈕元素形成基礎,其中包含了用於表情符號插入的data-ico屬性和样式屬性中的停止列表的自--slist CSS屬性。

 <code>boo!</code>

插圖後完成時,我發現了野生動物園的重大剪接到文本限制。它在按鈕元素上失敗, display: flex (可能是網格)元素和子元素文本。因此,此處描述的技術是不可能的。解決方法涉及築巢<span></span>在按鈕中,將所有按鈕樣式應用於<span></span>,並確保它覆蓋父母的邊界盒。對於缺少物理Apple設備訪問的Linux用戶,我建議Epiphany(謝謝,Brian!)。

CSS利用::after圖標的偽元素和文本/圖標對齊的網格佈局。還應用了邊界,填充,邊界 - 拉迪烏斯,對角線梯度的--slist列表停止列表和字體樣式。

 <code>button { display: grid; grid-auto-flow: column; grid-gap: .5em; border: solid .25em transparent; padding: 1em 1.5em; border-radius: 9em; background: linear-gradient(to right bottom, var(--slist)) border-box; font: 700 1.5em/ 1.25 ubuntu, sans-serif; text-transform: uppercase; &::after { content: attr(data-ico) } }</code>

上述代碼上的澄清: background-origin background-clip設置為border-boxbackground-origin物質將background-position的S 0,0點定位在指定框的左上角,確定了background-size參考。 border-box確保梯度跨越整個邊框盒。默認的padding-box將導致梯度僅覆蓋填充區域。

鉻特異性溶液(非標準)

該方法採用三個掩碼層和合成。在[鏈接到速成課程]中可以找到蒙版複合的複習。僅在CSS面膜層中alpha通道很重要。 RGB渠道不會影響結果。

我們從兩層開始:一個完全不透明的層覆蓋邊框框(到處都是alpha = 1),一個完全不透明的層,層僅限於填充盒(padding-box中的alpha = 1,室外0)。

將佈局框視為嵌套矩形。底層在邊界盒上完全不透明。頂層在填充框中是不透明的,並且在邊框區域透明。拐角圓形由border-radius (和填充盒的border-width )確定。

這些層是使用exclude操作(或WebKit中的xor )組合的。結果:填充框中的alpha = 0(兩個層都有alpha = 1),並且在邊框區域(第一層alpha = 1,第二層alpha = 0)中的alpha = 1。

代碼:

 <code>button { /* same base styles */ --full: linear-gradient(red 0 0); -webkit-mask: var(--full) padding-box, var(--full); -webkit-mask-composite: xor; mask: var(--full) padding-box exclude, var(--full); }</code>

詳細信息:紅色梯度用於簡潔。由於背景-CLIP的限制,梯度用於兩層。包括標準mask-composite ,非標準版本被覆蓋。

這會產生一個梯度邊界,但缺乏文字。添加第三個掩碼層,僅限於文本(帶有透明的文本),並與先前的結果進行置換,從而添加了文本。但是,由於mask-clip的非標準text值,這是鉻特異性的。一個@supports塊可確保跨瀏覽器兼容性(在非支持瀏覽器中無需文本掩蓋)。

 <code>button { /* same base styles */ @supports (-webkit-mask-clip: text) { -webkit-text-fill-color: transparent; --full: linear-gradient(red 0 0); -webkit-mask: var(--full) text, var(--full) padding-box, var(--full); -webkit-mask-composite: xor; } }</code>

這是一種簡單的方法,但它依賴非標準功能限制了其瀏覽器兼容性。讓我們探索替代方案,更廣泛支持的方法。

替代方法:偽元素和邊界圖像解決方案

額外的偽元素解決方案可以通過將背景夾在文本區域並使用絕對位置的梯度邊框來避免掩蓋,並在偽元素::before添加漸變邊框。邊界圖像解決方案雖然更簡單,但對border-radius有局限性。這些方法比鉻特異性解決方案提供了更好的跨瀏覽器兼容性。原始文章中提供了這些方法的更多詳細信息和代碼示例。也在原始文章中也描述的混合解決方案提供了另一種方法,但具有有關背景交互的局限性。每種方法都具有其優點和劣勢,具體取決於所需的跨瀏覽器支持和特定設計要求的水平。

以上是CSS-ing糖果幽靈按鈕的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
@KeyFrames vs CSS過渡:有什麼區別?@KeyFrames vs CSS過渡:有什麼區別?May 14, 2025 am 12:01 AM

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

使用頁面CMS進行靜態站點內容管理使用頁面CMS進行靜態站點內容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y&#039;知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接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

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

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

熱門文章

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser

Safe Exam Browser

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

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具