文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网站建设Div+CssLi的横向排列自适应宽度问题
精品推荐
特别推荐
·初学者来看:学习网页技术CSS怎么入门?
·CSS网页设计非常有用技巧
·DIV+CSS的命名规则有利于网站优化
·多个CSS样式表争夺特定选择符的控制权
·学习CSS制作网页总结的一些经验技巧
·CSS初学者应该保持的一种心态
·CSS常见问题和技巧总结
·DIV+CSS常见错误汇总
·设计中常用的十个CSS技巧
·网站配色,CSS主色调配色方案
·你是哪个等级的CSS开发人员?
·简单的CSS改进网站设计三个技巧
·使用CSS样式表让英文文本自动换行
·用CSS给网页图片添加滤镜效果
·国外译文:网页设计如何使用CSS的选择器模式?
·常见的CSS问题的“一站式”的解决方案
·学习CSS从何入手技术
·CSS注释、命名、继承性、样式排序等CSS技巧的小结
·推荐好文:无懈可击的CSS圆角技术
·标准网页中用CSS进行段落排版的方法
热点TOP10
·DIV CSS网页布局实例:十步学会用CSS建站
·Div+CSS+JS树型菜单,可刷新
·5款纯div+css制作的弹出菜单(标准且无js)
·Javascript +CSS横向三级导航菜单
·用CSS实现动态显示的五角星级效果
·Web标准学习:未知高度的非表格垂直对齐
·CSS:鼠标经过时改变背景颜色或图片
·用CSS如何控制网页中图片自适应大小?
·站长推荐:53个CSS-不可或缺的技巧
·CSS实现表格边框阴影和背景渐变效果
·CSS+DIV+JS导航菜单和Flash效果差不多
·div+css实现圆角边框
·采用Table+CSS实现的TabPane 选项卡代码实例
·CSS网页设计非常有用技巧
·CSS实例:让页脚保持在未满屏页面的底部
·DIV CSS布局网页实例:简单表单form标准化实例
·兼容 IE 和 FF 的换行 CSS 推荐样式
·背景图片居中显示(HTML,CSS技巧)
·DIV+CSS常用的网页布局代码
·学习CSS从何入手技术

Li的横向排列自适应宽度问题

日期:2007年7月6日 作者: 查看:[大字体 中字体 小字体]


  众所周知,FF和OPERA即其它遵循CSS2标准的浏览器由于版本的不断改进,早就支持:

  display:table

  dispaly:table-cell

  dispaly:table-row

  dispaly:table-row- group

  dispaly:table-column

  dispaly:table-column-group

  等属性。

  (至少是 FF1.0,OPERA7就能支持了,之前的就不太清楚了)那还犹豫什么?开始动手吧(为了演示加了一些 padding和border):


 IE不支持该效果,FF和OPERA下看看。

上面的示例分别定义了
#d{
       display:table;

#d ul{
       display:table-row-group;
}
#d li{
       display:table-cell;
}
那么它们在CSS2的样式里表现就分别相当于表格的
<tabel>
<tr>
<td>
标签,这样上面第一个示例里的5个 <li>就自然的被均分横向排列在#b和#b ul里,一切都很正常,表格都是这么解释的。然而,细心的朋友又会想到另一个问题,当#d的宽度不能被所包含的#d li的节点数整除,#d li的宽度又是如何均分#d的宽度呢?它在浏览器下宽度尺寸又是如何表现的呢?为了说明问题,重新定义一个不被#d li的节点数整除的#d的宽度,这里任意给个799px,在FF/opera下测试看看:


这个在IE下就不用测试了,我也没加非IE的判定,偷了个懒。

既然FF和OPERA都基于上述原理来解释这种类似表格的样式,IE又不支持,何不为其设定一个相同的解释机制呢?
我们先来看看IE下我们所能做作的:


这里定义了#d li向左浮动,也分别定义了它们的宽度(注:这里因为设定了其border为1px,宽度就是158px了)。为了防止FF/OPERA识别浮动,用了_float:left; 

OK——这回可以在IE下测试了——相当完美!当然FF/OPERA下当然也一样到此,如果你认为问题解决了,并且你平时也是这么做的——那么你现在可以关闭这个话题了,该忙什么就忙什么吧!

然而,问题是当我们的设定#d的宽度为798px呢?——那再给倒数第二个#d li加个样式来设定宽度width:157px不就得了?那如果再重新设定#d的宽度为797px、796px……呢?(也许你设计完成一个页面后再也不会动这些宽度尺寸了)但再麻烦点的是如果#d li的节点数需要调整了——表现为我们在日常的网站开发和维护中往往会增加或减少这种导航列表栏目,是否还要重新计算和分别设定这些#d li的宽度呢?

这不算很麻烦,我的数学还不至于那么差劲——也许你会说。
但真正麻烦的是:当我们在做一个按百分比来进行页面及横向导航的设计时,这些#d li的宽度又该如何设定呢?还是实例为王,下面只是对上面的示例做个小小的改动,还好是5个#d li节点,正好每个宽度是20%:


测试好像也很不错,似乎没什么不如意的地方(可能在有些机器上会折行)。再调整一下分辨率看看 ——还是挺好的啊(可能在有些机器上会折行)!那么你在试试缩小IE窗口(不是最小化到任务栏),如果还是正常的话(相信有些朋友的导航效果已经开始出现折行了)——我会有办法让你沮丧的把你的鼠标放在缩小后的IE窗口的右边框上,横向逐渐逐渐拖动缩放IE的窗口——不用多说,很多朋友肯定早已明白这当中的原由,这里啰嗦一下主要是针对一些不太明白的新人,老人就忽略这段吧简单说一下:
上例中设定的#d的百分比宽度为80%,那么这个宽度自然会随着IE窗口大小的改变而改变,如果调整后的IE窗口为999,那么这时这个#d的实际宽度为 792,这个宽度自然不能被#d li的节点数整除,也就是20%宽度不为整数(浏览器显示的最小单位是1象素,不能再分了,可能是四舍五入),很自然就会出现#d li的宽度和大于#d的实际宽度而导致折行现象了。

天哪!差点忘了,上面#d li定义了 border为1px,则#d li的宽度总和为100%+10px了,赶紧去掉再试试——这回好像可以了,再也没有出现上面的现象,IE好像没有对#d li的实际宽度进行四舍五入算法。难道这里就不能再额外设定#d li的 border和padding了吗?
这还不算,最糟糕的是:
如果#d li的节点数为3/7/9/11……等等根本不能均分#d宽度的值,你又得分别设定每个#d li的百分比,使它们的总和等于100%了。而且依旧不能再额外设定#d li的border和padding


另外:在#d的宽度为固定尺寸下,设定的#d li为百分比时,有时也会出现一些你不想看见的问题,相信很多朋友也遇到过。不了解的可以自己试试。

(出处:清风网络学院






上一篇:用css实现文字的自动隐藏

下一篇:css模拟title和alt的提示效果

Li的横向排列自适应宽度问题 相关文章:
·《边看边打赚大奖--迅雷宽频》部分问题及答案
·全面解决Generic host process for win32 services遇到问题需要关闭
·SQL server 2005安装问题汇总
·ORACLE常用傻瓜问题1000问
·解决与HTTP 500 – 内部服务器错误错误信息有关的问题
·局域网内共享文件 提示没有访问权限的问题
·图片左右循环连续滚动代码,解决marquee的留白问题
·LINUX 常见问题1000个详细解答
·输入法问题集合
·“性问题”女人大招供
Li的横向排列自适应宽度问题 相关软件:
·网络常见问题与故障1000例
·有关毛泽东的一些问题解答(不完整版)
·中东问题的历史根源
·每天问自己十个问题
·生命问题
·百度知道 1850个经典问题
·AutoCAD应用技巧与常见问题你问我答
·冰风溪谷2简体中文版 字体修正补丁(修正了因为加密问题导致的原中文版字体太小的问题)
·太阁立志传5繁体中文版 mdf 上次有问题,重发
·ACCA若干问题分析

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn