【发布时间】:2015-04-11 04:59:55
【问题描述】:
我正在尝试制作这个看起来很奇怪的分隔线:
.jumbotron {
background-color: rgba(0, 52, 113, 0.6);
padding: 2em 0;
}
.jumbotron hr {
position: relative;
background-color: white;
border: none;
}
.jumbotron hr:before,
.jumbotron hr:after {
content: '';
position: absolute;
width: 100%;
height: 0;
left: 1px;
border-bottom: 1em solid white;
-webkit-transform: rotate(-135deg);
-moz-transform: rotate(-135deg);
-ms-transform: rotate(-135deg);
-o-transform: rotate(-135deg);
transform: rotate(-135deg);
}
.jumbotron hr:before {
top: 0;
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
}
.jumbotron hr:after {
bottom: 0;
-webkit-transform-origin: 0 100%;
-ms-transform-origin: 0 100%;
transform-origin: 0 100%;
}
.grid {
display: table;
vertical-align: middle;
border-spacing: 2.46153846em 0;
}
.grid > * {
display: table-cell;
}
<div class="jumbotron">
<div class="grid">
<div>
<h1>This is a headline</h1>
</div>
<hr />
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab rem reprehenderit sit quasi, animi id.</p>
</div>
</div>
</div>
不使用图片的原因是因为它用于响应式网站。由于table-cell 给出的间距,我也不能使用额外的元素。
现在它有了我想要的外观,它在:before 下方和:after 上方仍然有额外的空隙。而且我确信我的做法不是很好。
我的问题是,有没有其他方法可以仅使用 hr 元素来制作分隔符。
【问题讨论】:
-
我会使用
SVG元素。这样一来,它就可以随网站扩展并始终保持美观。 -
这是个不错的选择。但是内容是通过 CMS 插入的,放置
hr比放置SVG更容易。此外,我想看看我是否可以用 CSS 实现这一点。 -
老实说,我很震惊伪与
<hr>... -
:pseudo elementwith<hr>tag.. 从技术上讲它应该可以工作吗?我有疑问。 -
@Kheema Pandey:hr 在大多数地方都是作为替换元素实现的,所以可能不是。