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

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

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

          HTML段落與折行

          HTML段落與折行

          TML可以將文檔分割為若干段落

          段落通過(guò)<p>標(biāo)簽定義,注意不要忘記結(jié)束標(biāo)簽

          THML折行

          可以使用如下例子測(cè)試

          HTML輸出-使用提醒

          對(duì)于 HTML,您無(wú)法通過(guò)在 HTML 代碼中添加額外的空格或換行來(lái)改變輸出的效果。

          當(dāng)顯示頁(yè)面時(shí),瀏覽器會(huì)移除源代碼中多余的空格和空行。所有連續(xù)的空格或空行都會(huì)被算作一個(gè)空格。需要注意的是,HTML 代碼中的所有連續(xù)的空行(換行)也被顯示為一個(gè)空格。

          家在用canvas繪制文本時(shí),經(jīng)常會(huì)碰到怎么解決文本折行的問(wèn)題。今天,老K為大家分享一種實(shí)現(xiàn)方法。


          實(shí)現(xiàn)的基本思路:

          先將輸入的每個(gè)字拆分成單個(gè)元素,再將這些元素插入到一個(gè)隱藏的元素中,該元素寬度和目標(biāo)canvas的寬度相等,接下來(lái)只需要遍歷插入容器中的子元素,然后根據(jù)子元素相對(duì)插入容器的相對(duì)距離繪制文字到canvas里。

          <!DOCTYPE html>
           <head>
           <meta charset="utf-8">
           <title>canvas-text-wrap</title>
           <style type="text/css">
           * {
           margin: 0
           }
           #main {
           width: 400px;
           margin: 20px auto 0;
           }
           #canvas, #editableWarp, #editable, #hideText {
           width: 400px;
           height: 125px;
           padding: 0;
           border: 0;
           background: #333;
           color: #FFF;
           font-size: 14px;
           font-family: 'sans-serif';
           position: relative;
           z-index: 1
           }
           #hideText {
           z-index: 0;
           position: absolute;
            word-break: break-word;
           word-wrap: break-word;
           }
           p {
           line-height: 32px;
           }
          </style>
           </head>
           <body>
           <div id="main">
           <p>
           輸入:
           </p>
           <div id="editableWarp">
           <div id="hideText"></div>
           <textarea id="editable" placeholder="請(qǐng)輸入文字..."></textarea>
           </div>
           <p>
           canvas輸出:
           </p>
           </div>
           <script type="text/javascript">
           function addEvent(obj,type,handle){//封裝綁定事件方法
           try{ // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本
           obj.addEventListener(type,handle,false);
           }catch(e){
           try{ // IE8.0及其以下版本
           obj.attachEvent('on' + type,handle);
           }catch(e){ // 早期瀏覽器
           obj['on' + type]=handle;
           }
           }
           };
           function getStyle(node, styleType){//獲取標(biāo)簽樣式方法
           return node.currentStyle? node.currentStyle[styleType]: getComputedStyle(node)[styleType];//瀏覽器中有node.currentStyle方法就用,沒(méi)有就用另一個(gè)
           };
          
           var $editable=document.getElementById('editable'),
           $hideText=document.getElementById('hideText'),
           $main=document.getElementById('main'),
           editable_pos=$editable.getBoundingClientRect();
           function initCanvasDom(){//創(chuàng)建canvas標(biāo)簽
           var $canvas=document.createElement('canvas');
           $canvas.innerHTML='您的瀏覽器不支持canvas'; 
           $canvas.width='400';
           $canvas.height='125';
           $canvas.id='canvas';
           $main.appendChild($canvas);
           return $canvas;
           }
           var $canvas=initCanvasDom();
           var ctx=$canvas.getContext('2d');
           addEvent($editable,'blur',function(){//綁定方法
           var txt=$editable.value,
           html=converText(txt);
           $hideText.innerHTML='';
           $hideText.innerHTML=html;
           drawText();
           });
           function converText(txt) {
           var html=txt.replace(/(\S)/ig, '<span>$1</span>');
           html=html.replace(/\n|\r/ig,'<br>');
           html=html.replace(/\s/ig,' ');
           return html;
           }
           function drawText() {
           $main.removeChild($canvas);//刪除舊的canvas標(biāo)簽
           $canvas=initCanvasDom();//創(chuàng)建新的canvas標(biāo)簽
           ctx=$canvas.getContext('2d');
           var canvas_width=getStyle($canvas,'width'),
           canvas_height=getStyle($canvas,'height');
           ctx.clearRect(0,0,canvas_width,canvas_height);
           var fontSize=getStyle($hideText,'fontSize');
           ctx.font=fontSize + ' sans-serif';
           ctx.textAlign='center';
           ctx.textBaseline='top';
           ctx.fillStyle='#FFFFFF';
           var text_span_list=$hideText.getElementsByTagName('span'),
           i=0,text_span_list_length=text_span_list.length,pos=null, tex='',item_left=0,item_top=0;
           for(;i<text_span_list_length;i++){
           pos=text_span_list[i].getBoundingClientRect();
           txt=text_span_list[i].innerHTML;
           item_left=parseInt(pos.left-editable_pos.left);
           item_top=parseInt(pos.top-editable_pos.top);
           ctx.fillText(txt,item_left,item_top);
           }
           }
          </script>
           </body>
          </html>

          這樣基本實(shí)現(xiàn)了這個(gè)功能。大家可以參考一下代碼,自己親自試一下。為了實(shí)現(xiàn)canvas里的文字時(shí)時(shí)更新,需要?jiǎng)討B(tài)創(chuàng)建canvas標(biāo)簽,并且每次執(zhí)行drawText方法時(shí)要?jiǎng)h掉上一次創(chuàng)建的canvas標(biāo)簽,重新創(chuàng)建一個(gè)新的。


          本文為原創(chuàng)內(nèi)容,若轉(zhuǎn)載請(qǐng)注明出處,轉(zhuǎn)發(fā)感激不盡。

          TML 標(biāo)題

          HTML 標(biāo)題(Heading)是通過(guò) <h1> - <h6> 等標(biāo)簽進(jìn)行定義的。

          實(shí)例

          <h1>This is a heading</h1>
          <h2>This is a heading</h2>
          <h3>This is a heading</h3>
          

          HTML基礎(chǔ)教程:元素屬性標(biāo)題段落

          HTML 段落

          HTML 段落是通過(guò) <p> 標(biāo)簽進(jìn)行定義的。

          實(shí)例

          <p>This is a paragraph.</p>
          <p>This is another paragraph.</p>
          

          HTML 鏈接

          HTML 鏈接是通過(guò) <a> 標(biāo)簽進(jìn)行定義的。

          實(shí)例

          <a >This is a link</a>
          

          注釋:在 href 屬性中指定鏈接的地址。

          HTML 圖像

          HTML 圖像是通過(guò) <img> 標(biāo)簽進(jìn)行定義的。

          實(shí)例

          <img src="aaaa.jpg" width="104" height="142" />
          

          <p> 元素:

          <p>This is my first paragraph.</p>
          

          這個(gè) <p> 元素定義了 HTML 文檔中的一個(gè)段落。

          這個(gè)元素?fù)碛幸粋€(gè)開始標(biāo)簽 <p>,以及一個(gè)結(jié)束標(biāo)簽 </p>。

          元素內(nèi)容是:This is my first paragraph。

          <body> 元素:

          <body>
          <p>This is my first paragraph.</p>
          </body>
          

          <body> 元素定義了 HTML 文檔的主體。

          這個(gè)元素?fù)碛幸粋€(gè)開始標(biāo)簽 <body>,以及一個(gè)結(jié)束標(biāo)簽 </body>。

          元素內(nèi)容是另一個(gè) HTML 元素(p 元素)。

          <html> 元素:

          <html>
          <body>
          <p>This is my first paragraph.</p>
          </body>
          </html>
          

          <html> 元素定義了整個(gè) HTML 文檔。

          這個(gè)元素?fù)碛幸粋€(gè)開始標(biāo)簽 <html>,以及一個(gè)結(jié)束標(biāo)簽 </html>。

          元素內(nèi)容是另一個(gè) HTML 元素(body 元素)。

          HTML 水平線

          <hr /> 標(biāo)簽在 HTML 頁(yè)面中創(chuàng)建水平線。

          hr 元素可用于分隔內(nèi)容。

          實(shí)例

          <p>This is a paragraph</p>
          <hr />
          <p>This is a paragraph</p>
          <hr />
          <p>This is a paragraph</p>
          

          提示:使用水平線 (<hr> 標(biāo)簽) 來(lái)分隔文章中的小節(jié)是一個(gè)辦法(但并不是唯一的辦法)。HTML 注釋

          可以將注釋插入 HTML 代碼中,這樣可以提高其可讀性,使代碼更易被人理解。瀏覽器會(huì)忽略注釋,也不會(huì)顯示它們。

          注釋是這樣寫的:

          實(shí)例

          <!-- This is a comment -->
          

          注釋:開始括號(hào)之后(左邊的括號(hào))需要緊跟一個(gè)嘆號(hào),結(jié)束括號(hào)之前(右邊的括號(hào))不需要。

          提示:合理地使用注釋可以對(duì)未來(lái)的代碼編輯工作產(chǎn)生幫助。HTML 折行

          如果您希望在不產(chǎn)生一個(gè)新段落的情況下進(jìn)行換行(新行),請(qǐng)使用 <br /> 標(biāo)簽:


          主站蜘蛛池模板: 亚洲av乱码一区二区三区| 亚洲欧美国产国产综合一区 | 亚洲国产综合精品一区在线播放| 亚洲一区二区在线视频| 精品不卡一区二区| 日韩精品一区二三区中文| 国产无套精品一区二区| 亚洲AV无码一区二区三区DV| 中文字幕一区二区三匹| 国产精品免费综合一区视频| 日本美女一区二区三区| 国偷自产一区二区免费视频| 在线欧美精品一区二区三区| 激情综合丝袜美女一区二区| 亚洲乱色熟女一区二区三区丝袜| 亚洲男女一区二区三区| 视频一区二区在线播放| 无码少妇一区二区三区浪潮AV| 亚洲av成人一区二区三区在线播放| 精品人妻一区二区三区四区| 日本一区二区免费看| 成人无码精品一区二区三区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产高清不卡一区二区| 精品一区二区三区| 在线观看国产区亚洲一区成人| 国产乱码精品一区二区三区中| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 中文字幕在线无码一区| 日韩欧美一区二区三区免费观看| 中文字幕精品一区| 国产精品亚洲一区二区三区在线观看 | 久久精品国产一区二区三| 国产中文字幕一区| 亚洲影视一区二区| 精品视频一区二区三区四区五区| 无码国产精品一区二区免费式影视 | 丝袜无码一区二区三区| 狠狠综合久久av一区二区| 78成人精品电影在线播放日韩精品电影一区亚洲| 精品国产一区在线观看|