2
A
回答
3
我能想到的最好方法是實際克隆並將span追加到文檔中,放在一個無限大的容器中,並通過jQuery獲取寬度。
HTML:
<span id="myspan">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies pulvinar felis, nec posuere lectus mattis et. Aliquam erat volutpat. Donec non turpis vitae nunc placerat scelerisque. Nunc scelerisque lobortis lacus at hendrerit. Curabitur convallis euismod congue. Sed venenatis pulvinar magna vel cursus. Sed eleifend mi eget mi fringilla non euismod arcu venenatis. Proin interdum scelerisque diam. In ut nisi id sem imperdiet euismod. Duis vitae lorem ut mauris auctor vehicula non vel risus.
</span>
JS:
function getPrefferedWidth($el){
var clone = $el.clone(),
parent = $el && $el.parent().length>0 ? $el.parent() : $('body'),
container = $(document.createElement('div')),
wrapper = $(document.createElement('div'));
container.css({overflow: 'visible',width: '10000000px'});
wrapper.css({overflow: 'hidden', width: 0});
container.append(clone);
wrapper.append(container);
parent.append(wrapper);
var width = clone.width();
wrapper.remove();
return width;
}
$(document).ready(function(){
alert(getPrefferedWidth($('#myspan')));
});
現在的事實是CSS不允許你有無限的寬度,如果你span
包含嵌入式文本,你可以使用CSS規則white-space: nowrap
。這樣你的跨度就不會出現斷線,並且它將水平地向無限伸展!它可能更乾淨:
function getPrefferedWidth($el){
var clone = $el.clone(),
parent = $el && $el.parent().length>0 ? $el.parent() : $('body'),
container = $(document.createElement('div'));
clone.css({'white-space':'nowrap'});
container.css({overflow: 'hidden', width: 0, height: 0});
container.append(clone);
parent.append(container);
var width = clone.width();
container.remove();
return width;
}
$(document).ready(function(){
alert(getPrefferedWidth($('#myspan')));
});
相關問題
- 1. 計算HTML中兒童塊的寬度
- 2. 如何設置父高度/寬度爲可編輯span-child的高度/寬度?
- 3. 無限Div寬度?可能嗎?
- 4. 居中子菜單下的父寬度可變寬度項目
- 5. 如何計算的列表項寬度
- 6. 可能計算旋轉矩陣的寬度/高度?
- 7. 通過列表項寬度計算ul的寬度display-block
- 8. 不可能計算我的響應表的寬度Boostrap
- 9. 計算div的寬度
- 10. 如何使html標籤儘可能擴大以適應父寬度?
- 11. Silverlight:將RowDetailsTemplate寬度限制爲它的父DataGrid的寬度
- 12. 計算器高度寬度
- 13. 在寬度可以大於父母的父級中居中動態寬度的div
- 14. 計算HTML內容的高度和寬度
- 15. GridSplitter - 無限寬度
- 16. 100%的寬度大於父母的div
- 17. 設置視圖的寬度大於父視圖的寬度?
- 18. 如何計算元素的最大寬度/高度?
- 19. 網格中塊的寬度計算
- 20. 在Opera中計算像素的寬度
- 21. 計算中間格的寬度
- 22. 動態計算UITableViewCell中的UILabel寬度
- 23. HTML fullscreenlayout最小寬度,最大寬度
- 24. WinJS:如何計算列表視圖項目的寬度來填充父容器?
- 25. HTML中div的最大寬度
- 26. 使用計算jQuery CSS寬度計算
- 27. 將html塊的寬度限制爲兄弟的寬度
- 28. 在HTML中定義div的寬度(設置最大寬度)
- 29. DIV與最大可能的大小(列跨越可用寬度)
- 30. 限制最大寬度
「el」函數參數前的美元符號的含義(如果有的話)是什麼? –
它是一個jQuery集合,而不是純html節點。 –
這是否有功能影響?還是僅僅用於文檔? –