问题描述
额,设计出的设计稿在此:
这是一个顶部的菜单。
可以看到,这里面有梯形和网格背景效果,嗯,网格背景还有渐变效果。
问题出现的环境背景及自己尝试过哪些方法
我看了下《CSS揭秘》,如果只实现其中一种效果,梯形或者网格背景,都可以用CSS3实现,梯形可以用:
transform: perspective(.5em) rotateX(5deg);
网格可以用:
background-image:
linear-gradient(rgba(255, 255, 255, 0.2) 1px, transparent 0),
linear-gradient(90deg, rgba(255, 255, 255, 0.2) 1px, transparent 0);
background-size: 10px 10px;
但是两者结合起来就会出现这个问题:
上面效果的CSS代码如下
.title-box {
width: 40.8%;
height: 75px;
position: relative;
}
.title-box::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
transform: scaleY(1.3) perspective(.5em) rotateX(5deg);
transform-origin: bottom;
background: #0F2F5B;
background-image:
linear-gradient(rgba(255, 255, 255, 0.2) 1px, transparent 0),
linear-gradient(90deg, rgba(255, 255, 255, 0.2) 1px, transparent 0);
background-size: 10px 10px;
}
另外,我还百度了下其他的梯形实现方法,发现用边框也可以模拟梯形,但是据我所知边框不能设置成网格边框,所以也就没法实现网格背景。
如果用CSS解决不了,我打算用背景图片来作为背景实现,但那样就要考虑在不同屏幕大小下图片的大小问题,这个也算备选方案。
求助
哪位对CSS比较熟的朋友希望给提供给个思路,谢谢。
这样试试