Css 浮动div的自动宽度

Css 浮动div的自动宽度,css,html,css-float,Css,Html,Css Float,这是我的密码 <div class='content'> <div class='div1'>content</div> <div class='div2'>content</div> </div> 在某些情况下,我需要为div2设置display:none。是否可以将.div1宽度设置为.content(300px)在设置显示:无后,尝试将类(例如,隐藏)添加到div2,然后设置全宽执行div1(在其中定义宽度:

这是我的密码

<div class='content'>
  <div class='div1'>content</div>
  <div class='div2'>content</div>
</div>
在某些情况下,我需要为
div2
设置
display:none
。是否可以将
.div1
宽度设置为
.content
(300px)

在设置
显示:无
后,尝试将类(例如,
隐藏
)添加到
div2
,然后设置
全宽
执行
div1
(在其中定义
宽度:300px
)。最后,您可以使用jQuery和条件:

if($('.hidden').length()) {
   $('.div1').addClass('fullwidth');
}
当然,您可能希望将这些类名更改为更具体的类名


我想不出任何不同的解决方案,因为CSS不允许条件语句。

重新排序div,并使用
溢出:隐藏

<div class='content'>
  <div class='div2'>content 2</div>
  <div class='div1'>content 1</div>
</div>

只要您只需要添加或删除第二个div,最简单的解决方案就是只将第二个div设为浮点,并将其放在第一个非浮点div中,如下所示:


只需删除显示屏上的注释:无即可查看其运行。

当您在
div2上设置
display:none
时,为什么不同时将
width:auto
width:100%
设置为
div1
?(可能是
float:none
)@jmbertucci.div2在运行时生成。我正在寻找基于css的解决方案。您是在添加一个设置display:none的类,还是在内联中添加display:none?您使用什么语言?div2是如何生成的?因为正如jmbertucci所说,同时向div1添加一个类或任何样式都是最简单的…我使用的是MVC 3,并将
.div2
作为section,所以css没有解决方案?正如我所说,css本身不支持条件语句。因此,您可能希望坚持使用jQuery(或者使用纯JS)。还有一个选择是,如果您在服务器端维护这些div,您可以用PHP编写条件语句。在css中设置样式和在js中设置动作是一种很好的做法