整合營(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| 亚洲.国产.欧美一区二区三区| 一区二区免费在线观看| 亚欧在线精品免费观看一区| 国产一区二区三区亚洲综合 | 久久久无码一区二区三区| 亚洲国产精品第一区二区三区| 国产情侣一区二区| 久久久无码精品人妻一区| 97人妻无码一区二区精品免费| 久久精品一区二区免费看| 免费视频一区二区| 国产日韩一区二区三免费高清 | 精品国产一区二区麻豆| 国产一区在线mmai| 亚洲欧美日韩一区二区三区在线 | 亚洲性日韩精品一区二区三区| 九九无码人妻一区二区三区| 亚洲综合av一区二区三区| 亚洲日韩一区二区一无码| 精品少妇人妻AV一区二区 | 无码喷水一区二区浪潮AV| 欧美人妻一区黄a片| 在线精品一区二区三区电影| 成人免费视频一区| 综合激情区视频一区视频二区| 国产乱码精品一区二区三区四川 | 亚洲第一区精品日韩在线播放| 精品国产毛片一区二区无码| 国产成人精品一区二区三区无码| 亚洲熟女一区二区三区| 制服丝袜一区在线| 精品国产一区二区三区久久影院| 福利片福利一区二区三区| 一区二区三区影院| 精品一区二区三区免费毛片爱 | 国模吧一区二区三区| 亚洲熟妇av一区二区三区下载| 国产日韩精品视频一区二区三区| 相泽南亚洲一区二区在线播放|