两个div并排 - 流体显示

Wal*_*eed 205 html css fluid fluid-layout

我试图并排放置两个div并使用以下CSS.

#left {
  float: left;
  width: 65%;
  overflow: hidden;
}

#right {
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

HTML很简单,包装div中有两个左右div.

<div id="wrapper">
  <div id="left">Left side div</div>
  <div id="right">Right side div</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多次在StackOverflow和其他网站上搜索更好的方法,但找不到确切的帮助.

所以,乍一看代码工作得很好.问题是这样,当我增加宽度(%)时左边的div会自动获得填充/边距.因此,在宽度为65%时,左边的div有一些填充或边距,并且与右边的div完全对齐,我试图填充/边距0但没有运气.其次,如果我放大页面,右边的div会在左边的div下方滑动,它就像流畅的显示一样.

注意:对不起,我搜索了很多.这个问题已被多次询问,但这些答案对我没有帮助.我已经解释了我的问题是什么.

我希望有一个解决方法.

谢谢.

编辑:对不起,我的HTML问题,左侧和右侧都有两个"盒子"div,它们的填充率为%,因此左侧显示更多填充,因为宽度更大.对不起,上面的CSS工作完美,流畅的显示和固定,抱歉提出错误的问题......

dez*_*man 233

小提琴

尝试使用这样的系统:

HTML:

<section class="container">
    <div class="one"></div>
    <div class="two"></div>
</section>
Run Code Online (Sandbox Code Playgroud)

CSS:

.container {
    width: 80%;
    height: 200px;
    background: aqua;
    margin: auto;
    padding: 10px;
}
.one {
    width: 15%;
    height: 200px;
    background: red;
    float: left;
}
.two {
    margin-left: 15%;
    height: 200px;
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

如果你在另一个上使用margin-left等于第一个div的宽度,你只需要浮动一个div.无论缩放是什么,这都将有效,并且不会出现子像素问题.


小智 190

使用flexbox很容易:

#wrapper {
  display: flex;
}

#left {
  flex: 0 0 65%;
}

#right {
  flex: 1;
}
Run Code Online (Sandbox Code Playgroud)

  • @JoostS不是94%的不同浏览器可用(因为它总是适用于Chrome,Mozilla,IE等),而不是它在94%的时间内无论浏览器如何工作? (6认同)
  • 目前它为97 +%.基本上,我会说如果你不需要针对IE8,请使用flexbox,在这种情况下和其他人一样.Flexbox解决方案几乎总是更优雅,更容易推理. (4认同)
  • 如果您有现有网站,请不要浏览浏览器共享,查看您自己的流量日志.在我的大多数网站上,IE8仅占流量的0.01%左右.但是......我已经看到了特定网站,其中观众是使用大量遗留软件的公司,政府或非营利组织的用户,然后旧的IE浏览器使用率可能高得惊人. (4认同)
  • 不错,flexbox肯定是要走的路 (3认同)
  • 根据这个网站,flex应该适用于94%的浏览器.http://caniuse.com/#search=flex (3认同)

Wal*_*eed 90

将此CSS用于我当前的站点.它完美无缺!

#sides{
margin:0;
}
#left{
float:left;
width:75%;
overflow:hidden;
}
#right{
float:left;
width:25%;
overflow:hidden;
} 
Run Code Online (Sandbox Code Playgroud)

  • 很高兴听到你发现并接受了你自己的答案,但是什么是#sides?这不是你原来的问题. (47认同)
  • 向左飘浮; #right非常重要. (6认同)
  • 在子节点上使用float:left(#right)将终止父div(#wrapper)的高度.所以这个解决方案取决于要求.最好只给一个孩子漂浮.(在你的情况下#左) (2认同)

Coe*_*men 8

让两个 div 都像这样。这将使两个 div 并排对齐。

.my-class {
  display : inline-flex;
} 
Run Code Online (Sandbox Code Playgroud)


Mal*_*zar 7

这是谷歌搜索的答案:

CSS:

.column {
    float: left;
    width: 50%;
}

/* Clear floats after the columns */
.container:after {
    content: "";
    display: table;
    clear: both;
}
Run Code Online (Sandbox Code Playgroud)

这是HTML:

<div class="container">
    <div class="column"></div>
    <div class="column"></div>
</div>
Run Code Online (Sandbox Code Playgroud)