XHtml 严格、浮动:居中?

发布于 2024-08-28 00:20:57 字数 493 浏览 9 评论 0原文

我在 Xhtml Strict 1.0 和 Css 上遇到了困难。我几乎没有解决方案了。

我的网站网址:http://www.pro-turk.net/beta/

我为我的网站制作了一个 jquery 多级下拉菜单。

看起来不错,但我在导航菜单上使用了 css 显示属性的 inline-block 属性,该属性是 css 2.1 的一部分,并且某些浏览器(包括 ie6 和 ie7)不支持。

我想让#nav > li 元素块级元素,但要做到这一点并使所有这些元素位于同一行,唯一的方法是在 #nav > 中使用 float李。但我想将它们集中在其父级(菜单栏)中。所以我需要像 float:center 这样的东西(我知道它很愚蠢并且不存在)。但是有没有一种方法可以将块级元素包含为没有换行符的子元素(我的意思是不创建块级元素)。

问候。

I'm having hard time with Xhtml Strict 1.0 and Css. And I'm almost out of solutions.

My Site Url: http://www.pro-turk.net/beta/

I made a jquery multilevel dropdown menu for my site.

It looks like OK, but I have used inline-block property of css display attribute on navigation menu which is a part of css 2.1 and isn't supported by some browsers (including ie6 and ie7).

I want to make #nav > li elements block level elements, but to do this and having all of them in same line, the only way is using float in #nav > li. But I want to center them in their parent (the menu bar). So I need something like float:center (I know it's pretty stupid and doesn't exist). But is there a way to include block level elements as children elements without linebreaks (I mean without making a block level element).

Regards.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

还如梦归 2024-09-04 00:21:01

您可以使 li 向左或向右浮动并使菜单本身居中。使菜单的宽度为其元素之和。

#nav
{
    width: 500px;

    /* This will center the block within its container */
    margin-left: auto;
    margin-right: auto;
}

编辑:由于您不知道菜单的宽度(它是动态的),我们将遇到没有表格替代方案的情况。

<table border="0" cellpadding="0" cellspacing="0" style="margin: 0 auto;">
    <tr>
        <td>Menu item 1</td>
        <td>Menu item 2</td>
        <td>Menu item 3</td>
    <tr>
<table>

PS 有一些表格可以用较新的 CSS3 扩展来替代,例如 display:table | table-cell 等,但它还没有得到广泛的支持。

You can make li float left or right and make the menu itself centered. Make the menu the width of the sum of its elements.

#nav
{
    width: 500px;

    /* This will center the block within its container */
    margin-left: auto;
    margin-right: auto;
}

EDIT: Since you don't know the width of the menu (it's dynamic) we're coming to the very case when there is no alternative to tables.

<table border="0" cellpadding="0" cellspacing="0" style="margin: 0 auto;">
    <tr>
        <td>Menu item 1</td>
        <td>Menu item 2</td>
        <td>Menu item 3</td>
    <tr>
<table>

P.S. There is some substitution for tables with newer CSS3 extensions like display:table | table-cell etc., but it doesn't have a wide-spread support yet.

人│生佛魔见 2024-09-04 00:21:01

IE6 或 IE7 不支持 display:inline-block,但您可以通过使用 display:inline 并确保在这些元素上设置 hasLayout(例如使用 Zoom:1)在这些浏览器中获得相同的效果。使用条件注释将不同的 css 仅定向到这些浏览器。

display:inline-block isn't supported in IE6 or IE7, but you can get the same effect in those browsers by using display:inline and ensuring that hasLayout is set on those element by, say, using zoom:1. Use conditional comments to direct the different css to those browsers only.

_蜘蛛 2024-09-04 00:21:00

我认为在 css2 中没有不使用表格的解决方案。

I think there is no solution for it in css2 without using tables.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文