基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用
admin
2023-06-08 03:41:44
0

1、菜单的显示及各种Bootstrap图标

我们从下图可以看到,为了菜单的美观,每个菜单项(这里分了三级菜单)都有一个图标,虽然大小不同,我们利用Bootstrap的图标,都是从Bootstrap图标库里面的内容。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

Bootstrap图标库里面分为了三类内容:

Font Awesome:Bootstrap专用图标字体,Font Awesome 中包含的所有图标都是矢量的,也就可以任意缩放,避免了一个图标做多种尺寸的麻烦。CSS对字体可以设置的样式也同样能够运用到这些图标上了。

如下面是部分Font Awesome 的图标:

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用


Simple Icons:收集众多网站的Logo,并提供高质量、不同尺寸的png格式图片给广大网友,所有Icon版权归其所属公司。

如下面所示是Simple Icons的部分图标:

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用


Glyphicons:包括200个符号字体格式图表集合,由Glyphicons提供,Glyphicons Halflings 一般是收费的,但是经过Bootstrap和Glyphicons作者之间的协商,允许开发人员不需要支付费用即可使用。

如下是部分Glyphicons内容:

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

 

利用这几种图标内容,我们引入下面几种样式就可以了。



这几种图标,都是支持各种Bootstrap的主题化显示的,如下面几种效果所示。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

或者也可以把图标变大一些:

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

 

2、各种Bootstrap的图标的提取

我们通过上面的介绍,估计对这几种Bootstrap的图标有了一定的了解,但是我们如果要能够在菜单编辑里面选择图标,那么我们还是需要把这些信息提取到数据库里面,然后展示出来给我进行选择的,否则无法做到动态配置。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

如上面的编辑界面,对菜单的Web图标提供了动态的选择,那么我们如果数据库里面记录了上面几种图标的集合,那么我们就可以把它在界面进行展示,并可以从中选择合适的图表了。

根据上面的几个样式文件,我们分析一下,如对于font-awesome.min.css的文件内容,它对于图标定义部分如下所示。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

而对于simple-line-icons来说,它的样式定义也差不多,如下所示。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

对于Glyphicons来说,它的样式定义也是很类似的,如下所示。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

根据这几种信息,我们就可以通过正则表达式匹配的方式,把我们所需要的信息提取出来,并存储在数据库里面即可实现图标动态显示和选择的第一步了。

例如,我们定义部分变量和正则表达式来处理这些文件内容:

string regex = "^\\.(?.*?):before\\s*\\{";
List filePathList = new List()
{
	"~/Content/themes/metronic/assets/global/plugins/bootstrap/css/bootstrap.css",
	"~/Content/themes/metronic/assets/global/plugins/font-awesome/css/font-awesome.css",
	"~/Content/themes/metronic/assets/global/plugins/simple-line-icons/simple-line-icons.css",
};

然后通过读取文件内容,并进行匹配记录获取即可提取出来集合内容了。

    string content = FileUtil.FileToString(realPath);
    List matchList = CRegex.GetList(content, regex, 1);

最后我们把这些信息保存到数据库表里面即可。

    BootstrapIconInfo info = new BootstrapIconInfo()
    {
        DisplayName = item,
        ClassName = prefix + item,
        CreateTime = DateTime.Now,
        SourceType = sourceType,
    };

    BLLFactory.Instance.Insert(info);

最后记录存储在数据库里面,效果如下所示,里面已经记录我们所需的图标信息了,这样在实际使用的时候,就可以利用各个字段的信息,显示出好看的界面了。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

 

3、Bootstrap的图标显示和选择

我们通过文件读取并以正则表达式提取出内容,然后保存到数据库后,这些图标信息就可以为我们使用了,可以在页面里面分类显示出来,每类的图标进行分页处理,方便查询,如下所示。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

这部分的显示页面代码和常规的数据显示差不多的,只是不需要表头信息而已,我们来看看页面代码如下所示。


	
		 
			图标信息
		
每页显示 100 条记录   共有记录:0条,总页数:0页。

其中主要的图标显示内容在上面这部分的HTML里面。

动态获取并生成HTML代码显示在界面上的处理脚本如下所示。

$.getJSON(iconUrl + "&" + condition, function (data) {
	$("#icon_body").html("");
	$.each(data.rows, function (i, item) {
		var tr = "";
		tr += "    ";//
		//tr += "
" + item.DisplayName + "
"; tr += ""; $("#icon_body").append(tr); });

用户选择对应的图标后,我们可以通过脚本设置Span的样式就可以显示出来我们选中的图标了,如下所示。

$("#i_WebIcon").attr("class", classname);

当然我们选择图标的时候,提供一个弹出的对话框显示分类不同的图标,让用户选择后返回即可。

基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用

这样我们就完成了,从图标文件里面提取不同类型的图表,然后存储在数据库里面,并在页面里面显示出来,可供我们动态选择和设置了。


相关内容

热门资讯

山西矿难,一场早有预兆的祸事 文丨李一鸣 姜鸥桐 编辑丨卢伊“矿难”“瓦斯爆炸”,这是很多年没有出现在我们视野中的语汇,但它就是这...
朱杨柱、张志远、黎家盈,领命出... ‍‍央视新闻消息,5月24日,神舟二十三号载人飞行任务航天员乘组出征仪式在酒泉卫星发射中心问天阁圆梦...
女子在车厢内大声唱歌、举止怪异... 极目新闻记者 李淑仪5月23日,有网友发视频称,自己乘坐由呼和浩特铁路局承运的K886/K887次列...
天玑7020等于骁龙多少(天玑... 天玑720相当于高通骁龙765G。天玑720采用了台积电7nm制程工艺,EUV是采用波长15nm的极...
坐便器水箱一直流水怎么办 坐便器水箱一直流水可能是由以下原因导致的:1. 水箱配件老化或损坏:水箱内的配件,如浮球、排水阀等,...
安装墙面收纳柜的好处及注意事项 安装墙面收纳柜可以提供合理的收纳空间,色彩和设计上要简洁明快,注意大小和线路布局,选择适合的颜色和灯...
安装中央空调的注意事项 中央空调是现代家庭的常见设备之一,安装中央空调需要注意以下事项: 1.选择合适的品牌和型号 选择...
led灯不亮了但有弱光怎么办 LED灯在使用过程中,容易出现各种故障,比如灯不亮了,但是有弱光,这怎么处理好?小编带大家一起了解下...
轰动性突破!美国终被伊朗逼怂 伊朗局势看来出现了真正的进展,在多方传出美伊谈判立场相互接近后,特朗普北京时间周日凌晨发帖表示,美国...
男子踩中蛇窝,至少被3条毒蛇咬... 5月22日,云南保山市人民医院血液科蛇伤救治中心病房外,26岁的阿杰(化名)在哥嫂的搀扶下,缓缓走出...