我正在尝试开发一个菜单,其中动态一些文本必须具有属性vertical-align:super。 发生这种包含“超级”文本的项目与其他项目没有垂直对齐。
这里是CSS代码:
<style>
#menu{width:300px;height:100px;background:#ABD4E6;}
#menu ul{list-style:none;}
#menu li{float:left;background:#054664;padding:20px;}
</style>
<div id="menu">
<ul>
<li>Home</li>
<li>App<span style="vertical-align: super;">*</span></li>
<li>Contacts</li>
</ul>
</div>
我该如何解决这个问题?
非常感谢提前
答案 0 :(得分:1)
float: left
元素的行为方式使得它们不会将自己定位为verticaly,无论您将vertical-align
设置为它们。所有li
元素都不应包含float: left
,因此它们会保留一些特定的行高。然后,您可以将它们与span
放在一起,相对于行高。其中一种可能性是将#menu li
样式更改为:
#menu li {
display: inline-block;
vertical-align: top;
background:#054664;
padding:20px;
}
您还必须记住稍微更改HTML标记。每个开头和包含 li
标签之间必须没有空格,如下所示:
<ul>
<li>
Home
</li><li><!-- HERE: no space -->
App<span style="vertical-align: super;">*</span>
</li><li><!-- HERE: no space also -->
Contacts
</li>
</ul>
以下是一个示例:http://jsfiddle.net/eLft6/
答案 1 :(得分:0)
我还有另外一个问题。现在文本垂直对齐,但如果我使用带有超级属性的span,则位置会改变。
此代码的垂直对齐方式:
<div id="menu">
<ul>
<li>Home</li>
<li>App<span style="vertical-align: super;">*</span></li>
<li>Test</li>
</ul>
与那个不同:
<div id="menu">
<ul>
<li>Home</li>
<li>App</li>
<li>Test</li>
</ul>
我尝试使用span修改所有 li 项目的行高,在超级用法的情况下也设置不同的值,但它没有干嘛!