li 水平排列并自动填满 ul

找了li 如何水平排列并自动填满 ul,同时 li 宽度平均?资料,里面有提到"请用js动态计算保证兼容性",

因为我想实现的是,水平滚动条,ul的上级div是固定的宽度1000px, 我就想到用jquery 获取每个li的高度,ul的宽度等于每个li的宽度.

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head >
 4     <title>index.html</title>
 5     <meta name="description" content="Hello world">
 6
 7     <!-- jQuery 1.7.2+ or Zepto.js 1.0+ -->
 8     <script src="http://ajax.useso.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 9
10     <style type="text/css">
11         #category{
12             width:1000px;
13             height:54px;
14             border:1px solid red;
15             overflow-x:auto;
16             overflow-y:hidden;
17         }
18         #category ul{
19             margin:0px;
20             padding:0px;
21             list-style:none;
22             /**float:left;和overflow:hidden;是为了让ul的宽度为实际宽度,具体的区别,我还待学习**/
23             overflow:hidden;
24         }
25         #category ul li{
26             float:left;
27             margin:0px 10px;
28             padding:10px;
29             border:red;
30         }
31
32     </style>
33
34 </head>
35 <body>
36     <div id="category">
37         <ul>
38             <li>Test</li>
39             <li>Test12321321</li>
40             <li>Test111</li>
41             <li>Test11</li>
42             <li>Test</li>
43             <li>Test</li>
44             <li>Test</li>
45             <li>Test</li>
46             <li>Test</li>
47             <li>Test</li>
48             <li>Test</li>
49             <li>Test</li>
50             <li>Test</li>
51             <li>Test</li>
52         </ul>
53     </div>
54     <script type="text/javascript">
55         jQuery(function($){
56             var ul_width = 0 ;
57             $("#category ul li").each(function(index,value){
58                 var width = $(value).width();
59                 //40是padding-left + padding-right + margin-left + margin-left
60                 ul_width += (width + 40);
61                 //console.log(width);
62             });
63             $("#category ul").width(ul_width);
64         });
65
66     </script>
67 </body>
68 </html>

最终的效果图是:

时间: 2024-10-20 06:33:53

li 水平排列并自动填满 ul的相关文章

ext:grid分页,列宽度自动填满grid宽度

var cm = new Ext.grid.ColumnModel([{      header : '编号',      dataIndex : 'id'     }, {      header : '名称',      dataIndex : 'name'     }, {      header : '描述',      dataIndex : 'descn'     }]);   var store = new Ext.data.Store({      proxy : new Ext

自动填满窗口(宽度和高度都要填满)

要求 :A的高度是100px,宽度填满整个窗口,B,C的宽度分别是200px,100px,高度填满剩下的窗口,D的宽度和高度填满剩下的窗口. 我的想法:当时拿到这个题目的时候,宽度填满很简单,高度用自适应和百分之百都不行,就想到用js的方法,获取网页可用区域的宽度和高度  然后在相减就可以了,这个方法确实可以,不过昨晚回来查了下,其实用css方法也是可以的,之前自学的时候也学习过,不过没有用到实际的项目中 就忘记了,现在遇到这样的问题反而不会了.其实就是运用position:absolute的属

img在div中高度不能自动填满的解决办法

不论img怎样设置高度,img在div中总有几像素总不能填满,如下图: 解决办法非常简单:只要给img加个样式[display:block;]就ok了~

-webkit-box 高度自动填满

<style> .box{ display: -webkit-box; -webkit-box-orient: vertical; height: 200px; background: #000; } .box2{ display:-webkit-box; -webkit-box-flex:1; background: yellow; } </style> <div class="box"> <p>12123123</p> &

li水平与div水平

1.让ul li水平排列的CSS代码: li {display:inline} 或者采用float:left方式. 2.让div水平并排: <div style="float:left"></div> <div style="float:left"></div> 或者 <div style="float:left"> <div></div> <div>

ul li横向排列及圆点处理

如何用CSS制作横向菜单 让ul li横向排列及圆点处理   第一步:建立一个无序列表 我们先建立一个无序列表,来建立菜单的结构.代码是:<ul> <li><a href="1">首页</a></li> <li><a href="2">产品介绍</a></li> <li><a href="3">服务介绍</a&

在bootstrap中让竖向排列的输入框水平排列

在bootstrap中可以使用自带的样式标记来控制样式,但是同时可以利用最原始的css样式来解决达到需求 如下所示可以看出来两个inline-block就可以使得两个水平排列 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 大体来说

水平排列居中两种方法总结

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>水平排列方法</title> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> </head> <

【干货】:如何让元素水平排列?

块级元素默认是垂直排列的,而行内元素是水平排列的,而在布局时基本上都是用块级元素,如div等常用块级标签,那么如何让块级元素也进行水平排列呢?我有100种方式(准确说是100-94种)让元素水平排列,你知道几种呢? 第一种:display:inline-block 首先得先了解块级元素(block elements)和行内元素(inline elements)以及行内块状元素(inline-block elements) 块级元素:块级元素包含width height,padding,borde