在解决ul居中问题时想到的几点
程序员文章站
2024-03-31 13:12:52
最近在做网站的时候碰到了一个问题:我用 ul 标签和 li 标签构建的导航栏想要在不确定 li 数量和 ...
最近在做网站的时候碰到了一个问题:我用 ul 标签和 li 标签构建的导航栏想要在不确定 li 数量和 li, ul 宽度的情况下居中,但是给 ul 使用了 text-align:center 之后却没有起到应有的效果。
原来的页面结构是:
<div id="menu">
<ul class="menu_ul">
<li class="menu_li"><a href="#">firede</a></li>
<li class="menu_li"><a href="#">style5</a></li>
</ul>
</div>
样式表结构是:
<style>
#menu{...}
.menu_ul{...}
.menu_li{...}
</style>
这样本来也是没有什么问题的,但是因为要实现一个功能却定义了一个id(menu)和两个class(menu_ul, menu_li),这样css文件就臃肿了。
我之所以搞不定 ul 居中的问题,就是因为 css 写的太乱太多,到最后一环套一环,自己都糊涂了,定义结构的代码混杂在各种为了显示效果而写的代码之中,于是便写乱了。
在大脑发晕的情况下,不想修改了,于是重新写了实现以上功能的代码,页面结构:
<div id="menu">
<ul>
<li><a href="#">firede</a></li>
<li><a href="#">style5</a></li>
</ul>
</div>
完整的样式表:
<style>
#menu {text-align:center;}
#menu ul {padding:0;margin:0;}
#menu li {display:inline;padding:0 10px;}
</style>
像这样,很简单的就解决了 ul 不能居中的问题。回头检查我的代码,原来是因为在 li 的样式里多加了一句 float:left,因为定义的 display 并不是 block,而是 inline,所以并不能浮动,造成了冲突,最终导致 ul 无法居中显示。
总结一下,在写网页结构的时候,最好同一个功能模块使用相对统一的css名。如果可以定义一个样式名解决问题的,尽量不要定义多个,代码也要尽量简洁。因为代码臃肿了就很容易出问题,并且很难发现错误在什么地方。多用些像 menu, menu ul, menu li, menu a, menu a:hover 这种一系列的样式,而不是定义一些像 menu, menu_ul, menu_ul_li 这样看似调理清晰、层次鲜明,但是实际上很混乱的名称。
习惯是以往经验在潜意识中总结出的精华,但是随着技术的进步,很多以往的习惯都成为进一步提高的阻碍,这时候就要多参考一下标准了,看看以往的习惯是不是值得坚持下去。做网站也一样,标准是能够提高效率、改善性能并且指明方向的,web标准化的设计更有助于我们提高维护网站的效率。
原来的页面结构是:
复制代码 代码如下:
<div id="menu">
<ul class="menu_ul">
<li class="menu_li"><a href="#">firede</a></li>
<li class="menu_li"><a href="#">style5</a></li>
</ul>
</div>
样式表结构是:
复制代码 代码如下:
<style>
#menu{...}
.menu_ul{...}
.menu_li{...}
</style>
这样本来也是没有什么问题的,但是因为要实现一个功能却定义了一个id(menu)和两个class(menu_ul, menu_li),这样css文件就臃肿了。
我之所以搞不定 ul 居中的问题,就是因为 css 写的太乱太多,到最后一环套一环,自己都糊涂了,定义结构的代码混杂在各种为了显示效果而写的代码之中,于是便写乱了。
在大脑发晕的情况下,不想修改了,于是重新写了实现以上功能的代码,页面结构:
复制代码 代码如下:
<div id="menu">
<ul>
<li><a href="#">firede</a></li>
<li><a href="#">style5</a></li>
</ul>
</div>
完整的样式表:
复制代码 代码如下:
<style>
#menu {text-align:center;}
#menu ul {padding:0;margin:0;}
#menu li {display:inline;padding:0 10px;}
</style>
像这样,很简单的就解决了 ul 不能居中的问题。回头检查我的代码,原来是因为在 li 的样式里多加了一句 float:left,因为定义的 display 并不是 block,而是 inline,所以并不能浮动,造成了冲突,最终导致 ul 无法居中显示。
总结一下,在写网页结构的时候,最好同一个功能模块使用相对统一的css名。如果可以定义一个样式名解决问题的,尽量不要定义多个,代码也要尽量简洁。因为代码臃肿了就很容易出问题,并且很难发现错误在什么地方。多用些像 menu, menu ul, menu li, menu a, menu a:hover 这种一系列的样式,而不是定义一些像 menu, menu_ul, menu_ul_li 这样看似调理清晰、层次鲜明,但是实际上很混乱的名称。
习惯是以往经验在潜意识中总结出的精华,但是随着技术的进步,很多以往的习惯都成为进一步提高的阻碍,这时候就要多参考一下标准了,看看以往的习惯是不是值得坚持下去。做网站也一样,标准是能够提高效率、改善性能并且指明方向的,web标准化的设计更有助于我们提高维护网站的效率。
上一篇: Android开发之TabActivity用法实例详解
下一篇: xml与Java对象的转换详解
推荐阅读
-
在解决ul居中问题时想到的几点
-
解决在启动eclipse的tomcat进行访问时出现404问题的方法
-
解决AJAX.NET中的悬停panel在页面加载时闪烁的问题
-
解决在启动eclipse的tomcat进行访问时出现404问题的方法
-
完美解决在ModalPopupExtender中使用CalendarExtender时被层遮挡的问题
-
解决AJAX.NET中的悬停panel在页面加载时闪烁的问题
-
完美解决在ModalPopupExtender中使用CalendarExtender时被层遮挡的问题
-
在vim中添加perl注释时无法对齐问题的解决方法
-
PHP5 在调用 JAVA WebService 时遇到的各种问题解决方法_PHP教程
-
解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题