2016-05-24 8 views
0

У меня есть это понятие: https://jsfiddle.net/berhqd9a/Всегда отображать пролеты друг под другом с помощью CSS

Во-первых: Как я могу добиться, чтобы foo1 и foo2 отображаются друг под другом? Я думал, это то, что должен делать display: block?

Во-вторых: Как я могу достичь длинного перерыва foo вместо игнорирования границы div?

+0

@ все, включая ответы на все вопросы, используя фрагменты кода для размещения кода на этом сайте, а не jsfiddle. – Randy

+0

'inline-block' действует как блок, но позволяет помещать элемент' block' в одну строку. 'display: block' переместит его на следующую строку, как вы полагаете. Вы должны попробовать, прежде чем спросить. Чтобы длинный текст переместился на следующую строку, просто используйте 'word-wrap: break-word'. –

ответ

3

Updated fiddle

  1. display: block для отображения каждого диапазона в виде блока или вы можете использовать <br>, чтобы разбить линию и привести элементы к следующей строке.

  2. word-wrap: break-word; сломает длинный текст.

#main { 
 
    border: 1px solid black; 
 
    width: 100px; 
 
} 
 
.wrapper { 
 
    display: inline; 
 
} 
 
span { 
 
    display: block; 
 
    word-wrap: break-word; 
 
}
<div id="main"> 
 
    <p class="wrapper"> 
 
    <span>foo1</span> 
 
    <span>foo2</span> 
 
    <span>loooooooooooooooong foooooooooooooooooooo</span> 
 
    </p> 
 
</div>

2

https://jsfiddle.net/IA7medd/berhqd9a/1/

разбить длинный текст, который вы должны использовать word-wrap: break-word;, а также использовать display:block сделать foo1 и Foo2 отображаться друг под другом, вы можете также использовать width:100% с display:inline-block

span { 
     display: block; 
    word-wrap: break-word; 
} 
+0

Ничего себе, просто использование 'block' для внутреннего элемента было решением? Я был слишком уверен в том, что обертка отображается как «block» ... Также я не знал свойство word-wrap. Хорошо знать это сейчас. Большое спасибо! :) – Froxx

0

Froxx,

прямо сейчас у Вас есть

span { 
    display: inline-block; 
} 

вместо

span { 
    display: block; 
} 
1

Первыйdisplay: block - Отображает элемент как блочный элемент

Второй:, потому что текст это не распространяется есть место вам нужно, чтобы заставить текст распадаться с помощью этого правила word-break: break-all; или word-wrap: break-word;

CSS

#main { 
    border: 1px solid black; 
    width: 100px; 
} 

.wrapper { 
    display: inline-block; 
} 

span { 
    display: block; 
    word-break: break-all; 
} 

DEMO