亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

CSS實現 Google Material Design 文本輸入框風格(推薦)

2024-07-11 09:00:21
字體:
來源:轉載
供稿:網友

大家好,今天想要跟大家分享如何使用純CSS來實現 Google Material Design 文本輸入框的風格。

雖然今天我們有很多框架可以幫我們實現這些風格,不過通過學習在底層是如何使用純CSS實現的原理,可以加強我們將來需要根據業務需求定制化這些框架組件的能力。

Demo請看這里 :點我看Demo 【CodePen】

最終效果圖:

在這里插入圖片描述

僅在Chrome瀏覽器上面測試過。如果大家發現其他瀏覽器有問題,歡迎大家提供修改方法,一起學習進步!

開始動手實現

首先,我們先創建如下的HTML:

<form>  <input type="text" required />  <label>    <span>Username</span>  </label></form>

這是一個常規的輸入用戶名的 HTML 表單。

相信聰明的大家都注意到了,我們將 <label> 標簽放在 <input> 標簽的后面,是因為我們之后需要通過 <input> 標簽的狀態來選擇 <label>。然而他們是同級兄弟關系,介于純CSS的selector只提供選擇下一個兄弟的方法,我們就將 <label> 標簽放在后面。

效果圖:

效果圖

接著讓我們對 <form> 元素做一下CSS效果的定制。

form {  width: 50%;  height: 50vh;  margin: auto;  position: relative;  font-family: Sans-serif;}

這一段CSS沒什么特別的,就是定義長度高度和字體而已。

接著讓我們給 <input> 元素上一些樣式。

form input {  height: 2rem;  width: 10rem;  border: none;  border-bottom: 0.1rem solid black;}

這一段 CSS 主要也是設置長度跟寬度,還有就是只設置下方的邊框,讓其有下劃線的感覺。

效果圖:

在這里插入圖片描述

接下來我們要設置 <label> 標簽,也就是將 Username 字樣移動到文本輸入框的上方。

form label {  position: absolute;  top: 0;  left: 0;  pointer-events: none;}

這里值得注意的是,我們設定了:

pointer-events: none;

是希望將來鼠標點擊到文字的時候能夠觸發文本輸入框 focus 事件,而不是觸發選擇字體的事件。

效果圖:

在這里插入圖片描述

接下來我們要給 <input> 元素增加 padding-top,這樣做可以將 <label> Username 頂上去一點。

接著我們給 <input> 元素加上 outline: none, 這樣當我們點擊文本輸入框的時候就不會再出現藍色的邊框了。

form input {  height: 2rem;  width: 10rem;  padding-top: 1rem; /* 新增 */  border: none;  border-bottom: 0.1rem solid black;  outline: none; /* 新增 */}

效果圖:

在這里插入圖片描述

接著我們要在 <input> 元素后面的偽元素 ::after 上一個底部邊框的樣式,并且要將底部邊框平移到左邊。

之所以要將底部邊框平移到左邊,是將來要通過 overflow: hidden; 將其隱藏起來,只有當文本輸入框被選中的時候,才將這個底部邊框平移回來,作為一種加強視覺沖擊的手段。

form label::after {  content: ""; /* 這個很關鍵,我們需要這個屬性底部邊框才會顯示出來 */  height: 3rem;  width: 10rem;  position: absolute;  top: 0;  left: 0;  border-bottom: 0.2rem solid #1cb9b6; /* 底部邊框需要較為突出,這里我們加粗跟上顏色 */  transform: translateX(-100%); /* 向左平移 100% 確保移出 form 元素之外 */  transition: all 0.3s ease; /* 添加動畫來達到平滑移動的效果 */}

效果圖:

在這里插入圖片描述

接著我們要讓 <label> 元素 Username 向下,剛好放在底部邊框上。

form label span {  position: absolute;  bottom: -3rem;  left: 0;  transition: all 0.3s ease; /* 動畫,達到平滑移動的效果 */}

效果圖:

在這里插入圖片描述

接著我們要給處于 focus 跟處于 valid 狀態的 <input> 元素做一個樣式。也就是當我們選擇文本輸入框,或者當文本輸入框里有文字的時候,它們應該處以被高亮的樣式。

這里我們之所以可以利用 valid 狀態是因為,在 HTML 里我們給 <input> 設定了 required 屬性,所以當有文字在文本輸入框的時候就是處于 valid 狀態,反之亦然。

<input type=“text” required />form input:focus + label span,form input:valid + label span {  transform: translateY(-120%); /* 將 Username向上平移 */  font-size: 1.2rem; /* 變大字體,突顯高亮效果 */  color: #1cb9b6; /* 高亮顏色 */}form input:focus + label::after,form input:valid + label::after {  transform: translateX(0); /* 將左邊的高亮底部邊框平移回來 */}

效果圖:

在這里插入圖片描述

接著我們要將不處于高亮時,閑置在左邊的底部邊框隱藏起來,我們只需要給 <form> 元素設定 overflow: hidden; 就可以了。

form {  width: 50%;  height: 50vh;  margin: auto;  position: relative;  font-family: Sans-serif;  overflow: hidden; /* 新增 */}

當處于未被選中,或者未輸入的狀態時,左邊的高亮底部邊框就看不見了。

效果圖:

在這里插入圖片描述

這樣,我們就完成 Google Material Design 規格的文本輸入框了。

總結

以上所述是小編給大家介紹的CSS實現 Google Material Design 文本輸入框風格,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频一区二区| 久久久人成影片一区二区三区| 欧美精品videos另类日本| 中文字幕国产亚洲2019| 久久夜色撩人精品| 在线观看日韩欧美| 欧美肥婆姓交大片| 欧美性做爰毛片| 久色乳综合思思在线视频| 日韩在线观看免费| 日本久久久久亚洲中字幕| www.日本久久久久com.| 国产精品美女免费看| 日产精品99久久久久久| 搡老女人一区二区三区视频tv| 精品亚洲永久免费精品| 理论片在线不卡免费观看| 亚洲国产精品999| 2019中文字幕在线免费观看| 欧美亚洲国产日本| 亚洲资源在线看| 欧美孕妇性xx| 亚洲欧美日韩成人| 成人淫片在线看| 国产精品免费在线免费| 久久久www成人免费精品张筱雨| 成人在线观看视频网站| 欧美在线日韩在线| 日韩在线观看成人| 日韩福利视频在线观看| 日韩hd视频在线观看| 97久久超碰福利国产精品…| 日韩国产高清污视频在线观看| 精品福利视频导航| 日韩精品亚洲视频| 超薄丝袜一区二区| 亚洲国产欧美一区二区三区同亚洲| 亚洲免费中文字幕| 亚洲精品美女视频| 久久久中文字幕| 精品亚洲va在线va天堂资源站| 国自在线精品视频| 中文字幕久久亚洲| 日韩av电影国产| 亚洲视频在线观看视频| 久久久久国产精品免费网站| 国产精品亚洲视频在线观看| 亚洲第一页自拍| 97免费视频在线| 国产精品久久久久久五月尺| 中文字幕在线视频日韩| 国产精品久久久久久久电影| 奇米成人av国产一区二区三区| 欧美国产日韩xxxxx| 国产精品视频在线观看| 欧美激情第三页| 亚洲精品福利免费在线观看| 亚洲激情在线观看视频免费| 国产原创欧美精品| 91在线无精精品一区二区| 欧美香蕉大胸在线视频观看| 国产精品夜间视频香蕉| 国产亚洲美女精品久久久| 在线观看国产精品91| 欧美成人免费在线视频| 久久精品最新地址| 亚洲 日韩 国产第一| 欧美大片在线影院| 久久久久久国产精品| 亚洲视频在线观看免费| 亚洲一区制服诱惑| 91精品国产综合久久香蕉的用户体验| 亚洲精品av在线| 国产成人精品日本亚洲| 日韩欧美a级成人黄色| 精品国产欧美一区二区三区成人| 日韩中文字幕欧美| 亚洲淫片在线视频| 国产精品成久久久久三级| 久久精品一偷一偷国产| 国产99视频在线观看| 国产精品电影网站| 亚洲女同精品视频| 日韩欧美有码在线| 欧美老妇交乱视频| 国产日产欧美精品| 国产中文欧美精品| 毛片精品免费在线观看| 久久精品亚洲一区| 久久综合伊人77777| 欧美日韩免费区域视频在线观看| 欧美日本在线视频中文字字幕| 97久久久久久| 欧美日韩在线视频观看| 国产精品中文字幕在线| 国内外成人免费激情在线视频| 狠狠爱在线视频一区| 成人在线一区二区| 亚洲成人中文字幕| 久久久久久久影院| 国产精国产精品| 亚洲成av人片在线观看香蕉| 亚洲v日韩v综合v精品v| 51视频国产精品一区二区| 91极品视频在线| 亚洲黄页视频免费观看| 欧美激情欧美激情在线五月| 久久精品夜夜夜夜夜久久| 亚洲视频axxx| 欧美最猛黑人xxxx黑人猛叫黄| 成人免费高清完整版在线观看| 91亚洲午夜在线| 蜜月aⅴ免费一区二区三区| 精品高清美女精品国产区| 久久91亚洲人成电影网站| 国产z一区二区三区| 亚洲国内高清视频| 久久中文字幕在线| 欧美综合一区第一页| 国产ts人妖一区二区三区| 亚洲欧美日韩中文在线制服| 亚洲欧美另类国产| 欧美性做爰毛片| 国产成人一区二区三区小说| 日韩av中文字幕在线免费观看| 91影视免费在线观看| 91九色国产社区在线观看| 久青草国产97香蕉在线视频| 色综合导航网站| 在线日韩精品视频| 视频在线观看99| 日韩在线观看视频免费| 日韩成人激情视频| 在线精品播放av| 日韩福利在线播放| 欧美激情在线狂野欧美精品| 久久亚洲精品视频| 欧美午夜女人视频在线| 欧美专区中文字幕| 日本免费一区二区三区视频观看| 午夜精品一区二区三区在线播放| 亚洲国产精品女人久久久| 中文字幕日韩在线视频| 国产精品色悠悠| 日韩电影免费观看中文字幕| 亚洲aⅴ男人的天堂在线观看| 91高清视频在线免费观看| 日本韩国在线不卡| 亚洲人成在线播放| 欧美日韩国产精品| 亚洲激情国产精品| 奇米四色中文综合久久| 91久久久久久久久久久| 亚洲国产精品视频在线观看| 成人精品久久一区二区三区| 成人av在线亚洲| 啪一啪鲁一鲁2019在线视频| 欧洲s码亚洲m码精品一区| 亚洲综合小说区| 亚洲精品国产综合区久久久久久久| 欧洲成人免费视频| 国产视频福利一区| 亚洲天堂精品在线| www欧美日韩|