css - Razorblade divs - 添加中间一个

标签 css responsive-design

我有这样的东西:codepen .

2 div 的 Blade 形状。但是我无法添加中间一个。谁能帮忙?

<div class="rr rr-left">
<div>
  <h2>rr-left div</h2>
  <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
</div>

<div class="rr rr-right">
<div>
  <h2>rr-right div</h2>
  <p>Lorem ipsum dolor sit amet, dolore eu feugiat facilisis.</p>
</div>

和 SCSS:

    @import "compass/css3";

/*==========  Variables  ==========*/

$pg-bg:             #dcdcdc;
$rr-bg:             #232E39;
$rr-bg-hover:       darken($rr-bg, 10%);

$rr-height:         200px;
$rr-slant:          100px;
$rr-gutter:         1%;
$rr-width:          50%;


/*==========  Styles  ==========*/

// Scaffolding
body {
    background-color: $pg-bg;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: 300;
    color: lighten($rr-bg, 40%);
}
h2 { text-transform: uppercase; }
.rr > div { text-align: center; }

// Construct the rectangles
.rr {
    position: relative;
    height: $rr-height;
    background: $rr-bg;
    &.rr-left {
        z-index: 1;
        float: left;
        width: $rr-width + 5%; // + 5% adjustment for slant offset
    }
    &.rr-right {
        z-index: 2;
        float: right;
        width: $rr-width - $rr-gutter - 5%; // - 5% adjustment for slant offset
    }
}

// Add slanted edges
.rr:after,
.rr:before {
    content: "";
    position: absolute;
    top: 0;
    width: 0;
    height: 0;
}
.rr-left:after {
    right: 0;
    border-left: $rr-slant solid $rr-bg;
    border-bottom: $rr-height solid $pg-bg;
}
.rr-right:before {
    left: -$rr-slant;
    border-right: $rr-slant solid $rr-bg;
    border-top: $rr-height solid rgba(0, 0, 0, 0); // overlaps .rr-left
}

// Add padding around inner content
.rr-left > div {
    margin-right: $rr-slant;
    margin-left: $rr-slant/2;
}
.rr-right > div {
    margin-right: $rr-slant/2;
    margin-left: $rr-slant/4;
}
// Hover styles
.rr:hover { background: $rr-bg-hover; }
.rr-left:hover:after { border-left-color: $rr-bg-hover; }
.rr-right:hover:before { border-right-color: $rr-bg-hover; }

我在中间添加剪辑时遇到问题。看起来我只能从一侧添加它...

最佳答案

您可以使用transform: translateY(-50%);

.rr > div {
  text-align: center;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  transform: translateY(-50%);
}

Codepen

关于css - Razorblade divs - 添加中间一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34180774/

相关文章:

jquery - 在 css 动画 jQuery 期间更新元素偏移量

javascript - 如何使用 Grunt.js (0.3.x) 连接和缩小多个 CSS 和 JavaScript 文件

android - Wordpress 菜单栏在调整桌面大小时工作正常,但在移动浏览器上却不行

html - 使用 bootstrap 创建标题图像

JavaScript - 在悬停时突出显示一个元素

html - 如何在移动设备的响应式设计中正确调整图像大小?

html - 响应式 css 菜单 > ul 高度修复

css - bootstrap 2.3.2 中带有响应式主 div 的固定宽度侧边栏

html - 具有多个元素的响应式 Twitter Bootstrap 轮播

HTMl、CSS - 向我的 div 添加黑色覆盖