作者:Matt Maribojoc
譯者:前端小智
來源:stackabuse
有夢想,有乾貨,微信搜尋 【大遷世界】 關注這個在凌晨還在刷碗的刷碗智。
本文 GitHub https://github.com/qq449245884/xiaozhi 已收錄,有一線大廠面試完整考點、資料以及我的系列文章。
修改 placeholder 樣式,多行文字溢位,隱藏滾動條,修改游標顏色,水平和垂直居中。這些熟悉的場景啊! 前端開發者幾乎每天都會和它們打交道,這裡有20個CSS技巧,讓我們一起來看看吧。
1. 解決 img 5px 間距的問題
你是否經常遇到圖片底部多出5p
x間距的問題?不用急,這裡有4種方法可以解決。
方案1:設定父元素字型大小為 0
關鍵程式碼:
.img-container{
font-size: 0;
}
事例地址:https://codepen.io/qianlong/p...
方案2:將 img 元素設定為 display: block
關鍵程式碼:
img{
display: block;
}
事例地址:https://codepen.io/qianlong/p...
方案3:將 img 元素設定為 vertical-align: bottom
關鍵程式碼:
img{
vertical-align: bottom;
}
事例地址:https://codepen.io/qianlong/p...
解決方案4:給父元素設定 line-height: 5px
關鍵程式碼:
.img-container{
line-height: 5px;
}
事例地址:https://codepen.io/qianlong/p...
2. 元素的高度與 window 的高度相同
如何使元素與視窗一樣高? 答案使用 height: 100vh;
事例地址:https://codepen.io/qianlong/p...
3. 修改 input placeholder 樣式
關鍵程式碼:
.placehoder-custom::-webkit-input-placeholder {
color: #babbc1;
font-size: 12px;
}
事例地址:https://codepen.io/qianlong/p...
4. 使用 :not
選擇器
除了最後一個元素外,所有元素都需要一些樣式,使用 not
選擇器非常容易做到。
如下圖所示:最後一個元素沒有底邊。
關鍵程式碼
li:not(:last-child) {
border-bottom: 1px solid #ebedf0;
}
事例地址:https://codepen.io/qianlong/p...
5. 使用 flex 佈局將一個元素智慧地固定在底部
當內容不夠時,按鈕應該在頁面的底部。當有足夠的內容時,按鈕應該跟隨內容。當你遇到類似的問題時,使用 flex
來實現智慧的佈局。
事例地址:https://codepen.io/qianlong/p...
6. 使用 caret-color
來修改游標的顏色
可以使用 caret-color
來修改游標的顏色,如下所示:
caret-color: #ffd476;
事例地址:https://codepen.io/qianlong/p...
7. 刪除 type="number"
末尾的箭頭
預設情況下,在type="number"
的末尾會出現一個小箭頭,但有時我們需要將其刪除。我們應該怎麼做呢?
關鍵程式碼:
.no-arrow::-webkit-outer-spin-button,
.no-arrow::-webkit-inner-spin-button {
-webkit-appearance: none;
}
事例地址:https://codepen.io/qianlong/p...
8. outline:none
刪除輸入狀態線
當輸入框被選中時,它預設會有一條藍色的狀態線,可以通過使用 outline: none
來移除它。
如下圖所示:第二個輸入框被移除,第一個輸入框沒有被移除。
事件地址:https://codepen.io/qianlong/p...
9. 解決iOS滾動條被卡住的問題
在蘋果手機上,經常發生元素在滾動時被卡住的情況。這時,可以使用如下的 CSS 來支援彈性滾動。
body,html{
-webkit-overflow-scrolling: touch;
}
10. 繪製三角形
.box {
padding: 15px;
background-color: #f5f6f9;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
}
.triangle {
display: inline-block;
margin-right: 10px;
/* Base Style */
border: solid 10px transparent;
}
/*下*/
.triangle.bottom {
border-top-color: #0097a7;
}
/*上*/
.triangle.top {
border-bottom-color: #b2ebf2;
}
/*左*/
.triangle.left {
border-right-color: #00bcd4;
}
/*右*/
.triangle.right {
border-left-color: #009688;
}
事例地址:https://codepen.io/qianlong/p...
11. 繪製小箭頭、
關鍵程式碼:
.box {
padding: 15px;
background-color: #ffffff;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
}
.arrow {
display: inline-block;
margin-right: 10px;
width: 0;
height: 0;
/* Base Style */
border: 16px solid;
border-color: transparent #cddc39 transparent transparent;
position: relative;
}
.arrow::after {
content: "";
position: absolute;
right: -20px;
top: -16px;
border: 16px solid;
border-color: transparent #fff transparent transparent;
}
/*下*/
.arrow.bottom {
transform: rotate(270deg);
}
/*上*/
.arrow.top {
transform: rotate(90deg);
}
/*左*/
.arrow.left {
transform: rotate(180deg);
}
/*右*/
.arrow.right {
transform: rotate(0deg);
}
事例地址:https://codepen.io/qianlong/p...
12. 影像適配視窗大小
事例地址:https://codepen.io/qianlong/p...
13. 隱藏滾動條
第一個滾動條是可見的,第二個滾動條是隱藏的。這意味著容器可以被滾動,但滾動條被隱藏起來,就像它是透明的一樣。
關鍵程式碼:
.box-hide-scrollbar::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
事例地址:https://codepen.io/qianlong/p...
14. 自定義選定的文字樣式
關鍵程式碼:
.box-custom::selection {
color: #ffffff;
background-color: #ff4c9f;
}
事例地址:https://codepen.io/qianlong/p...
15. 不允許選擇文字
關鍵程式碼:
.box p:last-child {
user-select: none;
}
事例地址:https://codepen.io/qianlong/p...
16. 將一個元素在水平和垂直方向上居中
關鍵程式碼:
display: flex;
align-items: center;
justify-content: center;
事例地址:https://codepen.io/qianlong/p...
17. 單行文字溢位時顯示省略號
關鍵程式碼:
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
max-width: 375px;
事例地址:https://codepen.io/qianlong/p...
18. 多行文字溢位時顯示省略號
關鍵程式碼:
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
/* set n lines, including 1 */
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
事例地址:https://codepen.io/qianlong/p...
19.使用 "filter:grayscale(1)",使頁面處於灰色模式。
關鍵程式碼:
body{
filter: grayscale(1);
}
程式碼部署後可能存在的BUG沒法實時知道,事後為了解決這些BUG,花了大量的時間進行log 除錯,這邊順便給大家推薦一個好用的BUG監控工具 Fundebug。
原文:https://javascript.plainengli...
交流
有夢想,有乾貨,微信搜尋 【大遷世界】 關注這個在凌晨還在刷碗的刷碗智。
本文 GitHub https://github.com/qq44924588... 已收錄,有一線大廠面試完整考點、資料以及我的系列文章。