一种在 CSS3 中弯曲(外部)元素的方法
A way to curve (outside) an element in CSS3
我正在尝试弯曲一个元素,然后在其中添加一个 background-image
属性。
我在看这个问题 - Is there a way to curve an element?。唯一的区别是,我希望它是弯曲的 outside。
这是一个例子:
这是我尝试做的:http://jsfiddle.net/KcmfC/1148/
这个结果的问题是它太弯曲了。我找不到任何解决方案。
#test {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / cover;
border: 0px solid #000;
width: 100%;
min-height: 15em;
border-radius: 0 0 100% 100%;
}
<div id="test"></div>
减少 border radius
流量
body{
margin:0
}
#test {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / cover;
border: 0px solid #000;
width: 100%;
min-height: 15em;
border-radius: 0 0 35% 35%;
}
<div id="test">
</div>
这个呢?
#test {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / cover;
border: 0px solid #000;
width: 100%;
min-height: 15em;
border-radius: 0 0 70% 70% / 20%;
}
<div id="test"></div>
我做的事情有点棘手,我将 width
拉伸到 140%,并通过 overflow: hidden
拉伸 "cut" 边缘。这是我的完整示例:
#test {
position: relative;
overflow: hidden;
min-height: 150px;
}
#test:before {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / 1048px 319px;
border: 0px solid #000;
content: "";
width: 140%;
height: 100%;
border-radius: 0 0 100% 100%;
position: absolute;
z-index: -1;
left: -20%;
right: -20%;
}
<div id="test">
<div>
SOME TEXT SOME TEXT SOME
</div>
</div>
你可以使用伪元素
div {
background: gray url(http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg) no-repeat center bottom -25px / cover;
height: 180px;
position: relative;
}
div:after {
content: '';
background: gray url(http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg) no-repeat center bottom / cover;
border-radius: 50%;
width: 100%;
height: 50px;
top: calc(100% - 25px);
left:0;
position: absolute;
}
<div></div>
我正在尝试弯曲一个元素,然后在其中添加一个 background-image
属性。
我在看这个问题 - Is there a way to curve an element?。唯一的区别是,我希望它是弯曲的 outside。
这是一个例子:
这是我尝试做的:http://jsfiddle.net/KcmfC/1148/
这个结果的问题是它太弯曲了。我找不到任何解决方案。
#test {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / cover;
border: 0px solid #000;
width: 100%;
min-height: 15em;
border-radius: 0 0 100% 100%;
}
<div id="test"></div>
减少 border radius
流量
body{
margin:0
}
#test {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / cover;
border: 0px solid #000;
width: 100%;
min-height: 15em;
border-radius: 0 0 35% 35%;
}
<div id="test">
</div>
这个呢?
#test {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / cover;
border: 0px solid #000;
width: 100%;
min-height: 15em;
border-radius: 0 0 70% 70% / 20%;
}
<div id="test"></div>
我做的事情有点棘手,我将 width
拉伸到 140%,并通过 overflow: hidden
拉伸 "cut" 边缘。这是我的完整示例:
#test {
position: relative;
overflow: hidden;
min-height: 150px;
}
#test:before {
background: url('http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg') repeat center center / 1048px 319px;
border: 0px solid #000;
content: "";
width: 140%;
height: 100%;
border-radius: 0 0 100% 100%;
position: absolute;
z-index: -1;
left: -20%;
right: -20%;
}
<div id="test">
<div>
SOME TEXT SOME TEXT SOME
</div>
</div>
你可以使用伪元素
div {
background: gray url(http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg) no-repeat center bottom -25px / cover;
height: 180px;
position: relative;
}
div:after {
content: '';
background: gray url(http://www.planwallpaper.com/static/images/i-should-buy-a-boat.jpg) no-repeat center bottom / cover;
border-radius: 50%;
width: 100%;
height: 50px;
top: calc(100% - 25px);
left:0;
position: absolute;
}
<div></div>