整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          每天一個CSS小技巧 - 插入換行

          我們在定義列表時,我們通常想得到如下的效果:

          下面是我們的html代碼:

            <dl>
              <dt>Name:</dt>
              <dd>Lea Verou</dd>
              <dt>Email:</dt>
              <dd>lea@verou.me</dd>
              <dt>Location:</dt>
              <dd>Earth</dd>
            </dl>

          實際得到的效果是

          當我們想得到最上面的效果時,第一步通常是:

            <style>
              dd{
                margin: 0;
                font-weight: bold;
              }
            </style>


          因為<dt>和<dd>是塊級元素,所以所有的名和值都各占一行,我們可能通過改變<dt>或<dd>的display屬性來做嘗試:

              dd, dt{
                display: inline;
              }


          解決方案

          如上,我們缺少幾個換行

          實際上有一個Unicode字符專門代表換行符:0x000A。在CSS中,我們可以用"\A"表示,我們可以把它作為::after偽元素的內容,添加到dd的尾部,但是你會發現并沒有什么作用,但這并不代表我們錯了,而是在HTML代碼中,默認情況下換行符會與相鄰的其他空白符進行合并,我們這里保留源代碼中的這些空白符和換行,因此我們這么做:

              dd, dt{
                display: inline;
              }
          
              dd::after{
                content: "\A";
                white-space: pre;
              }
          
              dd{
                margin: 0;
                font-weight: bold;
              }

          很明顯,我們已經得到了我們想要的效果,不過如果我們嘗試如下時:


          由于我們在每個dd后面都加了一個換行符,每個值都會分到單獨一行,甚至不需要換行的時候也是如此。因此我們需要采取類似if else的判斷:

              dd + dt::before{
                content: "\A";
                white-space: pre;
              }
          
              dd + dd::before{
                content: ', ';
                font-weight: normal;
                margin-left: -.25em;
              }


          另外上述的margin是為了修正逗號前的空格,尺寸是需要根據字體個尺寸調試的。

          本換行問題示范

          當我們不設置換行的時候,默認瀏覽器會因為字母或特殊符號導致不進行自動換行。特別是在移動端網頁會出現左右移動導致頁面不美觀。

          三個重要屬性

          1.word-wrap(允許單詞換到下一行)

          2.white-space(文本出現空格符的解決辦法,忽略或連續空格合并)

          3.word-break(單詞截斷辦法,在全角截斷或單詞內部截斷)

          CSS代碼

          解決辦法1(英文長度過長,則另起一行)

          也就是當因為單詞長度超過所設定文本寬度時,會另外起一行,而不是與之前的文字共同擠一行。

          解決辦法2(允許單詞內部截斷換行)

          總結

          當文本因特殊字符或英文字母超出設定范圍內容的時候,可以使用上述兩種解決辦法,各有利弊,一個會另起一行,保證單詞完整性,一個會截斷單詞影響單詞語意。

          SS:

          {

          word-break: keep-all;

          word-wrap: break-word; // 只對英文起作用,以單詞作為換行依據。

          white-space: pre-wrap; //只對中文起作用,強制換行。

          text-align:justify; //css英文語句的兩端對齊:

          text-justify:inter-ideograph;

          }

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8

          禁止換行:

          {

          white-space:nowrap;

          overflow:hidden;

          text-overflow:ellipsis; //讓多出的內容以省略號...來表達。但是這個屬性主要用于IE等瀏覽器,Opera瀏覽器用-o-text-

          white-space:nowrap;

          }

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6

          單行文字如果超出2行用省略號表示:

          .text {

          width:220px;

          word-break:break-all;

          display:-webkit-box;

          -webkit-line-clamp:2;

          -webkit-box-orient:vertical;

          overflow:hidden;

          }

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8

          word-break 屬性規定自動換行的處理方法。

          normal 使用瀏覽器默認的換行規則。

          break-all 允許在單詞內換行。

          keep-all 只能在半角空格或連字符處換行。

          word-break 當行尾放不下一個單詞時,決定單詞內部該怎么擺放。

          break-all: 強行上,擠不下的話剩下的就換下一行顯示唄。

          keep-all: 放不下了,那就另起一行展示,再放不下,也不退縮。

          word-wrap 當行尾放不下時,決定單詞內是否允許換行

          normal: 單詞太長,換行顯示,再超過一行就溢出顯示。

          break-word: 當單詞太長時,先嘗試換行,換行后還是太長,單詞內還可以換行。

          white-space: normal | nowrap | pre | pre-wrap | pre-line

          • 1

          pre: 保留所有的空格和回車,且不允許折行。

          pre-wrap: 保留所有的空格和回車,但是允許折行。

          pre-line: 會合并空格,且允許折行


          text-align:justify 是專門為英文設計的,用來實現英文語句的兩端對齊

          text-justify :

          auto | distribute |distribute-all-lines | distribute-center-last | inter-cluster | inter-ideograph | inter-word | kashida | newspaper

          • 1
          • 2

          auto :

          默認值。允許瀏覽器代理用戶確定使用的兩端對齊法則。

          distribute :

          處理空格很像newspaper ,適用于東亞文檔。尤其是泰文。

          distribute-all-lines :

          兩端對齊行的方式與distribute 相同,也同樣不包含兩段對齊段落的最后一行。適用于表意字文檔

          distribute-center-last :

          未實現。

          inter-cluster :

          調整文本無詞間空格的行。這種模式的調整是用于優化亞洲語言文檔的。

          inter-ideograph :

          為表意字文本提供完全兩端對齊。他增加或減少表意字和詞間的空格

          inter-word :

          通過增加字之間的空格對齊文本。該行為是對齊所有文本行最快的方法。它的兩端對齊行為對段落的最后一行無效

          kashida :

          通過拉長選定點的字符調整文本。這種調整模式是特別為阿拉伯腳本語言提供的。需要IE5.5+支持

          newspaper :

          通過增加或減少字或字母之間的空格對齊文本。是用于拉丁文字母表兩端對齊的最精確格式

          說明:設置或檢索對象內調整文本使用的對齊方式。因為這個屬性影響文本布局,所以text-align 屬性必須被設置為justify 。此屬性只作用于塊對象。此屬性對于currentStyle 對象而言是只讀的。對于其他對象而言是可讀寫的。對應的腳本特性為textJustify 。

          以上方法對chrome(360也是chrome內核)無效,還需再加上下面代碼:

          word-break:break-all


          主站蜘蛛池模板: 亚洲性日韩精品国产一区二区| 无码人妻精品一区二区在线视频| 一本大道在线无码一区| 国产伦精品一区三区视频| 蜜桃传媒一区二区亚洲AV| 国产精品熟女一区二区| 国产在线一区二区在线视频| 蜜臀AV免费一区二区三区| 一区二区三区福利视频| 精品国产a∨无码一区二区三区 | 亚洲国产欧美日韩精品一区二区三区 | 久久se精品一区二区国产| 亚洲一区二区三区丝袜| 亚洲AV无码第一区二区三区| 中文字幕一区二区视频| 性无码一区二区三区在线观看| 中文字幕一区二区视频| 国产精品福利一区二区| 欧洲精品免费一区二区三区| 波多野结衣一区二区三区aV高清| 极品人妻少妇一区二区三区| 日韩视频免费一区二区三区| 国产一区二区在线观看视频| 色一乱一伦一图一区二区精品| 国精产品一区一区三区MBA下载| 亚洲AV福利天堂一区二区三| 无码人妻av一区二区三区蜜臀| 中文字幕AV一区二区三区人妻少妇| 亚洲av成人一区二区三区在线观看| 亚洲AV无码第一区二区三区| 无码精品人妻一区二区三区免费| 久久无码人妻一区二区三区| 亚洲一区二区三区乱码A| 亚洲一区二区无码偷拍| 亚洲午夜精品第一区二区8050| 国产伦一区二区三区免费| 国产免费播放一区二区| 一本大道在线无码一区| 大屁股熟女一区二区三区| 日本内射精品一区二区视频| 一区二区在线视频观看|