这是一个适合你的脑筋急转弯。我正在使用CSS制作一个带有“飞出”的横幅(注意基线高度是1.5em):
.banner {
background-color:red;
color:white;
padding:1.5em 0;
position:relative;
}
.bannerLeft,
.bannerRight {
border-style:solid;
border-width:2.25em 20px;
height:0;
position:absolute;
width:0;
}
.bannerLeft { top:6px; left:-40px; border-color:red red red white; }
.bannerRight { top:6px; right:-40px; border-color:red white red red; }
HTML
<div class="banner">Check out this content!<span class="bannerLeft"></span><span class="bannerRight"></span></div>
用这些三角形切割襟翼制作一个性感的小横幅。麻烦的是,如果换行并且高度增加,则左右襟翼的大小相同。任何想法如何没有JS实现这一点?我想坚持使用边框解决方案,因此我可以控制颜色(红色是前景,白色是背景)。
我能想到的唯一其他解决方案是使用背景颜色(红色),背景图像为白色三角形,高度为100%。如果我正确设置位置,它会给出我想的相同外观,但需要2张PNG / GIF图像。
有什么想法吗?
答案 0 :(得分:1)
这个怎么样?
它解决了第一个换行问题(在布局再次中断之前最多支持2行)。至少是更灵活一点。您可以调整top
div等的bannerContent
css属性
CSS:
body
{
padding:40px;
}
.banner {
background-color:red;
color:white;
position:relative;
height:65px;
}
.bannerLeft,
.bannerRight {
border-style:solid;
border-width:2.25em 20px;
position:absolute;
width:0;
}
.bannerLeft {
top:6px; left:-40px;
border-color:red red red white;
}
.bannerRight {
top:6px; right:-40px;
border-color:red white red red;
}
.bannerContent {
position:relative;
top:20%;
text-align:center;
}
测试标记:
<div class="banner">
<span class="bannerLeft" />
<div class="bannerContent">
Check out this content! Here is some really long text.
</div>
<span class="bannerRight" />
</div>