中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

「前端詞典」這些功能其實不需要 JS,CSS 就能搞定

發布時間:2020-07-09 08:21:29 來源:網絡 閱讀:253 作者:wx5d61fdc401976 欄目:web開發

直接入題

  1. 每個單詞的首字母大寫

其實我第一次看到這個功能的時候就是使用 JS 去實現這個功能,想都沒想 CSS 可以完成這個功能。馬上就屁顛屁顛的寫了一個方法:

function capitalizeFirst( str ) {
let result = '';
result = str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
return result
}
寫完這個方法后,還有點小得意,也就沒想其他方案。直到有一天看到 CSS 也能做這個功能的時候,我才反應過來明明一句 CSS 就能解決的問題,我卻使用了更復雜的方案。

CSS 方案如下:

.capitalizeFirst-css {
text-transform: capitalize;
}
是不是特別簡單(代碼在上面的 blog 倉庫,訪問 cssDo 路由便可,下面的案例都是這個路由下):

text-transform 簡單介紹

這是 CSS2 中的屬性,參數有 capitalize | uppercase | lowercase | none

參數介紹:

none: 默認。定義帶有小寫字母和大寫字母的標準的文本。
capitalize: 文本中的每個單詞以大寫字母開頭。
uppercase: 定義僅有大寫字母。
lowercase: 定義無大寫字母,僅有小寫字母。
從這個屬性我們可以知道全部大寫(小寫)的需求這個屬性也能輕易實現。

  1. 單選高亮

可能你看到“單選高亮”沒反應過來,直接來張圖片你就馬上清楚了:

不知道你是否第一次看到這種單選高亮的需求時,是怎么處理的。我第一次直接是用 JS 控制的。后來我發現這個需求用 CSS 更方便處理。

主要代碼就是一段 CSS 代碼:

// 省略部分代碼,詳細代碼看倉庫
.input:checked + .colors {
border-color: #e63838;
color: #e63838;
}
<div class="single-check">
<input class="input" type="radio" name="colors" value="1">
<div class="colors">天空之境</div>
</div>
看效果:

兩個選擇器的區別

~ 選擇器:查找某個元素后面的所有兄弟元素

  • 選擇器:查找某個元素后面緊鄰的兄弟元素

擴展

其實這個技巧也完全可以使用在導航欄的交互效果,個人覺得可以簡化一部分工作。

3、多列等高問題

之前做 pc 端的客戶畫像需求時,遇到需要左右兩邊等到的需求(左邊塊的高度會隨著內容變化)。

最初我使用的 JS 計算高度再賦值,可是這樣會有頁面閃動的效果。所以找到了兩種 CSS 的處理方案:

每列設置一個很大的 padding,再設置一個很大的負的 margin
使用 display: table;
第一種有明顯的缺陷:

border-bottom 看不到了
設置的下方的兩個圓角也不見了
所以我使用了 display: table; 的方式來實現等高,可以說非常的方便。

建議不要一味的抵觸 table,有的場景還是可以使用的。

4、表單驗證

先聲明:這里沒有用到 JS,不過用到了 HTML5 關于 <input> 的新屬性 —— pattern( 檢查控件值的正則表達式 )。

還有一點:其實我在實際項目中沒這么用過。

代碼如下:

input[type="text"]:invalid ~ input[type="submit"] {
display: none
}
<div class="form-css">
<input type="text" name="tel" placeholder="輸入手機號碼" pattern="^1[3456789]\d{9}$" required><br>
<input type="text" name="smscode" placeholder="輸入驗證碼" pattern="\d{4}" required><br>
<input type="submit" ></input>
</div>
效果如下(樣式不好看的問題請忽略):

invalid 偽類和 vaild 偽類

valid 偽類,匹配通過 pattern 驗證的元素
invalid 偽類,匹配未通過 pattern 驗證的元素
后記

還有一些大家比較常用的這里就不介紹了,

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜章县| 贵阳市| 汉寿县| 肇州县| 旬阳县| 梁河县| 镇平县| 济源市| 孟州市| 成安县| 镇坪县| 巴彦县| 潞西市| 通道| 惠来县| 葫芦岛市| 台东县| 红桥区| 北宁市| 吉水县| 颍上县| 台山市| 遂宁市| 恭城| 托里县| 桑日县| 麦盖提县| 襄垣县| 伊春市| 甘谷县| 隆德县| 玛纳斯县| 剑河县| 雷波县| 景德镇市| 庄河市| 天水市| 九寨沟县| 金湖县| 通渭县| 滨州市|