JQuery UI Различные CSS для вкладки и индикатор выполнения на одной странице - PullRequest
0 голосов
/ 11 ноября 2009

Я пытаюсь добавить индикатор выполнения JQueryUI на страницу, на которой уже есть стилизованная вкладка JQueryUI. Внешний вид панели вкладок и вкладок уже настроен с помощью CSS. Одно из значений CSS .ui-widget-header также используется для индикатора выполнения.

Как я могу заставить индикатор выполнения использовать другое определение этого стиля CSS, чем то, которое уже было определено, для того, чтобы вкладки выглядели правильно?

Это, в частности, свойство border, которое мне нужно изменить в стиле .ui-widget-header. Кажется, что я мог бы что-то сделать с 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>

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Вы можете переопределить стили пользовательского интерфейса, просто поместив свой CSS после ссылки на стили пользовательского интерфейса. Класс для индикатора выполнения

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

В вашей таблице стилей вы можете поместить:

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

Это должно перевесить стиль пользовательского интерфейса.

0 голосов
/ 12 ноября 2009

Мне удалось получить желаемое поведение, добавив эти записи CSS с помощью селектора идентификаторов, чтобы переопределить только те значения внутри моего идентификатора индикатора выполнения:

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;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...