2010-07-11 6 views
1

Вот что у меня есть. У меня есть дерево в GWT, настроенное для обработки только определенной глубины уровня детей, извлечение с сервера и обновление только в соответствии с тем, какие дети нажимают один раз. Я знаком с функциями addStyleName(), и я использовал это для стилизации цвета переднего плана определенных узлов дерева, и он оказался успешным в предыдущих версиях моего проекта (без вызовов сервера).GWT CSS игнорируется при обновлении

Вопрос сводится к тому, что любой из знакомых с GWT знает, почему мой пользовательский CSS будет переопределен при дочернем обновлении узла. Так, например, когда сервер обрабатывает узел, он отображается в моем собственном цвете CSS, но как только сервер показывает, что у него есть дочерние элементы, он добавляет к этому узлу и CSS цвет текста родительского возвращается к умолчанию.

Это все в предположении, что у меня нет вызовов removeStyleName() или никакого удаления/воссоздания. Кто-нибудь знаком с такой ситуацией?

Спасибо!

EDIT: Вот код, который я сузили его до

HTML

<html> 
<head> 
<link type="text/css" rel="stylesheet" href="test.css"> 
</head> 
<body> 
<p>blaghblagh</p> 
<div class="Foreground1"> 
    hey 
    <table style="white-space: nowrap;"> 
     <tbody> 
     <td style="vertical-align: middle;"> 
      <div style="display: inline;"> 
       ContinuingPromise '08 
      </div> 
     </td> 
    </tbody> 

</table> 

CSS:

body{ 
color: black; 
} 
.Foreground1{ 
color: green; 
} 

Если вы поместите этот код вверх, вы увидите ContinuingPromise как черный, хотя он находится в переднем плане div, который должен быть зеленым. Кроме того, слово «эй» станет зеленым. Я что-то пропустил? Еще раз спасибо

+0

Кроме того, в firebug CSS соответствующего узла отображается (в firebug), как если бы цвет отображался правильно, также firebug не показывает переопределение цвета любым другим правилом CSS. Может быть, что-то внутри GWT? –

+0

Возможной причиной может быть основной файл CSS GWT ('standard.css'), переопределяющий ваши классы CSS (хотя Firebug, похоже, не согласен) - попробовали ли вы поместить свой CSS-файл в верхнюю часть: http: // stackoverflow. ком/вопросы/2322779/GWT-тематический стиль-Переопределяет-мой-CSS-стиль/2323620 # 2323620? –

+0

Я никогда не вижу стандартного.css даже связанного, когда я просматриваю источник страницы. Кажется, что следующий цвет: применяемое правило находится в теле {color: black; }, и когда я изменяю это значение, оно влияет на обновленный цвет узлов (соответствующий узел). Поэтому по какой-то причине, когда узел обновляется, хотя он все еще находится внутри .Foreground1 {color: green;} div, он возвращается к определению цвета тела. Я тоже старался! Важно, но это не повлияло. :( –

ответ

1

Я не уверен, что это решило ваш первоначальный вопрос, но проблема цвета очень вероятна из-за используемого типа doctype. Если на странице html используется режим quirks, свойства стиля неправильно наследуются таблицей. См. http://reference.sitepoint.com/css/inheritance. Установка doctype или другого типа doctype может решить вашу проблему. Если вы используете какую-либо из панелей макета GWT, вам необходимо установить doctype на <!DOCTYPE html>, см. http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#Standards

+0

Отлично, это будет сделано. Я никогда не смотрел разницу между режимом quirks/standards, но теперь все имеет смысл теперь, когда я на самом деле столкнулся с проблемой хаха. Хотя, поскольку это довольно большой проект, о котором я не слишком хорошо знаком, я не хочу испортить любую из немногих панелей, которые могут быть неисправными. Я нашел обходное решение, чтобы просто добавить * после каждого класса, в котором была эта таблица, и это казалось Я буду помнить об этом в будущем, спасибо еще раз. –

Смежные вопросы