最简单的方法是使用浏览器的检查工具(即 Firefox 中的 FireBug 或 Chrome 中的内置检查器)
这是箭头的独立摘录,您可以看到它们正在“绘制”带有 CSS 边框的箭头(不需要图像)
<!DOCTYPE html>
<html>
<head>
<title>Arrows a'la Twitter Bootstrap</title>
<style type="text/css">
.header {
width: 200px;
background-color: #c2ccd1;
padding: 4px;
margin: 2px;
}
.header:after {
content: "";
float: right;
margin-top: 7px;
visibility: hidden;
}
.headerSortDown:after, .header:hover:after {
border-width: 0 4px 4px;
border-style: solid;
border-color: #000 transparent;
visibility: visible;
}
.headerSortUp:after {
border-bottom: none;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid #000;
visibility: visible;
}
</style>
</head>
<body>
<div class="header">Not selected</div>
<div class="header headerSortDown">Arrow up (sorting ASC)</div>
<div class="header headerSortUp">Arrow down (sorting DESC)</div>
</body>
</html>
这是关于使用 CSS 边框绘制三角形的好教程。
编辑
DIV标记使用block
显示,因此它会尝试使用全宽或 CSS 样式中给出的宽度(在上面的示例中200px
),如果您将使用带有某些inline
元素的箭头,A
或者SPAN
箭头将“粘”到文本上。当然,您也可以强制将 DIV 显示为内联,这是最简单的方法(通过修改示例)
声明:.header
删除width
并添加display: inline-block;
:
.header {
/* width: 200px; don't set width anymore */
background-color: #c2ccd1;
padding: 4px;
margin: 2px;
display: inline-block; /* force displaying DIV as an inline element */
}
要控制文本和箭头之间的空间,只需使用部分margin-left
属性.header:after
:
.header:after {
content: "";
float: right;
margin-top: 7px;
visibility: hidden;
margin-left:4px; /* space between text and arrow for inline elements */
}
或者,如果您想在内联元素中为箭头保留一个空间(以避免悬停时更改宽度) - 您还可以添加透明的“箭头”
.header:after {
content: "";
float: right;
margin-top: 7px;
visibility: visible; /* make it visible by default */
margin-left:4px; /* space between text and arrow for inline elements */
border: 4px solid transparent; /* set borders to transparent, so they won't show */
}