DIV没有显示,z-index也没有效果

时间:2015-10-26 09:32:23

标签: html css css3 css-transforms

我正在尝试在CSS中创建那些对角条纹布局,如下所示:http://www.website-gallery.com/wp-content/uploads/tdomf/355/Nike%20Bloed%20Oranje%20Art%20Challenge%202.0.png

这是我的代码:http://codepen.io/Chiz/pen/zvWRNW

看起来没问题,但问题是“div class =”blacktop“没有出现。我希望它与灰色div重叠,看起来即使我设置位置,z-index也没有效果:相对于所有DIV。

<% products.each do |product| %>
   <%= content_tag :tr do %>
     <%= content_tag :td, product.name %>
     <% product.size.each do |size| %>
        <%= content_tag :td do %>
           <%= size %> | <%= button_to size.titleize, line_items_path, params: { product_id: product.id, size: size } %>
        <% end %>
     <% end %>
   <% end %>
<% end %>
body {
  overflow: hidden;
}

div {
  position: relative;
}

div.gray, div.blackbottom {
  width: 135%;
  height: 450px;
  background-color: gray;
  margin: -10px 0 0 -140px;
  z-index: 100;
  -webkit-transform: skew(-20deg, -20deg);
  -moz-prop: skew(-20deg, -20deg);
  -ms-transform: skew(-20deg, -20deg);
  transform: skew(-20deg, -20deg);
  -webkit-transform: rotate(8deg);
  -moz-prop: rotate(8deg);
  -ms-transform: rotate(8deg);
  transform: rotate(8deg);
}

div.blackbottom {
  margin-top: -100px;
  background-color: white;
  z-index: 200;
  -webkit-transform: rotate(17deg);
  -moz-prop: rotate(17deg);
  -ms-transform: rotate(17deg);
  transform: rotate(17deg);
}

div.blacktop {
  width: 135%;
  height: 200px;
  background-color: black;
  z-index: 300;
}

2 个答案:

答案 0 :(得分:3)

由于你的前两个div没有浮动或任何东西,它们有一个高度并推动下面的div。如果您停用身上的overflow:hidden,则会看到您的黑色div。

长答案简短:让你的柏油position:absolute让它漂浮在背景div之上。

示例:http://codepen.io/anon/pen/rOdJQr

HTML:

<div class="gray"></div>
<div class="blackbottom"></div>
<div class="blacktop"></div>

CSS

@mixin prefix ($prop, $val)
{
  -webkit-#{$prop}: #{$val};
  -moz-#{prop}: #{$val};
  -ms-#{$prop}: #{$val};
  #{$prop}: #{$val};
}

body
{
  overflow:hidden;
}

div
{
  position:relative;
}

div.gray
{
  width:135%;
  height:450px;
  background-color:gray;
  margin:-10px 0 0 -140px;
  z-index:100;
  @include prefix(transform, skew(-20deg,-20deg));
  @include prefix(transform, rotate(8deg));
}

div.blackbottom
{
  @extend div.gray;

  margin-top:-100px;
  background-color:white;
  z-index:200;
  @include prefix(transform, rotate(17deg));
}

div.blacktop
{
  position: absolute;
  bottom: 10px;
  width:135%;
  height:200px;
  background-color:black;
  z-index:300;
}

答案 1 :(得分:1)

我向.blacktop添加了与其他2个div相同的共享设置,因此如果你更新你的css就会显示。

div.blacktop
{
  @extend div.gray;

  top: -500px;
  width:135%;
  height:200px;
  background-color:black;
  z-index:300;
  @include prefix(transform, rotate(17deg));
}

这里是一个片段

body {
  overflow: hidden;
}

div {
  position: relative;
}

div.gray, div.blackbottom, div.blacktop {
  width: 135%;
  height: 450px;
  background-color: gray;
  margin: -10px 0 0 -140px;
  z-index: 100;
  -webkit-transform: skew(-20deg, -20deg);
  -moz-prop: skew(-20deg, -20deg);
  -ms-transform: skew(-20deg, -20deg);
  transform: skew(-20deg, -20deg);
  -webkit-transform: rotate(8deg);
  -moz-prop: rotate(8deg);
  -ms-transform: rotate(8deg);
  transform: rotate(8deg);
}

div.blackbottom {
  margin-top: -100px;
  background-color: white;
  z-index: 200;
  -webkit-transform: rotate(17deg);
  -moz-prop: rotate(17deg);
  -ms-transform: rotate(17deg);
  transform: rotate(17deg);
}

div.blacktop {
  top: -500px;
  width: 135%;
  height: 200px;
  background-color: black;
  z-index: 300;
  -webkit-transform: rotate(17deg);
  -moz-prop: rotate(17deg);
  -ms-transform: rotate(17deg);
  transform: rotate(17deg);
}
<div class="gray"></div>
<div class="blackbottom"></div>
<div class="blacktop"></div>