作為一名長期潛水的前端er、切圖仔,在木易楊老師的鼓勵下,開始嘗試去寫一寫文章,來整理、分享自己的一些學習所得,與掘金的大佬們共同進步。
剛開始寫文章,表達欠妥,還請多多指正,如果覺得本文不錯,歡迎點贊、評論、轉發,您的支援就是我堅持的最大動力。
眾所周知,隨著css3的出現,css可以更加方便的書寫樣式層。今天我們就來整理一些你所不知道的css!
注:IE已經被微軟爸爸所拋棄,果斷放棄,不做考慮。
1、擷取多行文字,超出文字顯示...
想必大家擷取一行,都會書寫,針對塊級元素或行內塊元素,程式碼如下:
.textOneLine{
overflow:hidden; // 超出的長度的內容截掉,不產生滾動條
text-overflow: ellipsis; // 該屬性有三個值clip 、ellipsis 、string,代表怎麼表示被截掉的文字
white-space: nowrap; // 文字不會換行
}
複製程式碼
如果需求是擷取多行文字呢,又將怎麼書寫程式碼呢? 舉個?,擷取3行:
.textMoreLine{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical; //屬性規定框的子元素應該被水平或垂直排列
-webkit-line-clamp: 3; //這個屬性適合WebKit瀏覽器或移動端(絕大部分是WebKit核心的)瀏覽器
}
複製程式碼
實際應用中如果有處理瀏覽器相容的需求,以上方法的相容方案也有很多。
比較靠譜簡單的做法就是設定相對定位的容器高度,用包含省略號...的元素(可藉助偽元素)模擬實現。這裡提到偽元素,我認為偽元素是個好東西,有時候可以很好的幫助我們。
2、利用 javascript 獲取並修改 ::before 和 ::after 的值
使用 javascript 操作,當然不能繞過 jQuery(後端開發前端的最愛,往往JQ一把梭!),然後遇到操作偽元素這個問題,他也只能徹底認栽了!為什麼呢?
要知道JQ選擇器是用來操作DOM的,都是基於DOM元素,而偽元素本身並不是DOM元素,這個 ‘偽’ 字就很妙了。那麼我們接下來,來看看如何使用js來操作偽元素呢?
獲取偽元素的屬性值
剛才說了,偽元素不是DOM,那麼任何基於選取DOM的樣式而操作偽元素是行不通的,但是js為我們提供了一個直接獲取CSS屬性的方法getComputedStyle(),然後配合getPropertyValue()獲取對應屬性。
window.getComputedStyle(element, [pseudoElt]) 該方法MDN文件
getPropertyValue()
我們使用該方法來獲取微元素的屬性值,程式碼如下:
//獲取before偽元素的字號大小
var div=document.querySelector('div');
var fontSize=window.getComputedStyle(div,'::before').getPropertyValue('font-size');
複製程式碼
更改偽元素的屬性值
getComputedStyle()只能獲取不能更改,通過js來更改偽元素有一下幾種方法:
-
js更改data-*屬性值來更改偽元素的content值 (推薦);
實現原理:W3C 給偽元素的content屬性值提供了一個attr()方法來獲取。attr()支援多個連寫,而且attr()內可以是DOM元素的任意屬性。
程式碼實現如下:
<div class="wrap" data-text="我是偽元素" data-class="new-wrap"></div> 複製程式碼
.wrap::before{ content: '我的類是' attr(class) '想要變成' attr(data-class); } 複製程式碼
-
建立多個class,通過切換class來達到改變樣式的目的;
-
利用內部css樣式的高優先順序來覆蓋外部css。
3、改變選中內容顏色、禁止選中內容
啥也不說了,直接上程式碼:
改變選中內容顏色(只能使用以下四個屬性):
::selection{
color:red;
background:blue;
cursor:auto;
outline:none;
}
複製程式碼
禁止選中內容:
.disabled-select {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
複製程式碼
css禁用滑鼠點選事件:
.disabled {
pointer-events:none;
}
複製程式碼
4、改變placeholder值的樣式
input::-webkit-input-placeholder{
text-align: right;
//... 其他樣式程式碼
}
複製程式碼
5、盒子垂直水平居中
推薦一篇文章,總結的很到位,直通車
6、利用CSS改變圖片顏色的多種方法
“說到對圖片進行處理,我們經常會想到PhotoShop這類的影象處理工具。作為前端開發者,我們經常會需要處理一些特效,例如根據不同的狀態,讓圖示顯示不同的顏色。或者是hover的時候,對圖片的對比度,陰影進行處理。”
這個內容也推薦一篇文章,總結很到位,不做更多介紹。直通車
一點點內容都寫了快兩個小時,果然會寫文章都是大神!如果對您有用,你也喜歡請點贊,如果不喜歡,甚至有錯誤內容(希望可以指出來,以便糾正),還請見諒,多多指正,先這樣吧,明天繼續~ ???