問題:由於設定行高沒有類似設定字型或字型大小那樣,比如設定字型樣式
document.execcommand('stylewithcss', false, true)
document.execcommand('fontname', false, '微軟雅黑')
這就需要我們自己去實現行高的效果:
// 設定行距
export const lineheight = (value) =>
let range = selection.getrangeat(0)
// 選中區域的html
let outspan = document.createelement('span')
outspan.style.csstext = 'line-height: ' + value + ';display: inline-block;'
let content = setlineheight(outspan.innerhtml, value)
// 選取中的純文字
let txt = range.extractcontents().textcontent
let length = txt.length
if (length === 0)
// 刪除被選擇的內容
range.deletecontents()
// 建立新的元素
let span = document.createelement('span')
span.style.csstext = 'line-height: ' + value + ';display: inline-block;'
// 設定 span 內容
span.innerhtml = content
// 在被選擇的位置設定行距的元素
range.insertnode(span)
}// 設定指定行距
function setlineheight (content, value)
設定行距中遇到的問題:
問題一:設定完行距後,之前設定的樣式消失;
// 行距
export const lineheight = (value) =>
// 刪除被選擇的內容
range.deletecontents()
// 建立新的元素
let span = document.createelement('span')
span.style.csstext = 'line-height: ' + value + ';display: inline-block;'
// 設定 span 內容
span.innerhtml = txt
// 在被選擇的位置設定行距的元素
range.insertnode(span)
}
range.extractcontents().textcontent獲取的是選區中純文字內容,range.deletecontents()刪除選取內容,
range.insertnode(span)插入加有行距的內容,致使會在設定行距之前的樣式清除掉,這當然不符合我們的要求;
所以,需要獲取帶有樣式的內容range.clonecontents(),然後再插入到選區中。
問題二:行距只能在當前行距的基礎上設定大的行距,比如當前選區1.5倍行距只能設定2倍或更高,而不能設定1.5倍或更小行距;
span.style.csstext = 'line-height: ' + value + ';' 只設定行距時,會出現這種問題,加上display: inline-block;時,行距可自由設定;
span.style.csstext = 'line-height: ' + value + ';display: inline-block;'
因為span為行內元素,需要設定成block或 inline-block。
自定義dialog設定寬高
動態設定自定義dialog的顯示內容的寬和高 windowmanager m getwindowmanager display d m.getdefaultdisplay 為獲取螢幕寬 高 android.view.windowmanager.layoutparams p progressdialo...
百度富文字自定義 命令
以做過的替換表頭為例 首先,找到ueditor.all.js 新增一下 此 功能是 將table 表頭 替換為 一鍵替換表頭 command replacetable method execcommand param cmd 命令字串 example ue.commands replacetable...
cocos2dx js 實現自定義富文字
在做遊戲的時候,有乙個特殊的需求引擎沒有直接提供。一段label有一部分是其他顏色,例如 乙隻 優雅 的 攻城獅 上面這個label,一般想到的常規方式是 用四個label拼接,放到不同的位置。其實richtext是提供了這種功能的,用設定好的四個richelementtext就能實現。但是相對來說...