在另一个
      内继承风格

发布于 2024-10-11 17:23:10 字数 847 浏览 6 评论 0原文

我在一些 HTML 中具有以下结构:

<ul class="li_inline">
    <li>
        <ul class="li_block">
            <li>Stuff</li>
            <li>Stuff under stuff</li>
        </ul>
    </li>
    <li>
        <ul class="li_block">
            <li>Stuff</li>
            <li>Stuff under stuff</li>
        </ul>
    </li>
</ul>

使用这样的 CSS:

.li_inline li
{
    display: inline;
}

.li_block li
{
    display: block;
}

我希望发生的情况是让两个内部

    并排,但任何 < li> 在它们内部,彼此位于下面。这样我就可以并排获得侧边栏和主体,但其中的元素表现正常(即一个在另一个之下)。

有人可以建议我使用一些 CSS,以便内部 (li_block) 列表的

  • 元素显示为块元素,但
      ; 本身并排显示?
  • 谢谢,

    詹姆斯

    I have the following structure in some HTML:

    <ul class="li_inline">
        <li>
            <ul class="li_block">
                <li>Stuff</li>
                <li>Stuff under stuff</li>
            </ul>
        </li>
        <li>
            <ul class="li_block">
                <li>Stuff</li>
                <li>Stuff under stuff</li>
            </ul>
        </li>
    </ul>
    

    With the CSS like this:

    .li_inline li
    {
        display: inline;
    }
    
    .li_block li
    {
        display: block;
    }
    

    What I would like to happen is to have the two inner <ul>s side by side, but any <li>s inside them to be below each other. This is so I can get a sidebar and main body side by side, but elements inside them behave normally (ie. one below the other).

    Can someone suggest some CSS I can use so that the inner (li_block) lists' <li> elements are displayed as block elements, but the <ul>s themselves are displayed side by side?

    Thanks,

    James

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

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

    发布评论

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

    评论(6

    生生不灭 2024-10-18 17:23:10

    使用重置规则。

    ul ul { list-style:none; padding: 5px 20px; margin: 5px 10px; }
    

    在您的情况下,使用 !important 可以完成您的工作。但尽量不要使用它

    更新解决

    方案: http://jsfiddle.net/Starx/KHjmP/ ( FF3+、Safari 4+、IE8+)

    Use a reset rule.

    ul ul { list-style:none; padding: 5px 20px; margin: 5px 10px; }
    

    In your case using the !important can get your job done. But try not to use it

    UPDATE

    Solution: http://jsfiddle.net/Starx/KHjmP/ (FF3+, Safari 4+, IE8+)

    挽你眉间 2024-10-18 17:23:10

    它不漂亮,但你明白了它的要点:)

    <div style="overflow: hidden;">
            <ul class="li_block" style="float: left;">
                <li>Stuff</li>
                <li>Stuff under stuff</li>
            </ul>
            <ul class="li_block" style="float: left;">
                <li>Stuff</li>
                <li>Stuff under stuff</li>
            </ul>
    </div>
    

    it ain't pretty but you get the jist of it :)

    <div style="overflow: hidden;">
            <ul class="li_block" style="float: left;">
                <li>Stuff</li>
                <li>Stuff under stuff</li>
            </ul>
            <ul class="li_block" style="float: left;">
                <li>Stuff</li>
                <li>Stuff under stuff</li>
            </ul>
    </div>
    
    蹲在坟头点根烟 2024-10-18 17:23:10

    这对我有用:

    <html>
        <head>
            <style type="text/css">
            ul.outer{}
    
            ul.outer > li{
                float: left;
            }
    
            ul.outer > li > ul > li{
                display: block;
            }
    
            </style>
        </head>
        <body>
            <ul class="outer">
                <li>
                    <ul>
                        <li>1.1</li>
                        <li>1.2</li>
                    </ul>
                </li>
                <li>
                    <ul>
                        <li>2.1</li>
                        <li>2.2</li>
                    </ul>
                </li>
            </ul>
        </body>
    </html>
    

    This worked for me:

    <html>
        <head>
            <style type="text/css">
            ul.outer{}
    
            ul.outer > li{
                float: left;
            }
    
            ul.outer > li > ul > li{
                display: block;
            }
    
            </style>
        </head>
        <body>
            <ul class="outer">
                <li>
                    <ul>
                        <li>1.1</li>
                        <li>1.2</li>
                    </ul>
                </li>
                <li>
                    <ul>
                        <li>2.1</li>
                        <li>2.2</li>
                    </ul>
                </li>
            </ul>
        </body>
    </html>
    
    放肆 2024-10-18 17:23:10

    您应该能够执行如下简单的操作。我在 Firefox、Chrome 和 IE7 中进行了测试。

    .li_inline > li {
        display: inline;
    }
    .li_inline > li > ul  {
        float: left;
    }
    

    http://jsfiddle.net/fzBnG/

    You should be able to do something as simple as the following. I tested it in Firefox, Chrome and IE7.

    .li_inline > li {
        display: inline;
    }
    .li_inline > li > ul  {
        float: left;
    }
    

    http://jsfiddle.net/fzBnG/

    老旧海报 2024-10-18 17:23:10
    .li_inline li {
        display: inline-block;
        float: left;
    }
    
    .li_block li {
        display: block;
        clear:both; 
    }
    
    .li_inline li {
        display: inline-block;
        float: left;
    }
    
    .li_block li {
        display: block;
        clear:both; 
    }
    
    断舍离 2024-10-18 17:23:10

    首先感谢大家的帮助!我真的很抱歉看起来我忽略了您的辛勤努力,但我已经记下了您的所有答案,而且它们都非常方便。

    我想出的解决方案是简单地对两个内部的 ul 使用 display: inline-block ,而外部的则保留默认值。

    再次感谢大家的帮助。

    詹姆斯

    First, thanks for everyone's help! I'm really sorry to look like I'm ignoring your hard efforts away, but I have taken note of all your answers, and they're all very handy.

    The solution I have come up with is to simply use display: inline-block for both inner uls, with the outer one left default.

    Once again, thanks for your help everyone.

    James

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