我试图水平居中"箭头" :在我之后但我没有设法做到这一点......
我的HTML
<div class="menu-top">
<table>
<tbody>
<tr>
<td> <a href="">Avant</a>
</td>
<td class="active"> <a href="">jambon</a>
</td>
<td class="active"> <a href="">Historique des transferts</a>
</td>
<td> <a href="">Testeuh</a>
</td>
</tr>
</tbody>
</table>
</div>
我的CSS
.menu-top {
margin-left: -15px;
margin-right: -15px;
margin-bottom: 20px;
}
.menu-top table {
background: lightgrey;
margin-top: 0;
width: 100%;
text-align: center;
}
.menu-top table td a {
position: relative;
font-size: 18px;
color: #3f4348;
text-shadow: 0 1px 0 #ffffff;
display: inline-block;
text-decoration: none;
margin-right: 20px;
margin-left: 20px;
}
.menu-top table td.active a:before {
content:'';
z-index: 100;
display: block;
position: absolute;
height: 0;
width: 0;
overflow: hidden;
top: 25px;
border-top: 16px solid #dfdfdf;
border-right: 16px solid transparent;
border-left: 16px solid transparent;
}
这是我的JSFiddle
我尝试了另一种风格here,但我想要第一个Style(带灰色箭头,更大)
你能帮帮我吗?)
谢谢!
答案 0 :(得分:3)
执行此操作的最佳方式right:0; left:0; margin:auto;
在支持:before
的所有浏览器中效果最佳。
.menu-top table td.active a:before {
content:'';
z-index: 100;
display: block;
position: absolute;
height: 0;
width: 0;
overflow: hidden;
top: 25px;
border-top: 16px solid #dfdfdf;
border-right: 16px solid transparent;
border-left: 16px solid transparent;
/* add these styles as well */
left:0;
right:0;
margin:auto;
}
答案 1 :(得分:2)
calc()
)使用CSS3的calc()
功能,我们可以将箭头定位到50%
减去16px
(其中16px
等于箭头的一半)宽度)。
left: calc(50% - 16px);
margin
)如果没有CSS3的calc()
功能,我们可以将left
属性设置为50%
,并使用{{1}将16px
左侧的元素调整为margin-left
}}
left: 50%;
margin-left: -16px;
left
和right
)正如Nick在评论中提到的,另一种实现此目的的方法是将left
和right
属性设置为0
,并将margin
设置为{{ 1}}:
auto
答案 2 :(得分:1)
尝试以下操作(CSS上有3个新行)。关于如何使绝对元素居中的更多here
.menu-top table td.active a:before {
content:'';
z-index: 100;
display: block;
position: absolute;
height: 0;
overflow: hidden;
top: 25px;
border-top: 16px solid #dfdfdf;
border-right: 16px solid transparent;
border-left: 16px solid transparent;
width: 32px; // width of the arrow
left: 50%;
margin-left: -16px; // half of width of the arrow
}
答案 3 :(得分:1)
添加
left:0;
right:0;
margin:0 auto;
到这个班级:
.menu-top table td.active a:before