我是后端开发,最近有个项目需要自己做点前端工作,遇到个导航条不知道怎么做,还请各位前端大佬指点一下,不胜感激。
下图是美工切出来的导航条背景图,我需要在每个菱形的正中显示菜单文字,还要保证窗口大小改变时不会显示错乱,应该怎么做呢?
非常感谢大家的回复,不能一一回复还望见谅。
在参考了@redbuck的回复后,我找美工切了一个矩形背景图(两张图片,对应两种状态:默认状态和高亮状态),再参考@redbuck给出的代码示例,最终算是完美解决了这个问题,有兴趣的同学可以看一下:http://jsrun.pro/hMbKp
1
kdylan 2019-09-27 10:22:55 +08:00
切图 用背景图片呗,
有渐变有高光 css 累死 |
2
TangMonk 2019-09-27 10:28:05 +08:00
切图的时候为什么不直接把文字也加到图片里面去,这样也可以啊
|
5
RaymondYip 2019-09-27 11:15:15 +08:00
全图片。稳如狗
|
6
7gugu 2019-09-27 11:22:51 +08:00 via Android
用一下自适应,scale 这些
|
7
littleylv 2019-09-27 11:27:57 +08:00
又想要酷炫的效果,又没有专业的前端来做,这是要逼死后端么
|
8
redbuck 2019-09-27 11:34:59 +08:00
切开,弄一个矩形背景,设置给每一个 item,然后 transform: skew 倾斜.文字再用一个标签包下,反向 skew 扶正
|
9
markzyh 2019-09-27 11:35:19 +08:00
图片吧,又不是不能用
|
10
ochatokori 2019-09-27 11:36:27 +08:00 via Android
弄个 div 把图片作为背景,里面放 4 个浮动的 div 当文字和链接
只要你把宽度写死,就不会乱 不会前端的话没必要做成菱形的点击区域,直接长方形的 div 点击就算了 |
11
redbuck 2019-09-27 11:38:19 +08:00 3
<ul class="list">
<li class="item"><span>test</span></li> <li class="item"><span>测试</span></li> <li class="item"><span>测测测试</span></li> </ul> .list .item{ float: left; padding: 20px 50px; background-color: #4c93ff; // 更换成切分后的矩形背景 margin: 0 5px; -webkit-transform: skew(-30deg); transform: skew(-30deg); color: #fff; } .list .item span { display: inline-block; -webkit-transform: skew(30deg); transform: skew(30deg); } |
12
JasonSi 2019-09-27 14:09:42 +08:00
没有人考虑过 点击位置吗? 直接切图是方形吧,点击右上角和右下角 算点击哪个按钮呀? 要是需要做的这么精确,还是挺好玩的事情
|
13
learnshare 2019-09-27 14:31:30 +08:00
切图作为背景,然后可点击区域通过倾斜与背景重叠即可
不过通常不建议用太多图片素材。一是尺寸固定,不能配合内容变化;二是调整起来要重新做素材,挺麻烦的 |
14
lan2e 2019-09-27 16:31:45 +08:00
以前看见过一个 css 属性 "clip-path", 可以实现这种形状,具体使用我也不熟,你可以看一下文档,这里有一个在线的网站
http://bennettfeely.com/clippy/ |
15
Rekkles 2019-09-27 16:33:38 +08:00
一个 GIF 不就完事了吗。。。
|
16
yixiang 2019-09-27 16:43:10 +08:00
乱答一通:
* canvas 一把梭,点击时根据鼠标座标计算点了哪个标签 * 把图倾斜一下,p 成长方形的,div 背景放这个图,再用 transform 变成平行四边形的 * 纯图片,map 和 area 标签了解一下 * flash 一把梭! |
17
lneoi 2019-09-27 17:01:09 +08:00
不是专门的前端也不好弄太复杂了
这种最简单的做法就是直接切一个矩形,那个斜线图片两头可以拼成一整条斜线,斜角区域正常不会点,所以没关系的。做成背景图,然后里面套个 div 设置好高度放文字。第一张图片另外设置,一共就两张。老式的网站很多这种风格的 |
18
chengxy 2019-09-27 17:01:55 +08:00
https://stackblitz.com/edit/angular-esqq1f
写了一点,实在是写不出来了,平行四边形上下边框的渐变太难,中间突起的,现在最大的问题就是点击范围问题,不知道该怎么做。 |
19
tyx1703 2019-09-27 18:17:40 +08:00
|