【问题标题】:css inline positioning of divsdiv的css内联定位
【发布时间】:2012-02-13 17:00:09
【问题描述】:

我正在尝试创建一个分为 3 个 div 的标题 它们都将设置为显示:inline-block 左边的标题部分将包含一个口号和一个徽标,我不希望这个口号出现 标志的右边

问题是我的徽标 div 和我的标语 div 总是一个在另一个之上。

据我了解,内联元素将放置在最后一个内联元素旁边 在同一个块中,请注意 header-left div 的宽度为 250px,每个 子 div 的宽度为 100 像素,为什么它们不相邻放置?

我的标记:

  <div id="header">
       <div id="header-left">
              <div id="logo" />
              <div id="slogan">
                 <span> Buy For U</span>           
              </div>
       </div>  
 </div>

我的CSS:

div#header
{
    border: 1px solid black ;
    height: 200px;
}
div#header div#header-left
{
    display: inline-block;    
    height: 100%;
    width: 250px;

}
div#header div#header-left div#logo
{
    display: inline-block;
    background: url("Google-Desktop-64.png") no-repeat center;
    background-size: 25%;
    height: inherit;
    width: 100px;
}
div#header div#header-left div#slogan
{
    display: inline-block;
    height: inherit;
    width:100px;
}

【问题讨论】:

    标签: html css positioning


    【解决方案1】:

    一切都很好。只需正确关闭徽标的&lt;div&gt;。 "self-closing" tags.

    <div id="header">
           <div id="header-left">
                  <div id="logo"></div>
                  <div id="slogan">
                     <span> Buy For U</span>           
                  </div>
           </div>  
     </div>
    

    我还建议使用&lt;img&gt; 作为徽标(并使其成为主页链接)而不仅仅是背景。空的&lt;div&gt;标签在验证时容易出错。

    【讨论】:

    • 有点想死,至少它确实像我想的那样工作:) 谢谢 fskreuz
    • @eranotzer 这是我们容易忽略的最简单的事情:)
    【解决方案2】:

    您的#header 的宽度为 200 像素,而子项 #header-left 的宽度为 250 像素,这很奇怪,但除此之外,我认为最好使用浮点数。这意味着两个 div 彼此相邻:

    div#header div#header-left div#logo
    {
        float: left;
        background: url("Google-Desktop-64.png") no-repeat center;
        background-size: 25%;
        height: inherit;
        width: 100px;
    }
    
    div#header div#header-left div#slogan
    {
        float: left;
        height: inherit;
        width:100px;
    }
    

    你需要在你的 html/css 中明确:

    .clear_left { clear: left; }
    

    还有html:

    <div id="header">
        <div id="header-left">
            <div id="logo" />
            <div id="slogan"><span> Buy For U</span></div>
            <div class="clear_left"></div>
        </div>  
    </div>
    

    【讨论】:

    • 我不想使用浮点数,所以我不必清除任何内容,标题宽度未设置,因此它是一个自动设置为 100% 宽度的块,其他是只是解释性值,以表明它们确实适合。
    • @eranotzer 为什么不想使用浮点数?并非所有浏览器都支持 inline-block。
    • 我不知道该怎么做。 :) 我读到应该避免它们。当我还是个孩子的时候,一个漂浮物从左到右骚扰我,直到今天伤痕还没有清除。
    • @eranotzer 我不建议你使用 inline-blocks,我认为你应该阅读这篇文章:alistapart.com/articles/css-floats-101 它信息量很大!
    • @RemyStrijker 实际上你应该使用内联块。这就是它的用途:“该元素作为内联元素放置(与相邻内容在同一行),但它表现为块元素” w3schools.com/cssref/pr_class_display.asp 并且永远不用担心交叉-浏览器兼容性。检查此以了解您应该为兼容性开发的最低浏览器是什么gs.statcounter.com/… AFAIK,只有 IE7 和更早版本存在内联块问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多