如何使用 jQuery UI 设置无序列表的样式,以便元素以 UI 图标而不是默认列表符号开头?
我想使用 jQuery UI 图标集 中的图标来设置无序列表的样式。
<div>
<ul>
<li>John Doe</li>
<li>Jack Snow</li>
<li>Mary Moe</li>
</ul>
</div>
默认情况下,此列表在每个元素前面显示有点:
- John Doe
- Jack Snow
- Mary Moe
相反,我想用图标替换点,例如 < code>ui-icon-person
如何实现这一点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我知道这个问题有点过时了 - 但这里有一个完整的示例:
HTML:
CSS:
这是一个 jsFiddle 显示它正在运行。结果将如下所示:
我使用
:before
伪值的原因-element 是您想要使用 jQuery-UI 图标 - 它以精灵图的形式出现。换句话说 - 所有图标都以网格图案形式存在于单个图像中,如下例所示:来源:http://download.jqueryui.com/themeroller/images/ui-icons_888888_256x240.png
如果您尝试仅将
设为该图像的背景,则在不显示所有图标的情况下显示您想要的单个图标会更加复杂它的邻居。不过,通过使用
:before
元素,您可以为图标创建一个较小的16px
x16px
框,从而轻松修剪到仅显示一个图标。如果您想了解有关
:before
和:after
伪元素的更多信息,请查看 这篇精彩的文章作为起点。I know this question is a little out-of-date - but here is a fully working example:
HTML:
CSS:
Here is a jsFiddle showing it working. The result will look something like this:
The reason that I used the
:before
pseudo-element is that you are wanting to use jQuery-UI icons - which come in the form of a sprite map. In other words - all of the icons are found in a grid pattern within a single image, as in this example:Source: http://download.jqueryui.com/themeroller/images/ui-icons_888888_256x240.png
If you tried to just make the background of the
<li>
that image, it would be more complicated to make the single icon that you want appear without also displaying all of its neighbors. By using the:before
element, though, you can create a smaller,16px
by16px
box for the icon, and thereby easily trim down to showing only one icon.If you want to learn more about
:before
and:after
pseudo-elements, check out this fantastic article as a starting point.查看页面的源码,只需设置列表项的类文件来清除标准元素,然后设置一个span标签来添加新的图标。
Looking at the source for the page, just set the class file of the list item to clear the standard element, and then set a span tag to add the new icon.
您可能还需要添加一些左侧填充。
You may need to add some left padding as well.