【问题标题】:JQuery UI Different CSS for Tab Page and Progress Bar on Same Page同一页面上的标签页和进度条的 JQuery UI 不同的 CSS
【发布时间】:2009-11-12 11:14:12
【问题描述】:

我正在尝试将 JQueryUI 进度条添加到已经具有 JQueryUI 选项卡样式的页面。选项卡窗格和选项卡的外观已经通过 CSS 设置。 CSS 值之一 .ui-widget-header 也用于进度条。

如何使进度条使用与已定义的 CSS 样式不同的定义以使选项卡看起来正确?

特别是我认为我需要在 .ui-widget-header 样式中修改的边框属性。似乎我可以为 ID 特定标签使用 CSS 做一些事情,但我不确定如何完成。

以下是显示问题的示例 HTML 文件。我希望标签的样式与它们当前的样式相同,但希望进度条的样式不同(全边框、实心进度条)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css" type="text/css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
    <title>Test</title>
  </head>
  <body>
<script type="text/javascript" language="javascript">
<!--
//Tabs
$(function(){
    $('#tabs').tabs();
    $("#progressbar").progressbar({ value: 0 });
    setTimeout(updateProgress, 500);
});

function updateProgress() {
  var progress;
  progress = $("#progressbar")
    .progressbar("option","value");
  if (progress < 100) {
      $("#progressbar")
        .progressbar("option", "value", progress + 1);
      setTimeout(updateProgress, 500);
  }
}
// -->
</script>
<style type="text/css">
.ui-widget { font-family: Arial, sans-serif; font-size: 1.1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial, sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #ffffff; background: #ffffff}
.ui-widget-content a { color: #333333; }
.ui-widget-header { border: 1px solid #FFFFFF; border-bottom:solid 1px #056B2E; background:none; font-weight:normal;}
 </style>
  <div id="bodycontent">
    <!-- Tabs -->
    <div id="tabs">
      <ul>
        <li><a href="#tabs-1">test 1</a></li>
        <li><a href="#tabs-2">test 2</a></li>
      </ul>
      <div id="tabs-1">
        Test 1 Content
      </div>
      <div id="tabs-2">
        Test 2 Content
      </div>
    </div>
    <br/>
    <br/>
    <div id="progressbar"></div>
  </div>
  </body>
</html>

【问题讨论】:

    标签: jquery css jquery-ui


    【解决方案1】:

    您可以通过简单地将 CSS 放在 对 UI 样式的引用来覆盖 UI 样式。进度条的类是

    ui-progressbar-value ui-widget-header ui-corner-left
    

    在你的样式表中,你可以放:

    ui-progressbar-value ui-widget-header {border:1px solid #000000}
    

    这应该覆盖 UI 样式。

    【讨论】:

    • 当我将它放在现有的 ui-widget-header 条目之后时,这似乎也为页面上的选项卡重新定义了它。它们都共享 ui-widget-header 样式。我需要 Tab 部分使用一种样式,而 Progress Bar 部分需要使用另一种样式。
    【解决方案2】:

    通过使用 ID 选择器添加这些 CSS 条目来覆盖我的进度条 ID 中的那些值,我能够获得所需的行为:

    div#progressbar.ui-widget-content { border: 1px solid #000000; background:none; font-weight:normal;}
    div#progressbar .ui-widget-header { border: 1px solid #000000; background:none; font-weight:normal;}
    div#progressbar .ui-progressbar-value {background:#008B3A;}
    

    【讨论】:

    • 不错!请将您的答案标记为社区其他人的已解决。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 2023-03-16
    • 2011-10-11
    • 2011-10-13
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多