KendoUI Splitter ломает стили начальной загрузки
У меня есть некоторый HTML, который я добавляю в контейнер KendoUI Splitter, и ему назначен загрузочный css. Стили прекрасно работают, когда HTML находится вне сплиттера, но они ломаются, когда находятся внутри сплиттера.
Как я могу решить это?
Вот простая скрипка, которая демонстрирует проблему: http://jsfiddle.net/codeowl/9Ag3X/17/
Вот код:
<div class="spacer"></div>
<div id="StandardDiv">
</div>
<div class="spacer"></div>
<div id="splitter"
data-role="splitter"
data-panes="[
{ collapsible: false, size: '30px' },
{ collapsible: false }
]">
<div id="LeftPane"></div>
<div id="RightPane"></div>
</div>
<script id="TestTemplate">
<div class="panel panel-default">
<div class="panel-heading ma-panel-heading">Edit User Details:</div>
<div class="panel-body">
<table class="form-uiview-add_edit">
<tr>
<td>
<label >Username:</label>
<input type="text" class="form-control" />
</td>
<td>
<label >Password:</label>
<input type="password" class="form-control" />
</td>
</tr>
<tr>
<td>
<label >First Name:</label>
<input type="text" class="form-control" />
</td>
<td>
<label >Last Name:</label>
<input type="text" class="form-control" />
</td>
</tr>
<tr>
<td>
<label >Email:</label>
<input type="text" class="form-control" />
</td>
<td>
<div class="checkbox">
<label>
<input type="checkbox" value="1" />
Account is Active
</label>
</div>
</td>
</tr>
</table>
<div class="pull-right">
<button class="btn btn-default" >
Cancel
</button>
<button class="btn btn-default" >
Save
</button>
</div>
</div>
</div>
</script>
Вот Javascript:
$(document).ready(function() {
var eTestTemplate = $('#TestTemplate');
$('#StandardDiv').append(eTestTemplate.html());
kendo.bind($('#splitter'), {});
$('#RightPane').append(eTestTemplate.html());
});
Вот CSS:
table.form-uiview-add_edit {
width:100%;
}
.form-uiview-add_edit td {
padding:5px;
}
.spacer {
height:20px;
}
Используя инструменты разработчика Chrome, я обнаружил, что после рендеринга панели разделителя div присваивается класс k-widget. Если я отредактирую div в инструменте dev и удаляю класс k-widget, форма отображается так, как и должно быть, с отступом 5px в ячейках таблицы, помещая пространство между текстовыми вводами.
Но я еще не сузил, что именно в классе k-widget нарушает стили начальной загрузки.
Спасибо за ваше время,
С Уважением,
Скотт
1 ответ
Хорошо, я решил проблему!
Класс k-widget назначает следующий CSS:
.k-widget, .k-widget * {
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
Эти стили нарушают отступы в таблице и стили начальной загрузки.
Я решил это с помощью следующего CSS в моей форме:
.form-uiview-add_edit * {
-moz-box-sizing: border-box !important;
-webkit-box-sizing: border-box !important;
box-sizing: border-box !important;
}
Вот обновленная скрипка: http://jsfiddle.net/codeowl/YV8Jx/4/
Надеюсь, это сэкономит кому-то еще время.
С Уважением,
Скотт