我想根据可用的元素更改我的网页布局。
在某些情况下,绿色元素存在,而在其他情况下则不存在。 我想要改变布局,如下图所示(不使用绝对定位)。
这可能吗?
图片: Layout change
谢谢!
编辑:
答案 0 :(得分:1)
可以使用flexbox。这是一个例子:
代码:
#container {
display: flex;
flex-wrap: wrap;
}
#red {
height: 30px;
background-color: red;
width: 80%;
flex: 1 0 80%;
/* this set a base width of 80%, but can grow */
}
#green {
height: 30px;
background-color: green;
width: 80%;
}
#blue {
height: 30px;
background-color: blue;
width: 20%;
}
<div id="container">
<div id="red"></div>
<div id="green"></div>
<div id="blue"></div>
</div>
您可以将display: none
设置为绿色div,您将获得想要实现的目标
这是jsfiddle
答案 1 :(得分:1)
如果绿色元素仍然存在且为空,则可以使用:empty伪选择器选择不包含任何内容或仅包含HTML注释的元素
在css中:
div:empty {
display: none;
}
如果div不存在,则必须使用JavaScript来检查它是否存在
if(document.getElementById('id_of_element'))
{
}
答案 2 :(得分:0)
.content {
width: 500px;
height: auto;
position: relative;
overflow: hidden;
text-align: center;
text-transform: uppercase;
color: #000
}
.red {
position: relative;
background: #f00;
width: 100%;
height: auto;
top: 0;
padding: 20px 0;
}
.green {
float: left;
background: green;
width: 80%;
height: auto;
padding: 20px 0;
}
.blue {
float: left;
background: blue;
color: white;
width: 20%;
height: auto;
padding: 20px 0;
}
<div class="content">
<div class="red">Red</div>
<div class="green">Green</div>
<div class="blue">Blue</div>
</div>