这里有两个主要问题。
1)首先是您将定位应用于没有真正意义的项目?示例:当您设置位置时:绝对;垂直对齐:顶部;什么都不做,因为它只适用于内联元素。
第二个是你没有真正详细地考虑过这个问题,看起来你只是在尽可能地坚持编码。
所以退后一步,想想每个元素的作用,并制定实现它的步骤。我们从一个黑盒子开始,最后是一个带有人字形的盒子。
1)我创建了一个固定高度的容器,然后设置为overflow:hidden;这样,任何超过一定高度的东西都不会显示。
2)我设置元素的位置与你做的大不相同。我的列表元素向左浮动。
3)然后放置边距和填充以间隔列表元素。
4)最后,我放入人字形并设计它们。
这是我所做的一个例子......
ul.chevronbar {list-style-type: none; margin: 0; padding: 0; height:50px; width:auto; overflow:hidden;}
ul.chevronbar li {margin: 0; padding: 0; height:50px; width:auto; border:1px solid #000; position:relative; float:left; background:#333; font-size: 1.5em; margin-right: 1em; padding: 0 0.7em; }
ul.chevronbar li a {text-decoration: none; color: #fff; line-height:50px; display:block;}
ul.chevronbar li:before, ul.chevronbar li:after {content: ' '; height: 0; width: 0; position: absolute; top:-2px; border: 1.2em solid transparent; border-left-width: 0.45em; border-right-width: 0.45em;}
ul.chevronbar li:before {border-top-color: #333; border-bottom-color: #333; border-right-color: #333; right: 100%;}
ul.chevronbar li:after {border-left-color: #333; left: 100%; margin-left: -0.01em;}
li.first {padding-left: 0.5em;}
li.first:before {border: none !important ;}
li.last:after {border: none !important;}