2015-02-27 4 views
1

Я хочу показать несколько divs как встроенный блок. Если я это сделаю:Как избежать пробелов в цикле?

<div class="container"> 
    <div class="cell">xx</div> 
    <div class="cell">xx</div> 
    <div class="cell">xx</div> 
</div> 

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

<div class="container"> 
    <div class="cell">xx</div><div 
     class="cell">xx</div><div 
     class="cell">xx</div> 
</div> 

другое решение заключается в следующем:

<div class="container"> 
    <div class="cell">xx</div><!-- 
    --><div class="cell">xx</div><!-- 
    --><div class="cell">xx</div> 
</div> 

оба из которых являются ужасными. Теперь мой вопрос: У меня есть C# foreach цикл, в котором я попытался последним решением (потому что первое решение будет неаккуратно):

<div class="container"> 
    <!-- 
    @foreach (string page in pages) 
    { 
     --><div class="cell"> 
      @Html.Action(page) 
     </div><!-- 
    } 
    --> 
</div> 

... но, конечно, это не будет компилировать (я получаю ошибка парсера). Какой чистый способ сделать это?

+1

Интересно, если это помогает: http://stackoverflow.com/questions/19038799/why-is-there-an-unexplainable-gap-between-these-inline-block-div -elements –

+0

Вы имеете в виду видимые пробелы на веб-странице? Или пробелы, которые видны только внутри кода? –

+0

почему вы избегаете цикла? дайте мне пример? –

ответ

1

Попробуйте использовать @:, как показано ниже: -

<div class="container"> 
    <!-- 
    @foreach (string page in pages) 
    { 
     @: --><div class="cell"> 
       @Html.Action(page) 
     @: </div><!-- 
    } 
    --> 
</div> 
+0

отлично. спасибо – ekkis

+0

@ ekkis..happy, чтобы помочь вам ... !!!! –

0

Я не совсем уверен, что я понимаю, что вы хотите, но чтобы сделать их «встык вверх», то float:left будет делать трюк, предполагая на «пространствах» вы имеете в виду вертикальная укладка:

<div class="cell" style="float:left;"> 
     @Html.Action(page) 
</div> 
+0

спасибо за предложение, но я не могу использовать floaters. они не ведут себя так же, как inline-block – ekkis

+0

ok, так что о пользовательском дочернем действии, которое просто строит строку без пробелов и возвращает. т. е. переместите построитель for for loop из представления и в контроллер. – rism

+0

Да, это было бы жизнеспособно, но теперь я должен думать о том, чтобы создать нечто общее, чтобы он мог создавать [div], [ol], [ul] и другие вещи, принимать аргументы за теги и т. Д., И я просто ненавижу делать такие вещи, когда я должен быть в состоянии сделать это в представлении более правильно – ekkis

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