整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線:

          CSS自動(dòng)換行、強(qiáng)制不換行、強(qiáng)制斷行、超出顯示省略號(hào)

          標(biāo)簽是默認(rèn)是自動(dòng)換行的,因此設(shè)置好寬度之后,能夠較好的實(shí)現(xiàn)效果,但是最近的項(xiàng)目中發(fā)現(xiàn),使用ajax加載數(shù)據(jù)之后,p標(biāo)簽內(nèi)的內(nèi)容沒(méi)有換行,導(dǎo)致布局錯(cuò)亂,于是嘗試著使用換行樣式,雖然解決了問(wèn)題,但是并沒(méi)有發(fā)現(xiàn)本質(zhì)原因,本質(zhì)在于,我當(dāng)時(shí)獲取的數(shù)據(jù)是一長(zhǎng)串的數(shù)字,瀏覽器應(yīng)該是對(duì)數(shù)字和英文單詞處理方式相近,不會(huì)截?cái)唷?

          先給出各種方式,再具體介紹每一個(gè)屬性。

          強(qiáng)制不換行

          p { white-space:nowrap; }

          自動(dòng)換行

          p { word-wrap:break-word; }

          強(qiáng)制英文單詞斷行

          p { word-break:break-all; }

          *注意:設(shè)置強(qiáng)制將英文單詞斷行,需要將行內(nèi)元素設(shè)置為塊級(jí)元素。

          超出顯示省略號(hào)

          p{text-overflow:ellipsis;overflow:hidden;}

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

          white-space 屬性設(shè)置如何處理元素內(nèi)的空白

          normal 默認(rèn)。空白會(huì)被瀏覽器忽略。

          pre 空白會(huì)被瀏覽器保留。其行為方式類(lèi)似 HTML 中的 pre 標(biāo)簽。

          nowrap 文本不會(huì)換行,文本會(huì)在在同一行上繼續(xù),直到遇到 br 標(biāo)簽為止。

          pre-wrap 保留空白符序列,但是正常地進(jìn)行換行。

          pre-line 合并空白符序列,但是保留換行符。

          inherit 規(guī)定應(yīng)該從父元素繼承 white-space 屬性的值。

          word-wrap: normal|break-word;

          word-wrap 屬性用來(lái)標(biāo)明是否允許瀏覽器在單詞內(nèi)進(jìn)行斷句,這是為了防止當(dāng)一個(gè)字符串太長(zhǎng)而找不到它的自然斷句點(diǎn)時(shí)產(chǎn)生溢出現(xiàn)象。

          normal: 只在允許的斷字點(diǎn)換行(瀏覽器保持默認(rèn)處理)

          break-word:在長(zhǎng)單詞或URL地址內(nèi)部進(jìn)行換行

          word-break: normal|break-all|keep-all;

          word-break 屬性用來(lái)標(biāo)明怎么樣進(jìn)行單詞內(nèi)的斷句。

          normal:使用瀏覽器默認(rèn)的換行規(guī)則。

          break-all:允許再單詞內(nèi)換行

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

          舉例看起區(qū)別:

          <!doctype html>

          <html lang="en">

          <head>

          <!--網(wǎng)站編碼格式,UTF-8 國(guó)際編碼,GBK或 gb2312 中文編碼-->

          <meta http-equiv="content-type" content="text/html;charset=utf-8" />

          <meta name="Keywords" content="關(guān)鍵詞一,關(guān)鍵詞二">

          <meta name="Description" content="網(wǎng)站描述內(nèi)容">

          <meta name="Author" content="Yvette Lau">

          <title>Document</title>

          <!--css js 文件的引入-->

          <style>

          .word{background:#E4FFE9;width:250px;margin:50px auto;padding:20px;font-family:"microsoft yahei";}

          /* 強(qiáng)制不換行 */

          .nowrap{white-space:nowrap;}

          /* 允許單詞內(nèi)斷句,首先會(huì)嘗試挪到下一行,看看下一行的寬度夠不夠,

          不夠的話就進(jìn)行單詞內(nèi)的斷句 */

          .breakword{word-wrap: break-word;}

          /* 斷句時(shí),不會(huì)把長(zhǎng)單詞挪到下一行,而是直接進(jìn)行單詞內(nèi)的斷句 */

          .breakAll{word-break:break-all;}

          /* 超出部分顯示省略號(hào) */

          .ellipsis{text-overflow:ellipsis;overflow:hidden;}

          </style>

          </head>

          <body>

          <div class = "word">

          <p class = "nowrap">wordwrap:breakword;absavhsafhuafdfbjhfvsalguvfaihuivfs</p>

          <p class = "breakword">wordwrap:break-word;absavhsafhuafdfbjhfvsalguvfaihui</p>

          <p class = "breakAll">wordwrap:break-word;absavhsafhuafdfbjhfvsalguvfaihuivf</p>

          <p class = "normal">wordwrap:breakword;absavhsafhuafdfbjhfvsalguvfaihuivfsa</p>

          <p class = "ellipsis">wordwrap:breakword;absavhsafhuafdfbjhfvsalguvfaihuivfsab</p>

          </div>

          </body>

          </html>

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          • 26
          • 27
          • 28
          • 29
          • 30
          • 31
          • 32
          • 33

          效果如下:

          我們?cè)诙x列表時(shí),我們通常想得到如下的效果:

          下面是我們的html代碼:

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

          實(shí)際得到的效果是

          當(dāng)我們想得到最上面的效果時(shí),第一步通常是:

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


          因?yàn)?lt;dt>和<dd>是塊級(jí)元素,所以所有的名和值都各占一行,我們可能通過(guò)改變<dt>或<dd>的display屬性來(lái)做嘗試:

              dd, dt{
                display: inline;
              }


          解決方案

          如上,我們?nèi)鄙賻讉€(gè)換行

          實(shí)際上有一個(gè)Unicode字符專(zhuān)門(mén)代表?yè)Q行符:0x000A。在CSS中,我們可以用"\A"表示,我們可以把它作為::after偽元素的內(nèi)容,添加到dd的尾部,但是你會(huì)發(fā)現(xiàn)并沒(méi)有什么作用,但這并不代表我們錯(cuò)了,而是在HTML代碼中,默認(rèn)情況下?lián)Q行符會(huì)與相鄰的其他空白符進(jìn)行合并,我們這里保留源代碼中的這些空白符和換行,因此我們這么做:

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

          很明顯,我們已經(jīng)得到了我們想要的效果,不過(guò)如果我們嘗試如下時(shí):


          由于我們?cè)诿總€(gè)dd后面都加了一個(gè)換行符,每個(gè)值都會(huì)分到單獨(dú)一行,甚至不需要換行的時(shí)候也是如此。因此我們需要采取類(lèi)似if else的判斷:

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


          另外上述的margin是為了修正逗號(hào)前的空格,尺寸是需要根據(jù)字體個(gè)尺寸調(diào)試的。

          紹得比較粗略,大家只要有個(gè)印象就可以,后邊我們會(huì)在詳細(xì)的在具體的前段開(kāi)發(fā)項(xiàng)目中來(lái)講解.

          一 css3偽類(lèi)

          css3中的偽類(lèi)允許我們?cè)诓贿m用于JavaScript等腳本的情況下去設(shè)置web頁(yè)面中某些特定的元素的屬性.

          偽類(lèi)通常以":"(冒號(hào))開(kāi)頭. :first-child和:last-child是較為常用的偽類(lèi).

          :first-child將會(huì)匹配該元素中的第一個(gè)子元素.

          html代碼:

          <div id="parent">

          <p>又見(jiàn)雪飄過(guò)</p>

          <p>飄于傷心記憶中</p>

          <p>讓我再想你</p>

          <p>卻掀起我的痛</p>

          </div>

          css代碼:

          #parent p:first-child{color:green; text-decoration:underline; }

          執(zhí)行結(jié)果如下:

          :last-child則是選取最后一個(gè)元素.

          二 偽元素

          偽元素用于選取元素的特定部分.

          在css中有五個(gè)偽元素,每個(gè)都以一個(gè)雙冒號(hào)(::)開(kāi)頭

          ::first-line 選擇器中文本的第一行

          ::first-letter 選擇器中文本的第一個(gè)字母

          ::selection 選擇用戶(hù)選擇的元素部分

          ::before 在元素之前插入一些內(nèi)容

          ::after 在元素之后插入一些內(nèi)容

          在下面的例子中,::first-line偽元素用于為文本的第一行設(shè)置樣式.

          html代碼:

          <div id="parent1">

          <p>早經(jīng)分了手

          <br>為何熱愛(ài)尚情重

          <br>獨(dú)過(guò)追憶歲月

          <br>或許此生不會(huì)懂</p>

          </div>

          css代碼:

          #parent1 p::first-line{color:#AE4141;}

          效果如下:

          ::selection偽元素用于對(duì)選定的文本進(jìn)行設(shè)置樣式.

          css代碼:

          #parent1 p::-webkit-selection{background:#AE4141; color:#fff;}

          #parent1 p::selection{background:#AE4141; color:#fff;}

          效果如下:

          使用了瀏覽器前綴-webkit-.有的瀏覽器會(huì)不支持::seleciton偽元素

          使用::before和::after偽元素允許我們向頁(yè)面添加各種各樣的內(nèi)容.

          在下面的例子中,::before偽元素用于在段落之前添加圖像.

          html代碼:

          <div class="parent">

          <p>又再想起你</p>

          <p>抱擁飄飄白雪中</p>

          <p>讓你心中暖</p>

          <p>去驅(qū)走我冰凍</p>

          </div>

          css代碼:

          div.parent p::before{ content:url("before.jpg");}

          效果如下:

          請(qǐng)注意樣式中使用的content關(guān)鍵字

          ::after則會(huì)在末尾增加樣式.

          三 css3自動(dòng)換行

          word-wrap屬性允許對(duì)長(zhǎng)單詞進(jìn)行自動(dòng)換行處理.它有兩個(gè)屬性值:normal和break-word.

          html代碼:

          <p id="word-wrap">冷風(fēng)催我醒,原來(lái)共你是場(chǎng)夢(mèng),像那飄飄雪淚下,弄濕冷清的晚空.原來(lái)是那么深?lèi)?ài)你.</p>

          css代碼:

          #word-wrap{width:100px; height:100px; border:2px solid #000000; word-wrap:normal; }

          效果如下:

          由于是段落內(nèi)容是中文,所以word-wrap:normal; 和word-wrap:break-word; 效果是一樣的都會(huì)自動(dòng)換行.

          四 @font-face

          @font-face允許將自定義字體加載到網(wǎng)頁(yè)中.借助于此規(guī)則,設(shè)計(jì)不再局限于安裝在用戶(hù)計(jì)算機(jī)上的字體

          在IE8和更低版本中,url必須指向Embedded OpenType(eot)文件,而firefox,chrome等支持True Type(ttf)字體和OpenType(otf)字體.

          定義一個(gè)名為"text"的新字體

          @font-face{font-family:"text"; src:url("text.otf"); }

          然后這個(gè)新的字體可以使用了如p{font-family:text;}


          主站蜘蛛池模板: 精品视频一区二区三区在线观看| 日韩十八禁一区二区久久| 一本一道波多野结衣AV一区| 亚洲色无码专区一区| 国产在线精品一区二区不卡| 视频一区二区在线观看| 亚洲男女一区二区三区| 成人影片一区免费观看| 日韩十八禁一区二区久久| 精品国产一区二区三区| 久久国产午夜一区二区福利| 丰满人妻一区二区三区视频53| 日韩一区二区免费视频| 色欲AV蜜桃一区二区三| 亚洲欧美日韩中文字幕在线一区 | 成人无码一区二区三区| 国产SUV精品一区二区四| 亚洲国产AV无码一区二区三区| 人妻少妇久久中文字幕一区二区| 国模无码人体一区二区| 成人乱码一区二区三区av| 国产高清精品一区| 精品国产AⅤ一区二区三区4区 | 国产免费一区二区视频| 国产成人片视频一区二区| 亚洲高清偷拍一区二区三区| 一区二区三区视频在线播放| 美女免费视频一区二区三区| 又紧又大又爽精品一区二区| 日本一区免费电影| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产丝袜一区二区三区在线观看 | 久久精品一区二区三区中文字幕 | 中文字幕亚洲一区二区va在线| 亚洲午夜精品第一区二区8050| 丰满人妻一区二区三区视频| 香蕉视频一区二区| 久久免费国产精品一区二区| 日韩人妻一区二区三区免费| 麻豆果冻传媒2021精品传媒一区下载| 午夜影院一区二区|