2013-04-05 4 views
3

Durandal появляется автоматически добавить следующий встроенный стиль для элементов DIV оборачивать свои данные-просмотры:Отключить Durandal встроенный стиль

style="margin-left: 0px; margin-right: 0px; opacity: 1; display: block;" 

Это происходит как в Дюрандала и John Papa Hot Полотенце ASP.NET шаблоны SPA, которые использовать Дюрандал.

Этот встроенный стиль переопределяет мою внешнюю таблицу стилей, поэтому мне нужно отключить это поведение. Я предполагаю, что это вводится одним из файлов JavaScript, но я не могу для жизни меня, кажется, выяснить, где.

Кто-нибудь знает, как предотвратить добавление этого встроенного стиля?

ответ

6

Это устанавливается путем перехода «вход» (durandal/transition/entry.js). Похоже, конечная конечная точка перехода - это эти значения, и они не удаляются, когда переход завершен.

Вы можете избежать этого полностью, не используя переход. Это займет несколько шагов:

  1. В файле main.js измените ваш вызов app.setRoot(), чтобы удалить параметр «вход». Это предотвратит добавление настроек стилизации в контейнер оболочки.
  2. В файле shell.html удалите параметр перехода из компоновки привязки. Это предотвратит добавление настроек стиля в отдельные виды.

Другая возможность - создать свой собственный переход, который более совместим с вашими требованиями CSS.

+1

Спасибо f или решение! Я предположил, что это происходит в ** viewEngine.js ** или ** composition.js **, но никогда не давало переходу мысль. Вы также косвенно научили меня чему-то еще: метод '.css()' jQuery принимает имена свойств оболочки с верблюдом. Объясняет, почему мой поиск 'margin-left' ничего не изменил в файле ** entry.js **. – chrisjsherm

1

Поскольку переход на вход добавляет этот стиль к элементу верхнего уровня в вашем представлении - возможно, вы сможете просто обернуть свой текущий контент с помощью другого div и дать ему возможность применить эти значения.

До:

<div class="container-narrow">  
    <div class="row-fluid"> 
     <div class="span12"> 
      <h2>Title</h2> 
      .... 
     </div> 
    </div> 
</div> 

После:

<div> 
    <div class="container-narrow">  
     <div class="row-fluid"> 
      <div class="span12"> 
       <h2>Title</h2> 
       .... 
      </div> 
     </div> 
    </div> 
<div> 

Это сработало в моем случае, когда я был центрирование контейнера узкого DIV с

.container-narrow 
{ 
margin: 0 auto; 
max-width: 400px; 
} 

который заблудиться пост- переход

+0

+1 Это хорошее решение, когда вы хотите сохранить переход, но центрируете определенные виды (например, логин). – Tyrsius

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