最大宽度不适用于浮动

Posted

技术标签:

【中文标题】最大宽度不适用于浮动【英文标题】:max-width doesn't work with float 【发布时间】:2013-07-16 07:41:09 【问题描述】:

我正在尝试设计一个响应式页面。我有 2 个高度相同的 div。 它们都具有 max-width 属性并且 max-width 正在工作。一旦我添加了 float:left 属性,max-width 就不会影响它们。

这是一个例子:jsfiddle

<div class="color1">
   Some Text
</div>
<div class="color2">
    Bla
</div>
<div style="clear: both;">

和 CSS:

div
    height: 100px;
    float: left;

.color1
    background-color: #6AC1FF;
    max-width: 400px;

.color2
    background-color: #BDBCF4;
    max-width: 100px;

我希望它们垂直对齐。除了浮动和 保持最大宽度?

【问题讨论】:

display: box; 无效。你的意思是块还是内联块? 之后您是否尝试过清除它们?添加一个具有clear: both; 属性的类,然后在两个框之后使用该类创建一个 div。 显示:内联,或显示:内联块。 *更新了我的代码并且已经尝试过内联、内联块。不工作... 浮动的元素会缩小到其内容的宽度。 【参考方案1】:

使用定义的宽度百分比和浮动:http://jsfiddle.net/dEEW5/3/

div
    height: 100px;
    display:block;
    float:left;

.color1
    background-color: #6AC1FF;
    width: 80%;
    max-width:400px;

.color2
    background-color: #BDBCF4;
    width: 20%;
    max-width:100px;

使用内联块定义的宽度百分比:http://jsfiddle.net/dEEW5/4/

bodyfont-size:0
div
    height: 100px;
    display:inline-block;
    font-size:16px;

.color1
    background-color: #6AC1FF;
    width: 80%;
    max-width:400px;

.color2
    background-color: #BDBCF4;
    width:20%;
    max-width:100px;

当第二个块不再适合容器而不是缩小时,第二个块下降的内联块:http://jsfiddle.net/dEEW5/5/

bodyfont-size:0
div
    height: 100px;
    display:inline-block;
    font-size:16px;

.color1
    background-color: #6AC1FF;
    width: 100%;
    max-width:400px;

.color2
    background-color: #BDBCF4;
    width:100%;
    max-width:100px;

【讨论】:

【参考方案2】:

我开始使用 flex,我认为这可能是我自己问题的一个很好的答案。 我添加了一个带有display: flex 的容器并将每个div 设置为flex-grow

Example

html

<div class="cont">
  <div class="color1">
      Some Text
  </div>
  <div class="color2">
      Bla
  </div>
  <div style="clear: both;">
</div>

CSS

div
    height: 100px;

.cont
     display: flex;

.color1
    background-color: #6AC1FF;
    flex-grow: 4;
    max-width: 400px;

.color2
    background-color: #BDBCF4;
    flex-grow: 1;
    max-width: 100px;

【讨论】:

【参考方案3】:

max-width: 400px 消失了,允许 div 扩展到那个,你应该将它与 min-width: (value); 结合起来

【讨论】:

【参考方案4】:

浮动时,您的 div 没有指定宽度;因此它们默认为内容的宽度(因此不是 400px/100px 宽)。

【讨论】:

【参考方案5】:

为您的最大视图使用以 px 为单位的特定宽度,然后设置“最大宽度:100%”。

例如

 div
    height: 100px;
    display:block;
    float:left;

.color1
    background-color: #6AC1FF;
    width: 400px;
    max-width:100%;

.color2
    background-color: #BDBCF4;
    width: 100px;
    max-width:100%;

对于我的网站,一旦屏幕尺寸太小而无法并排显示,我很高兴两个 div 都以 100% 显示。但是,如果您想要响应能力的另一个步骤,您可以添加一个额外的@media 查询以在它们达到 100% 宽度之前选择一个中间步骤。

【讨论】:

以上是关于最大宽度不适用于浮动的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 3:中心块不适用于最大宽度[重复]

图像的最大宽度不适用于 IE 11 的 flexbox,但适用于谷歌浏览器

向左浮动,最大宽度和流量控制

宽度:自动不适用于里面的表格

动态更改 UILabel 宽度不适用于自动布局

Quasar - 垂直滚动条不适用于超过 600 像素的宽度