自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

快速了解CSS表單尺寸屬性field-sizing

開發(fā) 前端
field-sizing 表示“場地”尺寸,在這里指的是表單輸入框的尺寸,語法很簡單,可以取兩個值,其中,fixed表示固定大小,也就是目前瀏覽器的默認(rèn)行為,輸入框必須要給定一個具體的尺寸,而content表示輸入框的尺寸完全由輸入內(nèi)容決定。

最近Chrome 123又推出了一個新的 CSS 屬性:field-sizing。有了它,可以輕松實現(xiàn)輸入框尺寸自動跟隨輸入內(nèi)容的效果,花一分鐘了解一下吧~

一、快速了解field-sizing

field-sizing 表示“場地”尺寸,在這里指的是表單輸入框的尺寸,語法很簡單,可以取兩個值,如下

field-sizing: fixed | content

其中,fixed表示固定大小,也就是目前瀏覽器的默認(rèn)行為,輸入框必須要給定一個具體的尺寸

而content表示輸入框的尺寸完全由輸入內(nèi)容決定。

舉個例子,下面是一個文本域

<textarea></textarea>

默認(rèn)表現(xiàn)是這樣的

圖片圖片

可以看到,按回車時,出現(xiàn)了滾動條,這個大家應(yīng)該再熟悉不過了

這時,如果添加以下屬性

textarea{
  field-sizing: content;
}

結(jié)果...變成了這樣

圖片圖片

因為這時沒有內(nèi)容,所以也就沒有了尺寸,所以一般還需要手動加個尺寸

textarea{
  field-sizing: content;
  width: 200px;
}

現(xiàn)在寬度固定了,高度仍然有內(nèi)容決定

圖片圖片

這樣就實現(xiàn)了一個回車自動增加高度的輸入框了,是不是很方便?

還可以設(shè)置最小尺寸,這樣就更符實際規(guī)需求了

textarea{
  field-sizing: content;
  width: 200px;
  min-height: 40px;
}

效果如下

圖片圖片

二、其他輸入元素

除了前面的文本域textarea,input也比較實用,比如要實現(xiàn)一個寬度自適應(yīng)內(nèi)容的輸入框

input{
  min-width: 100px;
  field-sizing: content;
}

效果如下

圖片圖片

另外,select元素也是支持的

<select>
  <option>HTML</option>
  <option>CSS</option>
  <option>JavaScript</option>
  <option>這是一個很長很長的選項</option>
</select>

默認(rèn)情況下,select元素的寬度是由最長的那一項決定的

圖片圖片

這樣在比較短的選項在選中時就比較突兀,現(xiàn)在我們設(shè)置自適應(yīng)內(nèi)容尺寸

select{
  field-sizing: content;
}

比上面要好很多了

圖片圖片

以上幾個demo可以查看以下鏈接(Chrome 123+)

  • CSS field-sizing (juejin.cn)[1]

三、相比可編輯 div 的好處

在以往,我們通常是通過給div設(shè)置可編輯屬性,來實現(xiàn)內(nèi)容自適應(yīng)

<div contenteditable="true">
  
</div>

雖然也能實現(xiàn),但是有很多表單特性就丟失了。

  1. onchange事件缺失,由于只是普通的div,所以無法監(jiān)聽change事件
  2. value屬性缺失,也就是無法通過div.value讀取或者設(shè)置輸入內(nèi)容
  3. minLength、maxLength屬性缺失,無法直接設(shè)置最大最小長度
  4. 表單提交信息缺失,無法通過默認(rèn)的new Form(表單)來獲取表單內(nèi)容
  5. 在 vue、react這些框架中也無法直接雙向綁定等等

[1]CSS field-sizing (juejin.cn): https://code.juejin.cn/pen/7349831204134191131

責(zé)任編輯:武曉燕 來源: 前端偵探
相關(guān)推薦

2010-08-25 14:36:35

CSSheightwidth

2023-11-06 09:24:14

CSS相對顏色

2023-11-20 09:27:28

CSS前端

2022-10-10 18:38:56

inert屬性鍵盤

2024-07-24 10:58:32

2023-12-19 16:39:18

CSS開發(fā)前端

2010-09-13 13:44:35

CSS表格CSS表單

2023-08-01 14:34:12

HTMLCSS

2023-06-28 15:04:59

CSSHTML

2022-03-04 09:31:41

CSS前端屬性選擇器

2015-08-26 16:17:49

OpenStack OpenStack 架開源云平臺

2023-04-23 09:01:43

CSS動畫合成

2023-04-24 09:23:31

CSS動畫合成

2023-07-11 07:53:51

CSS效果圖像

2015-07-07 10:20:47

WebCSS框架

2010-08-25 15:34:48

CSSoverflow

2016-12-30 13:43:35

異步編程RxJava

2009-11-17 09:47:54

Oracle SQL語

2021-11-22 22:14:46

JavaScript開發(fā)模塊

2009-11-13 15:55:52

Oracle哈希連接
點贊
收藏

51CTO技術(shù)棧公眾號