日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

CSS 實現弧形卡片的三種方式

來源: 責編: 時間:2023-12-04 17:26:56 314觀看
導讀在平時開發中,有時候會碰到下面這種“弧形”樣式,主要分為“內凹”和“外凸”兩種類型,如下圖片該如何實現呢?或者想一下,有哪些 CSS 屬性和“弧形”有關?下面介紹 3 種方式,一起看看吧一、border-radius通常情況下,我們用bor

在平時開發中,有時候會碰到下面這種“弧形”樣式,主要分為“內凹”和“外凸”兩種類型,如下g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

該如何實現呢?或者想一下,有哪些 CSS 屬性和“弧形”有關?下面介紹 3 種方式,一起看看吧g0r28資訊網——每日最新資訊28at.com

一、border-radius

通常情況下,我們用border-radius都是這樣g0r28資訊網——每日最新資訊28at.com

div{  border-radius: 20px;}

這樣表示 4 個角都是圓角,并且是標準的正圓g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

其實,border-radius還支持斜杠的寫法,比如g0r28資訊網——每日最新資訊28at.com

div{  border-radius: 20px / 10px;}

這表示,圓角是一個x半徑為20px,y半徑為10px的橢圓,如下g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

放大來看,其實是這樣的g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

進一步,我們將x半徑設置成50%,這樣就能得到一個完整的弧形了g0r28資訊網——每日最新資訊28at.com

div{  border-radius: 50% / 20px;}

效果如下g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

這樣就得到了“外凸”的弧形了,是不是很容易?g0r28資訊網——每日最新資訊28at.com

至于“內凹”弧形,單純的border-radius表示無能為力,可以看接下來的方式g0r28資訊網——每日最新資訊28at.com

二、偽元素+border-radius

這個其實大多數同學都能想到的方式,一個矩形和一個橢圓組合起來,不就是一個弧形卡片了嗎?原理非常簡單g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

用代碼實現就是g0r28資訊網——每日最新資訊28at.com

div{  position: relative;}div::after{  content: '';  position: absolute;  width: 100%;  height: 20px;  border-radius: 100%;  background: inherit; /* 繼承父級背景 */  bottom: 0;  left: 50%;  transform: translate(-50%,50%);}

效果如下(虛線表示偽元素的邊緣)g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

用偽元素的好處是,可以隨意控制弧度的「大小」和「位置」,這個是border-radius所不能比的g0r28資訊網——每日最新資訊28at.com

通過overflow:hidden裁剪多余部分,可以得到一個邊緣比較“鋒利”的弧形,如下所示g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

另外,用偽元素還能實現“內凹”的效果,不過這需要反過來思考,什么意思呢?之前是給偽元素加的背景,現在需要加在偽元素的外圍,這里用box-shadow實現,原理如下g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

用代碼實現就是g0r28資訊網——每日最新資訊28at.com

div{  background: none;  overflow: hidden;}div::after{  content: '';  background: none;  box-shadow: 0 0 0 9999vh #FFE8A3; /*足夠大的陰影*/  z-index: -1;}

效果如下(虛線表示偽元素的邊緣)g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

三、徑向漸變

提到圓弧,還可以想到徑向漸變,沒錯,這里通過徑向漸變也能輕易實現弧形卡片效果。g0r28資訊網——每日最新資訊28at.com

先來看“外凸”的,其實思路和偽元素一樣,先拆分,一個橢圓和一個矩形,對應的就是徑向漸變(radial-gradient)和線性漸變(linear-gradient),如下g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

用代碼實現就是g0r28資訊網——每日最新資訊28at.com

div{  background:     radial-gradient(closest-side, #9747FF 100%,transparent 0) center bottom/100% 20px no-repeat,    linear-gradient(#FFE8A3, #FFE8A3) 0 0/100% calc(100% - 10px) no-repeat;}

效果如下(紫色部分是徑向漸變)g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

再來看“內凹”的弧形,其實也和偽元素思路類似,只不過這里需要繪制一個足夠大的漸變,從透明到純色的徑向漸變,示意如下g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

調整好漸變中心點,用代碼實現就是g0r28資訊網——每日最新資訊28at.com

div{  background: radial-gradient(50% 10px at center bottom, transparent 100%,#FFE8A3 0) center bottom;}

效果如下(全部都是徑向漸變繪制)g0r28資訊網——每日最新資訊28at.com

圖片圖片g0r28資訊網——每日最新資訊28at.com

當然你也可以隨意改變徑向的弧度和大小,來實現各種不同的效果。g0r28資訊網——每日最新資訊28at.com

以上所有demo都可以查看以下在線鏈接g0r28資訊網——每日最新資訊28at.com

  • CSS radius layout (juejin.cn)[1]
  • CSS radius layout (codepen.io)[2]

四、優缺點總結

以上就是本文的全部內容了,共介紹了 3 種不同的方式,下面總結一下各自優缺點g0r28資訊網——每日最新資訊28at.com

  1. border-radius 支持斜杠語法,可以單獨控制圓弧的x、y半徑,實現“外凸”圓弧最簡單,缺點是圓弧不能自定義弧度,也不能實現“內凹”效果
  2. 偽元素最符合常規思維,可以解決以上問題,缺點是需要占用偽元素,略微麻煩
  3. 漸變實現和偽元素拼接思路類似,缺點是語法復雜,需要熟練掌握漸變語法

[1]CSS radius layout (juejin.cn): https://code.juejin.cn/pen/7307633420241534985g0r28資訊網——每日最新資訊28at.com

[2]CSS radius layout (codepen.io): https://codepen.io/xboxyan/pen/RwveByxg0r28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-37684-0.htmlCSS 實現弧形卡片的三種方式

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python 數據庫操作模塊大揭秘:帶你輕松掌握這六種常見模塊!

下一篇: 2023軟件架構和設計的趨勢

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 安图县| 吴江市| 高台县| 勐海县| 宣化县| 通州市| 温州市| 景宁| 镇巴县| 通城县| 庆安县| 长寿区| 樟树市| 军事| 广水市| 东乡族自治县| 嘉义市| 潜山县| 新密市| 嘉祥县| 项城市| 大田县| 新丰县| 始兴县| 资源县| 永定县| 漯河市| 同江市| 新疆| 芷江| 桃园市| 乐昌市| 平原县| 邯郸县| 张掖市| 苍溪县| 章丘市| 永德县| 尤溪县| 咸丰县| 和平区|