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