摘要:前言在工作中我們經(jīng)常會遇到,文字過多,需要用省略號,并且鼠標的時候還需要顯示全部的文字的需求。還記得的作用不就是第二步中確定是否溢出用的。方法二在標簽內(nèi)部再包裹一個標簽,標簽在時顯示。
在工作中我們經(jīng)常會遇到,文字過多,需要用省略號,并且鼠標hover的時候 還需要 顯示全部的文字的需求。
.ellipsis { width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; display: inline-block //塊級標簽不需要 }
如何得知這個是否溢出呢?關(guān)鍵詞:clientWidth 和scrollWidth: 代碼奉上:
// 我是在react中實現(xiàn) componentDidMount () { // 在did mount 中判斷是否溢出 const node = this.ref.current // 判斷的dom節(jié)點,使用ref const clientWidth = node.clientWidth const scrollWidth = node.scrollWidth if (clientWidth < scrollWidth) { this.setState({ // 把是否溢出的狀態(tài)存在state中,之后從state中拿值使用 overflow: true }) } } // 在普通js中實現(xiàn),方法一樣,取到dom,判斷clientWidth 和scrollWidth
<span className={`${styles.detail} ${styles.ellipsis}`} ref={this.departmentRef} data-customer={overflow ? department : null}>{department}span> // 關(guān)注data-customer 屬性,這個屬性在有溢出時候賦值,無溢出時候為null。 還記得ref的作用不?就是第二步中確定是否溢出用的。
.ellipsis { // 第一步溢出的代碼 display: inline-block; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; width: 255px; } .ellipsis[data-customer]:hover::after { // 關(guān)鍵代碼,偽類實現(xiàn) content: attr(data-customer); position: absolute; background: #F2F2F2; border: 1px solid #E5E5E5; box-shadow: 0 2px 4px 0 rgba(56,62,71,0.10); border-radius: 2px; padding: 2px 6px; font-size: 13px; color: #202332; top:106px; // 設(shè)置位置 left: 10px; // 設(shè)置位置 max-width: 90%; word-break: break-word; // 如果一個單詞太長,則截斷 CSS 屬性word-break
指定了怎樣在單詞內(nèi)斷行。 white-space: normal;// 可以換行white-space
CSS 屬性是用來設(shè)置如何處理元素中的空白。 }
<span ref={this.ref} style={{display: inline-block}} className={overflow ? overFlowText : }>
{tableTitle} {overflow ? (<span className=overflowSpan>{tableTitle}span>) : null} span> // 關(guān)鍵代碼是那個三元~
.overflow{ position: relative } .overflow .overflowSpan { display: none } .overflow:hover .overflowSpan{ display: block; position: absolute; top: 10px;
left: 0px;
}
參考鏈接: https://stackoverflow.com/questions/2011142/how-to-change-the-style-of-the-title-attribute-inside-an-anchor-tag
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/1577.html
摘要:需求該列展示文本的單元格寬度固定,文本超出部分顯示為,當把鼠標移到文字上時,展示完整信息。效果沒有獲得焦點時獲得焦點時另一種實現(xiàn)方案利用屬性部分必須必須必須部分如果您把光標移動到下面上,就能夠看到全部文本。 背景: 在列表中展示文本信息,但是有的文本信息過長,大部分則較短,若是不加控制,完全顯示文本信息,列表會被撐開,很不美觀。 需求: 該列展示文本的單元格寬度固定,文本超出部分顯示為...
摘要:一行數(shù)據(jù)文本內(nèi)容太多,把頁面撐得很長影響美觀。該方法可以實現(xiàn)當一行文本內(nèi)容超過固定長度后,收縮起來,顯示一個展開按鈕,用戶一點擊后就顯示全部內(nèi)容。 一行數(shù)據(jù)文本內(nèi)容太多,把頁面撐得很長影響美觀。該方法可以實現(xiàn)當一行文本內(nèi)容超過固定長度后,收縮起來,顯示一個展開按鈕,用戶一點擊后就顯示全部內(nèi)容。當然多行文本也同樣適用,(若是全部是中文也可以使用判斷判斷字符串長度的方法,中文占用兩個字符,...
摘要:一行數(shù)據(jù)文本內(nèi)容太多,把頁面撐得很長影響美觀。該方法可以實現(xiàn)當一行文本內(nèi)容超過固定長度后,收縮起來,顯示一個展開按鈕,用戶一點擊后就顯示全部內(nèi)容。 一行數(shù)據(jù)文本內(nèi)容太多,把頁面撐得很長影響美觀。該方法可以實現(xiàn)當一行文本內(nèi)容超過固定長度后,收縮起來,顯示一個展開按鈕,用戶一點擊后就顯示全部內(nèi)容。當然多行文本也同樣適用,(若是全部是中文也可以使用判斷判斷字符串長度的方法,中文占用兩個字符,...
摘要:一行數(shù)據(jù)文本內(nèi)容太多,把頁面撐得很長影響美觀。該方法可以實現(xiàn)當一行文本內(nèi)容超過固定長度后,收縮起來,顯示一個展開按鈕,用戶一點擊后就顯示全部內(nèi)容。 一行數(shù)據(jù)文本內(nèi)容太多,把頁面撐得很長影響美觀。該方法可以實現(xiàn)當一行文本內(nèi)容超過固定長度后,收縮起來,顯示一個展開按鈕,用戶一點擊后就顯示全部內(nèi)容。當然多行文本也同樣適用,(若是全部是中文也可以使用判斷判斷字符串長度的方法,中文占用兩個字符,...
閱讀 736·2023-04-25 19:43
閱讀 3982·2021-11-30 14:52
閱讀 3807·2021-11-30 14:52
閱讀 3871·2021-11-29 11:00
閱讀 3802·2021-11-29 11:00
閱讀 3904·2021-11-29 11:00
閱讀 3580·2021-11-29 11:00
閱讀 6184·2021-11-29 11:00