點擊右上方紅色按鈕關注“web秀”,讓你真正秀起來
前言
作為程序員的我們,書寫代碼也需要大量的技巧。一份良好的代碼能讓人耳目一新,讓人容易理解,同時也讓自己成就感滿滿。因此,在這裡簡單的整理一些CSS開發技巧,希望能讓你寫出耳目一新、容易理解、舒服自然的代碼。
本小結主要是圍繞css對文字處理的技巧,有興趣的小夥伴可以收藏一下。
文本對齊方式
CSS最常用的對齊方式,居中對齊、左對齊(默認)、右對齊,而且實現起來也是非常的簡單。
如下:
p{
text-align: center;
text-align: left;
text-align: right;
}
但是兩端對齊你有用過嗎?
只需要添加text-align-last:justify樣式即可。請看示例:
賬號
密碼
電子郵件
scss樣式
.justify-text {
\t.li {
\t\tpadding: 0 20px;
margin-top: 10px;
\t\twidth: 100px;
\t\tbackground-color: #f13f84;
\t\tline-height: 40px;
\t\ttext-align-last: justify;
\t\tcolor: #fff;
list-style: none;
\t\t&:first-child {
\t\t\tmargin-top: 0;
\t\t}
\t}
}
文本排版方向
現代書本上的文字都是從左到右的順序排列,但是古時候不同,文字都是從右至左排列的,現在在很多古籍、牌坊、石碑等上面依舊可以看到從右至左的文字。
css也可以調整文本排版方向,是通過什麼屬性控制的呢?
writing-mode 屬性定義了文本在水平或垂直方向上如何排布。
writing-mode: horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr
- horizontal-tb:水平方向自上而下的書寫方式。即 left-right-top-bottom
- vertical-rl:垂直方向自右而左的書寫方式。即 top-bottom-right-left
- vertical-lr:垂直方向內內容從上到下,水平方向從左到右
- sideways-rl:內容垂直方向從上到下排列
- sideways-lr:內容垂直方向從下到上排列
下面看具體示例:
\t
\t\t詩經
\t\t
死生契闊,
與子成說。
執子之手,
與子偕老。
\t
scss樣式
.vertical-text {
\twriting-mode: vertical-rl; // 文字排版方向
\th3 {
\t\tpadding-left: 10px;
\t\tfont-weight: bold;
\t\tfont-size: 18px;
\t\tcolor: #d60f5c;
\t}
\tp {
\t\tline-height: 30px; // 行間距
letter-spacing: 7px; // 文字間距
\t\tcolor: #ee1166;
\t}
}
文本從右至左排列
紅豆生南國
春來發幾枝
願君多采擷
此物最相思
scss樣式
.reverse-text {
\tfont-weight: bold;
\tfont-size: 30px;
\tcolor: #f13f84;
width: 200px;
\tletter-spacing: -70px; // letter-spacing最少是font-size的2倍
}
文本溢出控制
文本溢出處理不管是PC或者是H5,都是非常常見的,非詳情頁面都會經常用到。
文本溢出處理分為:單行文字溢出 和 多行文字溢出。下面看看具體示例:
單行文字溢出
昨夜雨疏風驟,濃睡不消殘酒。試問卷簾人,卻道海棠依舊。知否,知否,應是綠肥紅瘦。
scss樣式
.ellipsis {
width: 200px;
\toverflow: hidden; // 溢出隱藏
\ttext-overflow: ellipsis; // 溢出修飾 ellipsis省略號
\twhite-space: nowrap; // 文本不會換行
}
多行文字溢出
尋尋覓覓,冷冷清清,悽悽慘慘慼戚。乍暖還寒時候,最難將息。三杯兩盞淡酒,怎敵他、晚來風急!雁過也,正傷心,卻是舊時相識。
滿地黃花堆積,憔悴損,如今有誰堪摘?守著窗兒,獨自怎生得黑!梧桐更兼細雨,到黃昏、點點滴滴。這次第,怎一個愁字了得!
scss樣式
.ellipsis {
width: 400px;
\tdisplay: -webkit-box;
\toverflow: hidden;
\ttext-overflow: ellipsis;
\t-webkit-line-clamp: 3;
\t/* autoprefixer: off */
\t-webkit-box-orient: vertical;
\t/* autoprefixer: on */
}
注意
使用文本溢出處理時,容器一定要定義寬度。
多行文字溢出,scss樣式添加註釋autoprefixer: off並不是為了說明什麼,而是,在webpack打包編譯時,如果沒有這個註釋,-webkit-box-orient: vertical會被忽略掉。
文本選擇顏色
在瀏覽器中,當你選擇文本想要copy時,是不是會發現選擇文本會有背景色和文字顏色呢?其實它是可以通過css定義的。
使用::selection自定義文本選擇顏色
紅豆生南國,
春來發幾枝。
願君多采擷,
此物最相思。
scss樣式
// 全局文本選擇樣式
::selection {
\tbackground-color: #f13f84;
\tcolor: #fff;
}
.select-color {
\tline-height: 30px;
\tfont-weight: bold;
\tfont-size: 30px;
\tcolor: #d60f5c;
}
// 具體某個選擇器下 文本選擇樣式
.special::selection {
\tbackground-color: #00b7a3;
}
總結
有空把CSS3及其選擇器和偽元素偽類等知識點複習一遍,溫故而知新。多使用Chrome的DevTools來調試CSS,提示式的填值能發現很多有趣的屬性。多嘗試不同的方式實現相同功能,多實踐。項目中多試用CSS的新特性,不要總是被低版本瀏覽器束縛著,這樣也一直難以進步。在使用JS完成一個簡單的效果前先想想能不能用純CSS來完成。這樣你的CSS技能就能得到穩步提升。
最後謝謝大家的支持。
閱讀更多 web秀 的文章