我想构建以下布局:
我希望只使用css。但即使有背景图像,我也不知道如何构建它。我搜索了网络,但没有找到我需要的帮助。
布局包含一个带有一些文本的div。背景颜色为浅灰色。然后我想添加一个更黑的三角形背景,如图所示。这也可以作为响应式布局。
我尝试了什么:
# html
<div class="wrapper">
<h1>Das ist ein test</h1>
<h2>subheadline</h2>
</div>
#css
.wrapper {
padding-top: 100px;
text-align: center;
width: 100%;
background-color: #4d4d4d;
height: 400px;
color: #fff;
position: relative;
}
.wrapper:before{
height: 50%;
width:100%;
position:relative;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
transform: rotate(45deg);
content:'';
display:block;
position:absolute;
top: 0;
background-color: #3d3d3d;
}
但这不起作用,我无法自己解决。
感谢您的帮助!
答案 0 :(得分:3)
您可以在较暗的背景上设置2个浅色渐变。
它们相互重叠,只剩下剩下的三角形
$ git fetch origin
$ git checkout master
$ git reset --hard origin/master
div {
width: 400px;
height: 200px;
border: solid 1px green;
background: linear-gradient(to top left, lightgreen 50%, transparent 50%),
linear-gradient(to top right, lightgreen 50%, transparent 50%), green;
}
答案 1 :(得分:1)
试试这个,但仍然需要在响应部分做一些工作。
hfig = figure();
hax = axes();
t = (0:N)*2*pi/N; %t=-pi:0.01:pi
x = Radius*cos(t)+x0;
y = Radius*sin(t)+y0;
c1 = fill(x,y,col1);
set(c1, 'edgecolor','k')
set(hfig, 'PaperUnits', 'inches', ...
'PaperSize', [0.8666,0.8666], ...
'PaperPosition', [0 0 0.8666 0.8666], ...
'InvertHardCopy', 'off')
axis(hax, 'equal')
axis(hax, 'off')
set(hax, 'Position', [0 0 1 1]);
set(hfig, 'Color', 'none');
print(hfig, '-dpng', 'output.png')
.box{
position: relative;
width: 100%;
max-width: 600px;
background: #ccc;
min-height: 300px;
}
.box:before {
width: 0;
height: 0;
content: "";
position: absolute;
z-index: 0;
top: 0;
left: 0;
border-left: 300px solid transparent;
border-right: 300px solid transparent;
border-top: 180px solid #555;
}
.box .content{
z-index: 10;
position: relative;
color: #fff;
text-align: center;
padding-top: 40px;
}
h1, h2{
margin: 0;
padding: 0;
}
h2{
margin-bottom: 80px;
}
.btn{
background: #f00;
color: #fff;
display: inline-block;
padding: 5px 10px;
text-align: center;
text-decoration: none;
min-width: 200px;
font-size: 20px;
}
答案 2 :(得分:0)
这应该让你接近,并说明一个仅CSS的方法:
* {
margin: 0;
padding: 0
}
body {
background: #ccc;
min-height: 500px;
}
div {
width: 0;
height: 0;
margin: 0px auto;
border: 200px solid transparent;
border-top-color: grey;
}
a {
display: block;
background: blue;
color: white;
padding: 5px 10px;
width: 200px;
margin: 0px auto;
position: relative;
top: -200px;
text-align: center;
text-decoration: none;
}
<div></div>
<a href="#">link</a>