说我有这个
<ul>
<li>Questions</li>
<li>Tags</li>
<li>Users</li>
</ul>
ul { list-style: none }
li { float: left }
基本上,就像上面的菜单(Stackoverflow徽标右侧的“问题标签用户......”)
如何获得ul
的实际宽度?
目的是让我可以将ul
对齐到右边或居中。
答案 0 :(得分:2)
在这种情况下,只需使用width()
即可。
我认为,鉴于您的问题的性质,您已将display: inline
应用于ul
,因此DOM的宽度无法读取。
在这种情况下,您可以遍历li
元素并将它们的宽度相加:
var ulWidth = 0;
$("li").each(function() {
ulWidth = ulWidth + $(this).width()
});
alert(ulWidth);
要模仿居中列表,您需要找到UL和集体LI标签的宽度。
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
jQuery(document).ready(function($){
var w = 0;
$('ul > li').each(function(){ w+= $(this).width(); });
$('ul > li:first').css({'margin-left': ($('ul').width()-w)/2+'px'});
});
</script>
<style type="text/css">
ul,li { margin:0; padding:0; }
ul { list-style: none }
li { float: left; }
</style>
</head>
<body>
<ul>
<li>Questions</li>
<li>Tags</li>
<li>Users</li>
</ul>
</body>
</html>
答案 1 :(得分:0)
好吧,试试jquery:
var width = $('ul').attr( 'width );
您可以为其指定一个值:
$('ul').attr( 'width' , value );
答案 2 :(得分:0)
这应该适合你:
$("ul").width()
答案 3 :(得分:0)