自定义 jQuery UI 小部件主题的综合指南

jQuery UI 是一个开源的界面组件库,具有交互、动画效果和即用型小部件。 jQuery UI 基于 jQuery JavaScript 库,并且可主题化,这使得任何技能水平的开发人员都可以轻松集成 jQuery UI,将其集成到他们的网页和应用程序中。

本教程介绍如何为 jQuery UI 小部件设置主题并编写自定义 CSS,以便您可以制作自己的 jQuery UI 主题。对 CSS 和 JavaScript 有基本的了解将帮助您成功完成本教程。

使用下面的目录查找您有兴趣阅读的教程部分。

非会员请注意:除非您登录 Tuts+ Premium 会员帐户,否则目录链接将不起作用。

教程信息

  1. 关于本教程
  2. 主题 jQuery UI
  3. 关于 ThemeRoller
  4. 主题化 jQuery UI - 最佳实践
  5. 指向 jQuery / jQuery UI 网站的链接
  6. 结论

教程步骤

  1. 第 1 步 - 创建基本网页(无内容)
  2. 第 2 步 - 创建外部 JS 文件(无内容)
  3. 第 3 步 - 下载 jQuery 和 jQuery UI
  4. 第 4 步 - CDN 托管 jQuery 和 jQuery UI
  5. 第 5 步 - 参考 jQuery 和 jQuery UI 库
  6. 第 6 步 - 选择 jQuery UI 小部件
  7. 第 7 步 - 删除滑块手柄上的边框 - Chrome 和 Safari
  8. 第 8 步 - 升级到较新版本的 jQuery UI

小部件部分

  1. jQuery UI - 选项卡
  2. jQuery UI - 手风琴
  3. jQuery UI - 按钮
  4. jQuery UI - 日期选择器
  5. jQuery UI - 滑块
  6. jQuery UI - 进度栏
  7. jQuery UI - 对话框
  8. jQuery UI - 突出显示/错误

自定义图标部分

  1. 用自定义图标替换 jQuery UI 默认图标
  2. 自定义图标 - jQuery UI 按钮
  3. 自定义图标 - 日期选择器
  4. 自定义图标 - 对话框按钮
  5. 自定义图标 - 突出显示/错误
  6. 自定义图标 - jQuery UI Accordion #1
  7. 自定义图标 - jQuery UI Accordion #2
  8. 自定义图标 - jQuery UI Accordion #3
  9. 自定义图标 - jQuery UI Accordion #4

自定义 CSS 样式表参考

  1. 自定义 CSS 样式表参考 - 简介
  2. 自定义 CSS 样式表参考 - 组件容器
  3. 自定义 CSS 样式表参考 - 交互状态
  4. 自定义 CSS 样式表参考 - 交互提示
  5. 自定义 CSS 样式表参考 - 默认 UI 图标
  6. 自定义 CSS 样式表参考 - 特定 jQuery UI 小部件
  7. 自定义 CSS 样式表参考 - 自定义图标
  8. 自定义 CSS 样式表参考 - 自定义图标 - Accordion #1
  9. 自定义 CSS 样式表参考 - 自定义图标 - Accordion #2
  10. 自定义 CSS 样式表参考 - 自定义图标 - Accordion #3
  11. 自定义 CSS 样式表参考 - 自定义图标 - Accordion #4
  12. 自定义 CSS 样式表参考 - 自定义图标 - 按钮
  13. 自定义 CSS 样式表参考 - 自定义图标 - 日期选择器
  14. 自定义 CSS 样式表参考 - 自定义图标 - 突出显示/错误
  15. 自定义 CSS 样式表参考 - 自定义图标 - 对话框按钮

关于本教程

自定义 jQuery UI 小部件主题的综合指南

在本教程中,我想展示如何自定义 jQuery UI 小部件并设置主题以匹配特定的设计风格。源文件演示中的小部件的主题已与 Nettuts+ 自由职业板图形的风格相匹配。

教程源文件 zip 还包括一些额外的演示,用于展示 jQuery UI Accordion、Tabs、Datepicker 和 Slider 小部件的不同选项和设置。

本教程包含一个目录,以便您可以快速找到您感兴趣的部分。本教程还提供了许多可用的 jQuery UI 即用型小部件,例如 Accordion、Tabs、Buttons、Dialog 和 Datepicker。由于本教程涵盖了多个 jQuery UI 小部件,因此您可以选择要为其创建自定义主题的小部件。


主题 jQuery UI

自定义 jQuery UI 小部件主题的综合指南

您可以通过多种方式对 jQuery UI 小部件和插件进行主题化:

  • 您可以使用 jQuery UI ThemeRoller 构建和下载主题
  • 您可以下载默认的 ThemeRoller 主题之一并修改 CSS
  • 您可以通过编写完全自定义的 CSS 从头开始​​创建自己的主题

虽然可以通过编写完全自定义的 CSS 来创建 jQuery UI 主题,但我发现从接近所需外观和感觉的默认 ThemeRoller 主题开始,然后修改 CSS 以适应更容易、更快您的需求。通过大量修改默认 ThemeRoller 主题的 CSS,您可以创建自定义主题,而无需完全从头开始。

我发现修改默认 ThemeRoller 主题的 CSS 样式表比从头开始编写自定义 CSS 主题更容易、更快捷。


关于 ThemeRoller

自定义 jQuery UI 小部件主题的综合指南

ThemeRoller 是由 Filament Group, Inc. 为 jQuery UI 设计和开发的 Web 应用程序。Themeroller 应用程序界面分为标题/工具栏、内容、可点击状态等部分,允许您为 jQuery UI 设计基本的自定义 CSS 主题小部件和插件。

如果您不想设计自己的自定义 jQuery UI 主题,还有一个带有预滚动主题的主题库。您可以在此处找到有关 jQuery UI ThemeRoller Web 应用程序的更多信息。


主题化 jQuery UI - 最佳实践

当谈到 jQuery UI 主题时,jQuery UI 网站列出了一些需要遵循的“最佳实践”,其中包括:

  • 所有类都应以 .ui- 命名空间开头
  • 所有样式都应特定于 .ui- 命名空间
  • 不要创建全局样式
  • 不要使用 ID 属性来设置样式
  • 使用连字符而不是下划线分隔单词
  • 始终使用小写

第 1 步 - 创建基本网页(无内容)

本教程的设置是为了让您可以为网页选择自己的内容。

HTML

创建一个包含以下代码的 .html 文件:

 
<!doctype html> 
<html> 
<head> 
 
<meta charset="utf-8"> 
 
<!-- CSS stylesheets --> 
<link href="css/style.css" rel="stylesheet" media="screen" /> 
 
<!-- jQuery / JavaScript --> 
<script src="js/jquery-functions.js"></script> 
 
<meta name="description" content="This demo shows how jQuery UI Controls look with a basic, custom CSS theme applied." /> 
<meta name="keywords" content="jquery,jquery ui,themeroller,widget,demo,tutorial" /> 
<title>jQuery UI Custom Theme Demo - Custom CSS Theme</title> 
 
</head> 
<body> 
 
	<!-- Begin Wrapper --> 
	<div id="wrapper"> 
 
	<p> 
	Content will go here 
	</p> 
 
	</div> 
	<!-- End Wrapper --> 
 
</body> 
</html>

CSS

创建一个名为“style.css”的 CSS 样式表,并将其添加到名为“css”的新文件夹中。包括以下代码:

 
/*  Default Styles 
--------------------------------------------------- */ 
 
body { 
	margin: 0px; 
	padding: 0px; 
	background-color: #f2f2f2; 
	font-size: 18px;  
	font-family: Arial, Helvetica, sans-serif; 
	color: #000; 
	text-align: left; 
} 
 
#wrapper	{ 
	width: 965px; 
	margin: 0 auto;	 
} 
 
 
a:link, a:visited, a:active { 
	color: #009999; 
} 
 
a:hover { 
	color: #000; 
} 
 
.clear	{ 
	float: none; 
	clear: both; 
}

第2步 - 创建外部JS文件(无内容)

需要创建外部 JavaScript 文件“jquery-functions.js”并将其添加到名为“js”的文件夹中。该 JavaScript 文件将包含初始化各种 jQuery UI 小部件所需的 jQuery 代码。本教程的设置是为了让您可以挑选要包含在网页中的 jQuery UI 小部件。 jQuery 代码将根据您选择的 jQuery UI 小部件添加到此文件中。


第 3 步 - 下载 jQuery 和 jQuery UI

下载最新版本的 jQuery 并将文件复制/上传到您的 JS 文件夹。然后下载最新版本的 jQuery UI 并将 jquery-ui .js 文件复制/上传到您的 JS 文件夹。确保已选择 ThemeRoller 默认主题“UI dark”。

在本教程中,使用 ThemeRoller 默认主题“UI dark”。但是,在创建您自己的自定义 jQuery UI CSS 主题时,请转到 jQuery Themeroller Gallery 并选择一个外观和风格最适合您的网页设计的主题。


第 4 步 - CDN 托管 jQuery 和 jQuery UI

在本教程中,jQuery 和 jQuery UI 在独立服务器上自托管,而不是使用 CDN(内容分发网络)。

如果您希望由 CDN 托管 jQuery 和 jQuery UI,您可以在以下几个位置找到可链接到的 CDN 托管的 jQuery 和/或 jQuery UI 副本:

  • jQuery CDN
  • Google 图书馆 API
  • Microsoft Ajax 内容交付网络

第 5 步 - 参考 jQuery 和 jQuery UI 库

我们需要确保网页引用 jQuery 和 jQuery UI 库。

网页的 head 标签之间,正下方 添加以下代码:

 
<link href="css/ui-darkness/jquery-ui-1.8.16.custom.css" rel="stylesheet" media="screen" /> 
 
<!-- jQuery / JavaScript --> 
<script src="js/jquery-1.6.4.min.js"></script> 
<script src="js/jquery-ui-1.8.16.custom.min.js"></script>

第 6 步 - 选择 jQuery UI 小部件

现在您已完成步骤一到步骤五,您可以开始将 jQuery 小部件添加到您的网页中。本教程介绍了如何为这些 jQuery UI 小部件设置主题:

  • 标签
  • 手风琴
  • 按钮
  • 日期选择器
  • 滑块
  • 进度条
  • 用户界面对话框
  • 突出显示/错误

虽然突出显示/错误不是小部件,但它们已包含在教程中,以展示如何主题化这些元素以及如何使用自定义图标替换默认 UI 图标。


第 7 步 - 删除滑块手柄上的边框 - Chrome 和 Safari

自定义 jQuery UI 小部件主题的综合指南

在跨浏览器测试本教程的演示时,在 Google Chrome 和 Safari Web 浏览器中单击滑块手柄时会显示边框。 Google Chrome 显示黄色边框,Safari 显示浅蓝色边框。

要删除此边框,CSS 代码“outline: none;”已添加到 jQuery UI CSS 样式表中。在“jquery-ui-1.8.16.custom.css”文件中找到以下代码行:

 
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }

更改这行代码,使其包含“outline: none;”像这样:

 
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; outline: none; }

您的主题的滑块手柄代码行可能略有不同。找到包含“.ui-slider .ui-slider-handle {position:absolute;......”的行并添加“outline:none;”到该行代码的末尾。


第 8 步 - 升级到较新版本的 jQuery UI

如果您对默认 ThemeRoller 主题的 CSS 样式表进行了大量修改,或者从头开始创建了自定义 CSS 主题,则有必要为未来的 jQuery UI 小部件和插件执行手动更新。

文件比较工具

为了手动更新 jQuery UI CSS,您将需要一个好的文件比较工具。我一直在用

Beyond Compare 已经很多年了,强烈推荐这个程序。尽管需要注意的是,Beyond Compare 不是免费软件,而是商业软件。

您可以在此处和此处找到推荐的免费软件和付费软件文件比较工具的列表。

手动更新

要升级您的自定义 jQuery UI CSS 主题,您需要执行以下操作:

  • 备份您的自定义 jQuery UI CSS 主题文件
  • 下载最新版本的 jQuery 并将文件复制/上传到您的 JS 文件夹。 (如果您使用 CDN,请跳过此步骤)
  • 更新网页上引用 jQuery 库的链接,使其具有最新版本号。示例:“js/jquery-1.6.3.min.js”将更改为“js/jquery-1.6.4.min.js”。
  • 下载最新版本的 jQuery UI 并将 jquery-ui .js 文件复制/上传到您的 JS 文件夹。确保选择最初修改为自定义主题的 themeroller 默认主题。
  • 更新网页上引用 jQuery UI 库的链接,使其具有最新版本号。示例:“js/jquery-ui-1.8.15.custom.min.js”将更改为“js/jquery-ui-1.8.16.custom.min.js”。
  • 更改 jQuery UI 自定义主题的 CSS 样式表的文件名,以便它反映最新版本的 jQuery UI。示例:“jquery-ui-1.8.15.custom.css”将更改为“jquery-ui-1.8.16.custom.css”
  • 更新网页上引用 jQuery UI CSS 样式表的链接,使其反映如上所示的新文件名和版本。

逐行更新 CSS

自定义 jQuery UI 小部件主题的综合指南

Beyond Compare 文件比较工具屏幕。左侧显示原始默认 jQuery UI CSS 样式表。右侧显示新修改的 CSS 样式表。单击图像可查看大图。

如果您对默认 ThemeRoller 主题的 CSS 样式表进行了大量修改,或者从头开始创建了自定义 CSS 主题,则必须手动逐行更新 CSS。

使用文件比较工具,将最新版本 jQuery UI 的 CSS 样式表代码与 jQuery UI 自定义主题的 CSS 样式表代码进行比较。仔细检查差异,查找新 jQuery UI 版本样式表中因新 jQuery UI 小部件、现有小部件更新等而发生的更改。忽略

由于创建自定义 jQuery UI 主题而进行的代码更改而导致的差异。

在许多情况下,jQuery UI 主题样式表的唯一更改是版本号。如果是这种情况,只需将旧版本号的所有实例更改为新版本号,保存文件,上传即可完成。

如果最新版本的 jQuery UI 主题样式表包含自定义主题 CSS 中未包含的新 CSS 代码,请将这些代码行复制到您的样式表中,保存然后上传。


jQuery UI 选项卡

自定义 jQuery UI 小部件主题的综合指南

选项卡将内容分为多个部分,可以交换这些部分以节省空间。默认情况下,小部件会交换 onClick 上的选项卡式部分,但也可以更改为 onHover。

HTML

要将默认的 jQuery UI 选项卡小部件添加到您的 .html 网页,请添加以下代码:

 
<!-- Begin Tabs Container --> 
<div class="content_container_1"> 
 
<h2>Tabs</h2> 
 
<!-- Begin Tabs Area --> 
 <div id="tabs"> 
	<ul> 
		<li><a href="https://www.php.cn/link/7570284063f2de77ff3145e5f321f2c5">jQuery UI</a></li> 
		<li><a href="#tabs-2">jQuery</a></li> 
		<li><a href="#tabs-3">ThemeRoller</a></li> 
	</ul> 
	 
	<!-- Begin Tabs Section #1 --> 
	<div id="tabs-1"> 
		<p> 
		   <img class="tabs_img" src="images/jquery_ui.png" width="325" height="225" alt="jQuery UI" /><a href="http://jqueryui.com/" target="_blank" title="jQuery UI">jQuery UI</a> was built on top of the jQuery library and features ready to use widgets, advanced effects, animation, and much more.  
		</p> 
		<p> 
		   Featuring a powerful and unique CSS theme framework, Themeroller tool and pre-made theme gallery, jQuery UI makes customizing your application fast and easy.  
		</p> 
		<p> 
		   Detailed documentation and tutorials available on the <a href="http://jqueryui.com/" target="_blank" title="jQuery UI Official Website">official website</a> allow you to start using and learning jQuery UI right away. jQuery UI is also supported by a large and enthusiastic community of web developers. 
		</p> 
		<p> 
		   <a href="http://jqueryui.com/" target="_blank" title="Visit The jQuery UI Website">Visit The Official jQuery UI Website</a> 
		</p> 
	</div> 
	<!-- End Tabs Section #1 --> 
 
	<!-- Begin Tabs Section #2 --> 
	<div id="tabs-2"> 
		<p> 
		   <img class="tabs_img" src="images/jquery.png" width="325" height="225" alt="jQuery" /><a href="http://jquery.com/" target="_blank" title="jQuery">jQuery</a> is a very popular cross browser JavaScript library that features event handling, animation, Ajax interactions and more for rapid web development.  
		</p> 
		<p> 
		   On the official jQuery website you can find <a href="http://docs.jquery.com/" target="_blank" title="detailed documentation">detailed documentation</a>, <a href="http://forum.jquery.com/" target="_blank" title="forums">forums</a> with thousands of posts and responses, information on  <a href="http://docs.jquery.com/Using_jQuery_with_Other_Libraries" target="_blank" title="How to use jQuery with other Libraries">How to use jQuery with other Libraries</a> and much more. 
		</p> 
		<p> 
		   jQuery is lightweight, CSS3 compliant and cross browser tested. jQuery was designed to change the way developers write JavaScript! 
		</p> 
		<p> 
		   <a href="http://jquery.com/" target="_blank" title="Visit the jQuery Website">Visit the Official jQuery Website</a> 
		</p> 
	</div> 
	<!-- End Tabs Section #2 --> 
 
	<!-- Begin Tabs Section #3 --> 
	<div id="tabs-3"> 
		<p> 
		   <img class="tabs_img" src="images/themeroller.png" width="325" height="325" alt="jQuery" />ThemeRoller is a web application designed and developed for jQuery UI by <a href="http://www.filamentgroup.com/" target="_blank" title="Filament Group, Inc">Filament Group, Inc</a>.   
		</p> 
		<p> 
		   The Themeroller application interface is divided into sections such as header/toolbar, content, clickable states, etc which allows you to design custom CSS themes for <a href="http://jqueryui.com/demos/" target="_blank" title="jQuery UI widgets">jQuery UI widgets</a>.  
		</p> 
		<p> 
		   There is also a <a href="http://jqueryui.com/themeroller/#themeGallery" target="_blank" title="Theme Gallery">Theme Gallery</a> with pre-rolled themes if you do not want to design your own custom jQuery UI theme. Basic jQuery UI widget customization can be accomplished fairly easily by using a default themeroller theme and modifying the theme CSS to suit your needs. 
		</p> 
		<p> 
		   There are additional articles about theming and customization on the official website including <a href="http://jqueryui.com/docs/Theming" target="_blank" title="Theming jQuery UI">"Theming jQuery UI"</a>, <a href="http://jqueryui.com/docs/Theming/API" target="_blank" title="jQuery UI CSS framework">"jQuery UI CSS framework"</a>, and <a href="http://jqueryui.com/docs/Theming/Themeroller" target="_blank" title="ThemeRoller application">"ThemeRoller application"</a>.  
		</p> 
		<p> 
		   <a href="http://jqueryui.com/themeroller/" target="_blank" title="Visit ThemeRoller">Visit ThemeRoller!</a> 
		</p> 
	</div> 
	<!-- End Tabs Section #3 --> 
 
</div>  
<!-- End Tabs Area --> 
 
</div>  
<!-- End Tabs Container -->

标记细目

大多数 jQuery UI 小部件都被编程为扩展到它们所在内容区域的 100% 宽度。

容器div“content_container_1”已在CSS中设置为固定宽度800px,以便选项卡式内容区域不会扩展屏幕的整个宽度。

菜单“选项卡”是由无序列表生成的。内容部分由

标记生成,这些标记具有与
  • 标记中的锚链接相对应的唯一 ID。

    例如:

    对应

    CSS(样式.css)

    将以下 CSS 代码添加到 style.css:

     
    /*  Containers 
    --------------------------------------------------- */ 
     
    .content_container_1	{ 
    	width: 800px; 
    	margin: 50px 0px 20px 20px; 
    } 
     
    /*  Tabs  
    --------------------------------------------------- */ 
     
    #tabs p	{ 
    	font-family: Arial, Helvetica, sans-serif; 
    	font-size: 16px; 
    } 
     
    #tabs .tabs_img	{ 
    	float: left; 
    	background-color: #aaa; 
    	padding: 8px; 
    	margin: 0px 35px 15px 0px; 
    }
    

    jQuery(jquery-functions.js)

    通过在外部 JavaScript 文件 jquery-functions.js 中添加以下代码来初始化选项卡。

     
    // jQuery UI Tabs 
     
    $(function() { 
    	$( "#tabs" ).tabs(); 
    });
    

    自定义 jQuery UI CSS

    本教程的自定义 CSS 样式表参考部分包含设置小部件样式所需的特定类和代码。每行 CSS 代码都解释了它的作用以及它将如何改变小部件的样式。其他详细信息请参见参考部分简介。

    样式表参考的这些部分包含将样式应用于选项卡小部件的 jQuery UI 类:

    • 自定义 CSS 样式表参考 - 组件容器
    • 自定义 CSS 样式表参考 - 交互状态
    • 自定义 CSS 样式表参考 - 特定 jQuery UI 小部件

    例如,如果您想更改选项卡菜单中活动的选定选项卡的背景图像/渐变,您将查看“交互状态”部分中列出的类。本节顶部列出了四种交互状态的说明。由于这是“活动”状态,因此“.ui-state-active”类适用于此选项卡。

    查看包含“.ui-state-active”类并包含 CSS 背景图像的行的 CSS 代码示例。此示例代码行包含类和 CSS 背景图像:

     
    .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #336666; background: #32646b url(images/ui-bg-1.png) 50% 50% repeat-x; font-weight: bold; color: #fff; }
    

    现在您已经找到了适当的代码示例,请在 jQuery UI 主题样式表中找到这行代码,并将背景图像替换为您自己的自定义图像。

    请记住:所有 ThemeRoller 主题都具有相同的 CSS 类。因此,每个默认主题中的类名称都完全相同。但是,CSS 代码和样式可能不同。


    jQuery UI 手风琴

    自定义 jQuery UI 小部件主题的综合指南

    手风琴不允许同时打开多个内容面板。如果您正在寻找一种允许打开多个内容面板的小部件,请不要使用手风琴。

    HTML

    要将 jQuery UI Accordion Widget(带有 ThemeRoller 图标)添加到您的 .html 网页,请添加以下代码:

     
    <!-- Begin Accordion Container --> 
    <div class="content_container_2"> 
     
    <h2>Accordion</h2> 
     
    <!-- Begin Accordion --> 
    <div id="accordion"> 
     
    <!-- Begin Panel #1 --> 
    	<h3><a href="#section1">Accordion</a></h3> 
    	<div> 
     
    	<!-- Begin Content Container Div --> 
    	<div class="content_container_main"> 
     
    		<!-- Left Content Div --> 
    		<div class="content_1"> 
    			<img src="images/accordion_1.png" width="350" height="180" alt="Accordion" /> 
    			<p> 
    				Default Accordion 
    			</p> 
    			<img src="images/accordion_2.png" width="350" height="198" alt="Accordion" /> 
    			<p> 
    				Accordion with Icons 
    			</p> 
    		</div> 
     
    		<!-- Right Content Div --> 
    		<div class="content_2"> 
    			<h2>Accordion</h2> 
    			<p> 
    				An <a href="http://jqueryui.com/demos/accordion/" target="_blank" title="Accordion">Accordion</a> doesn't allow more than one content panel to be open at the same time. If you are looking for a widget that allows more than one content panel to be open, don't use an Accordion. 
    			</p> 
    			<p> 
    				The markup uses a series of headers (H3 tags) and divs so the content is still usable even if the browser has JavaScript disabled. 
    			</p>	 
    			<p> 
    				If you want Accordion sections to be collapsible, add "collapsible: true" to the JavaScript code.  
    			</p>		 
    			<p> 
    				To set the Accordion so that the accordion sections open and close on mouseover, add event: "mouseover" to the JavaScript code. 
    			</p> 
    			<p> 
    			<a href="http://jqueryui.com/demos/accordion/" target="_blank" title="Learn More">Learn More</a> 
    			</p> 
    		</div> 
     
    	</div> 
    	<!-- End Content Container Div --> 
     
    	</div> 
    <!-- End Panel #1 --> 
     
     
    <!-- Panel #2 --> 
    	<h3><a href="#section2">Tabs</a></h3> 
    	<div> 
     
    	<!-- Begin Content Container Div --> 
    	<div class="content_container_main"> 
     
    		<!-- Left Content Div --> 
    		<div class="content_1"> 
    			<img src="images/tabs_1.png" width="350" height="117" alt="Tabs" /> 
    			<p> 
    				Default Tabs 
    			</p> 
    			<img src="images/tabs_2.png" width="350" height="143" alt="Tabs" /> 
    			<p> 
    				Tabs Below Content 
    			</p> 
    			<img src="images/tabs_3.png" width="350" height="58" alt="Tabs" /> 
    			<p> 
    				Content via Ajax 
    			</p> 
    		</div> 
     
    		<!-- Right Content Div --> 
    		<div class="content_2"> 
    			<h2>Tabs</h2> 
    			<p> 
    				<a href="http://jqueryui.com/demos/tabs/" target="_blank" title="Tabs">Tabs</a> break content into multiple sections that can be swapped to save space. The widget swaps the tabbed sections onClick by default, but can be changed to onHover instead. 
    			</p> 
    			<p> 
    				If you want the Tabs sections to open on mouseover, add event: "mouseover" to the JavaScript code. 
    			</p>		 
    			<p> 
    				If you want the Tabs content to be collapsible, add collapsible: "true" to the JavaScript code. 
    			</p> 
    			<p> 
    				Other options for the tabs widget include content loaded via Ajax, collapse content, sortable, tabs below content, simple manipulation and cookie persistance. 
    			</p> 
    			<p> 
    			<a href="http://jqueryui.com/demos/tabs/" target="_blank" title="Learn More">Learn More</a> 
    			</p> 
    		</div> 
     
    	</div> 
    	<!-- End Content Container Div --> 
     
    	</div> 
    <!-- End Panel #2 --> 
     
     
    <!-- Panel #3 --> 
    	<h3><a href="#section3">Datepicker</a></h3> 
    	<div> 
     
    	<!-- Begin Content Container Div --> 
    	<div class="content_container_main"> 
     
    		<!-- Left Content Div --> 
    		<div class="content_1"> 
    			<p class="left_col_1"> 
    			<img src="images/datepicker_1.png" width="175" height="208" alt="Datepicker" /> 
    			<br /> 
    				Displayed Inline 
    			</p> 
     
    			<p class="left_col_2"> 
    			<img src="images/datepicker_2.png" width="175" height="208" alt="Datepicker" /> 
    			<br /> 
    				Icon Trigger 
    			</p> 
     
    			<p class="left_col_3"> 
    			<img src="images/datepicker_3.png" width="175" height="208" alt="Datepicker" /> 
    			<br /> 
    				With Button Bar 
    			</p> 
     
    			<p class="left_col_4"> 
    			<img src="images/datepicker_4.png" width="175" height="208" alt="Datepicker" /> 
    			<br /> 
    				Month &amp; Year Menus 
    			</p> 
    		</div> 
     
    		<!-- Right Content Div --> 
    		<div class="content_2"> 
    			<h2>Datepicker</h2> 
    			<p> 
    				<a href="http://jqueryui.com/demos/datepicker/" target="_blank" title="Datepicker">Datepicker</a> is tied to form field input. A user can choose a date for the form field from an interactive calendar displayed in a small overlay using this function. 
    			</p> 
    			<p>		 
    				To display the Datepicker embedded inline on a web page, call the .datepicker() on a div instead of a form field. 
    			</p> 
    			<p> 
    				You can set the Datepicker to be displayed when clicking an icon. You can also set the Datepicker to display multiple months. 
    			</p>		 
    			<p> 
    				The Datepicker function has a variety of settings including animations, month and year menus, dates in other months, display button bar, localize calendar and more. 
    			</p> 
    			<p> 
    			<a href="http://jqueryui.com/demos/datepicker/" target="_blank" title="Learn More">Learn More</a> 
    			</p> 
    		</div> 
     
    	</div> 
    	<!-- End Content Container Div --> 
     
    	</div> 
    <!-- End Panel #3 --> 
     
     
    <!-- Panel #4 --> 
    	<h3><a href="#section4">Dialog</a></h3> 
    	<div> 
     
    	<!-- Begin Content Container Div --> 
    	<div class="content_container_main"> 
     
    		<!-- Left Content Div --> 
    		<div class="content_1"> 
    			<img src="images/dialog_1.png" width="350" height="197" alt="Dialog" /> 
    			<p> 
    				Basic Modal Dialog 
    			</p> 
    			<img src="images/dialog_2.png" width="350" height="207" alt="Dialog" /> 
    			<p> 
    				Modal Message 
    			</p> 
    		</div> 
     
    		<!-- Right Content Div --> 
    		<div class="content_2"> 
    			<h2>Dialog</h2> 
    			<p> 
    				A <a href="http://jqueryui.com/demos/dialog/" target="_blank" title="Dialog">Dialog</a> is a floating window displayed in an overlay that covers the entire web page content. It contains a title bar, small to medium sized content area and can be closed with an "x" icon. 
    			</p> 
    			<p> 
    				A scrollbar will automatically appear if the content length exceeds the maximum height. 
    			</p>	 
    			<p>		 
    				The jQuery UI Dialog can be animated by specifying the desired effect in the JavaScript code. You must include the individual effects file for 	any effects you would like to use. 
    			</p> 
    			<p> 
    				You can set the dialog so that it creates a modal message or a modal confirmation that a user must click on before continuing with the application. 
    			</p>		 
    			<p> 
    			<a href="http://jqueryui.com/demos/dialog/" target="_blank" title="Learn More">Learn More</a> 
    			</p> 
    		</div> 
    	</div> 
    	<!-- End Content Container Div --> 
     
    	</div> 
    <!-- End Panel #4 --> 
     
     
    </div> 
    <!-- End Accordion --> 
     
    </div> 
    <!-- End Accordion Container -->
    

    标记细目

    大多数 jQuery UI 小部件都被编程为扩展到它们所在内容区域的 100% 宽度。

    容器 div“content_container_2”已在 CSS 中设置为固定宽度 800px,以便内容区域不会扩展屏幕的整个宽度。

    手风琴使用

    标签来创建标题和内容面板:

     
    <div id="accordion"> 
        <h3><a href="#">First header</a></h3> 
        <div>First content</div> 
        <h3><a href="#">Second header</a></h3> 
        <div>Second content</div> 
    </div>
    

    如果你想在手风琴的内容部分使用

    标签,你需要添加一个 CSS 类,例如:

     
    <div> 
       <h3 class="subtitle">Subtitle</h3> 
    </div>
    

    要格式化您的内容

    字幕,您可以将该类添加到 CSS 样式表 style.css 并根据需要设置格式:

     
    #accordion  h3.subtitle	{ 
    	font-size: 18px;  
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; 
    	font-weight: bold;	 
    	color: #009999; 
    }
    

    CSS(样式.css)

    将以下 CSS 代码添加到 style.css:

     
    /*  Containers 
    --------------------------------------------------- */ 
     
    .content_container_2	{ 
    	width: 800px; 
    	margin: 50px 0px 0px 20px; 
    } 
     
    /*  Accordion  
    --------------------------------------------------- */ 
     
    #accordion .content_container_main	{ 
    	width: 750px; 
    } 
     
    #accordion .content_1	{ 
    	width: 400px; 
    	float: left; 
    	font-size: 14px; 
    	text-align: center; 
    } 
     
    #accordion .content_2	{ 
    	width: 290px; 
    	float: left; 
    	font-family: Arial, Helvetica, sans-serif; 
    	font-size: 16px; 
    	margin: 0px 0px 0px 30px; 
    } 
     
    #accordion img 	{ 
    	padding: 8px; 
    	background-color: #aaa; 
    	margin: 10px 0px 5px 0px; 
    } 
     
    #accordion h2	{ 
    	margin: 5px 0px 10px 0px; 
    	padding: 0px; 
    	font-size: 30px;  
    } 
     
    #accordion p 	{ 
    	margin: 0px 0px 15px 0px; 
    	padding: 0px; 
    } 
     
    #accordion p.left_col_1, #accordion p.left_col_4 	{ 
    	float: left; 
    	margin: 0px; 
    	padding: 0px; 
    } 
     
    #accordion p.left_col_2, #accordion p.left_col_3 	{ 
    	float: right; 
    	margin: 0px; 
    	padding: 0px; 
    }
    

    jQuery(jquery-functions.js)

    通过在外部 JavaScript 文件 jquery-functions.js 中添加以下代码来初始化手风琴。

     
    // jQuery UI Accordion 
    	 
    $(function() { 
    	var icons = { 
    		header: "ui-icon-circle-arrow-e", 
    		headerSelected: "ui-icon-circle-arrow-s" 
    	}; 
    	$( "#accordion" ).accordion({ 
    		icons: icons 
    	});		 
    });
    

    jQuery 分解

    要使用默认功能初始化手风琴,您只需要以下基本代码行:

     
    $(function() { 
    	$( "#accordion" ).accordion(); 
    });
    

    jQuery UI 手风琴包含一个图标选项,允许您为“header”和“headerSelected”指定图标,并且 jQuery 代码的前半部分是设置图标的位置。默认手风琴图标的 CSS 类是“.ui-icon-triangle-1-e”和“.ui-icon-triangle-1-s”。

    基本演示(演示 2)中包含的手风琴已经过自定义,以便使用其他 jQuery UI 图标而不是默认图标。对于基本演示,图标已更改为“header: ui-icon-circle-arrow-e”和“headerSelected: ui-icon-circle-arrow-s”。

    注意: 将类添加到 jQuery 代码时不要包含“点”。例如,您可以编写 header: "ui-icon-circle-arrow-e" 而不是 header: ".ui-icon-circle-arrow-e"。

    自定义 jQuery UI CSS

    本教程的自定义 CSS 样式表参考部分包含设置小部件样式所需的特定类和代码。每行 CSS 代码都解释了它的作用以及它将如何改变小部件的样式。其他详细信息请参见参考部分简介。

    样式表参考的这些部分包含将样式应用于折叠式小部件的 jQuery UI 类:

    • 自定义 CSS 样式表参考 - 组件容器
    • 自定义 CSS 样式表参考 - 交互状态
    • 自定义 CSS 样式表参考 - 默认 UI 图标

    例如,如果您想更改悬停时显示的手风琴面板的背景图像/渐变,您可以查看“交互状态”部分中列出的类。本节顶部列出了四种交互状态的说明。由于这是“悬停”状态,因此“.ui-state-hover”类适用于此折叠面板。

    查看包含“.ui-state-hover”类并包含 CSS 背景图像的行的 CSS 代码示例。此示例代码行包含类和 CSS 背景图像:

     
    .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #191919; background: #000 url(images/ui-bg-3.png) 50% 50% repeat-x; font-weight: bold; color: #fff; }
    

    现在您已经找到了适当的代码示例,请在 jQuery UI 主题样式表中找到这行代码,并将背景图像替换为您自己的自定义图像。

    请记住:所有 ThemeRoller 主题都具有相同的 CSS 类。因此,每个默认主题中的类名称都完全相同。但是,CSS 代码和样式可能不同。


    jQuery UI 按钮

    自定义 jQuery UI 小部件主题的综合指南

    jQuery UI 按钮小部件可用于增强标准表单元素,例如提交和重置按钮、单选按钮和复选框。当使用此小部件作为输入和提交类型的按钮时,支持仅限于不带图标的纯文本标签。

    HTML

    要将 jQuery UI 按钮(带图标)添加到您的 .html 网页,请添加以下代码:

     
    <!-- Begin Buttons Container --> 
     
    <div class="content_container_3"> 
     
    <h2>Button</h2> 
     
    <div class="demo"> 
    	<button>Button with icon only</button> 
    	<button>Button with icon on the left</button> 
    	<button>Button with two icons</button> 
    	<button>Button with two icons and no text</button> 
    	<button>Button with text only</button> 
    </div> 
     
    </div> 
    <!-- End Buttons Container -->
    

    CSS(样式.css)

    将以下 CSS 代码添加到 style.css:

     
    .content_container_3	{ 
    	width: 950px; 
    	margin: 50px 0px 20px 20px; 
    }
    

    jQuery(jquery-functions.js)

    通过在外部 JavaScript 文件 jquery-functions.js 中添加以下代码来初始化按钮。

     
    // jQuery UI Button 
     
    // First Button 
    	$(function() { 
    		$( ".demo button:first" ).button({ 
                icons: { 
                    primary: "ui-icon-locked" 
                }, 
                text: false 
    // Second Button 
            }).next().button({ 
                icons: { 
                    primary: "ui-icon-locked" 
                } 
    // Third Button 
            }).next().button({ 
                icons: { 
                    primary: "ui-icon-gear", 
                    secondary: "ui-icon-triangle-1-s" 
                } 
    // Fourth Button 
            }).next().button({ 
                icons: { 
                    primary: "ui-icon-gear", 
                    secondary: "ui-icon-triangle-1-s" 
                }, 
                text: false 
    // Fifth Button 
            }).next().button({ 
    		}); 
    	});
    

    jQuery 分解

    这些按钮是通过在网页标记中使用 标签生成的。 jQuery 代码引用代码每个部分中的按钮。这些按钮也被放置在具有 CSS 类“demo”的

    中 (

    自定义 jQuery UI 小部件主题的综合指南

  • 以上就是自定义 jQuery UI 小部件主题的综合指南的详细内容,更多请关注编程之家其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐


    kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
    这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
    js如何实现弹出form提交表单?(图文+视频)
    js怎么获取复选框选中的值
    js如何实现倒计时跳转页面
    如何用js控制图片放大缩小
    JS怎么获取当前时间戳
    JS如何判断对象是否为数组
    JS怎么获取图片当前宽高
    JS对象如何转为json格式字符串
    JS怎么获取图片原始宽高
    怎么在click事件中调用多个js函数
    js如何往数组中添加新元素
    js如何拆分字符串
    JS怎么对数组内元素进行求和
    JS如何判断屏幕大小
    js怎么解析json数据
    js如何实时获取浏览器窗口大小
    原生JS实现别踩白块小游戏(五)
    原生JS实现别踩白块小游戏(一)