【问题标题】:Floating divs and right alignment浮动 div 和右对齐
【发布时间】:2014-03-03 14:21:32
【问题描述】:

如果这个问题已经在网站的其他地方得到回答,我真的很抱歉。 我对 html 和 css 还很陌生,而且我经常被困在同一个地方,浮动 div。

我正在尝试使三个 div 彼此相邻浮动。但是,正如您在我的 jsfiddle 中可能注意到的那样,右侧 div 与其上方和下方的其他元素没有正确对齐。

宽度、内边距、边距有问题吗?

http://jsfiddle.net/_karima/aWaT2/

CSS

#article {
    overflow:auto;
    }

    #left-column {
    background: yellow;
    width:19%;   
    height: 100px;
    }

    #main {
    background: yellow;
    width:39%;
    height: 300px;
    }


    #right-column {
    background: blue;
    width: 29%;
    height: 150px;

    }
    #left-column, #main, #right-column {    
    float: left;
    margin: 1%;
    padding: 7px;
    } 

HTML

<div id="article">
<div id="left-column"> left-column</div>
<div id= "main">main</div>
<div id="right-column"> right column</div>
</div>

【问题讨论】:

  • 您的内边距 + 边距 + 宽度之和必须全部小于或等于 100%,除非您添加 box-sizing:border-box(仅适用于较新的浏览器)
  • 如果你想让某些东西向右浮动并对齐,它需要在你的 html 中的其他 div 之上 - 只是因为
  • 我很困惑。就这样? DEMO HERE 或者喜欢DEMO HERE
  • 或喜欢DEMO HERE。上帝很无聊哈哈。
  • 写代码时,请务必检查拼写。

标签: css html css-float alignment


【解决方案1】:

尝试使用 box-sizing 属性

box-sizing 属性允许您定义某些元素以某种方式适合某个区域

了解它here

检查这个fiddle

#left-column, #main, #right-column {
    float: left;
    margin: 1%;
    padding: 7px;
    box-sizing:border-box;
    -moz-box-sizing:border-box; /* Firefox */    
}

【讨论】:

  • 是的,当然!这里的问题是他使用 px 的填充,这就是推动宽度
  • 宽度 + 填充 + 边框 = 框的实际可见/渲染宽度 ||||||||高度 + 填充 + 边框 = 框的实际可见/渲染高度
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2011-01-18
  • 2015-08-25
  • 2012-07-05
  • 2012-05-29
  • 1970-01-01
相关资源
最近更新 更多