Відповіді:
Уявіть <span>
елемент усередині a <div>
. Якщо надати <span>
елементу висоту 100 пікселів і, наприклад, червону облямівку, це буде виглядати так
дисплей: вбудований
дисплей: вбудований блок
дисплей: блок
Код: http://jsfiddle.net/Mta2b/
Елементи з - display:inline-block
це як display:inline
елементи, але вони можуть мати ширину і висоту . Це означає, що ви можете використовувати елемент вбудованого блоку в якості блоку під час перенесення його в текст або інші елементи.
Різниця підтримуваних стилів як резюме:
margin-left
, margin-right
, padding-left
,padding-right
margin
, padding
, height
,width
p
, наприклад , div
отримують лінію по всій ширині (примушують розрив лінії), але враховують ширину / висоту та всі горизонтальні / вертикальні прокладки / поля. Елементи вкладеного блоку мають таку поведінку, як і блок, але без розриву всієї лінії (поруч з ними можна розмістити інші елементи)
display: inline;
- це режим відображення, який слід використовувати у реченні. Наприклад, якщо у вас є абзац і ви хочете виділити одне слово, яке ви робите:
<p>
Pellentesque habitant morbi <em>tristique</em> senectus
et netus et malesuada fames ac turpis egestas.
</p>
<em>
Елемент має display: inline;
за замовчуванням, так як цей тег завжди використовується в реченні. <p>
Елемент має display: block;
за замовчуванням, тому що ні пропозиція , ні в реченні, це блок пропозицій.
Елемент з display: inline;
не може мати а, height
а width
чи вертикаль margin
. Елемент з display: block;
може мати і width
, height
і margin
.
Якщо ви хочете додати елемент height
до <em>
елемента, вам потрібно встановити цей елемент display: inline-block;
. Тепер ви можете додати height
елемент до елемента та будь-який інший стиль блоку ( block
частина inline-block
), але він розміщений у реченні ( inline
частині inline-block
).
display
значень.
Одне, що не згадується у відповідях, це те, що вбудований елемент може перериватися між рядками, тоді як вбудований блок не може (і очевидно блокувати)! Таким чином, вбудовані елементи можуть бути корисними для стилювання речень тексту та блоків всередині них, але оскільки вони не можуть бути прокладеними, ви можете використовувати замість висоти рядка .
<div style="width: 350px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<div style="display: inline; background: #F00; color: #FFF">
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<hr/>
<div style="width: 350px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<div style="display: inline-block; background: #F00; color: #FFF">
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
Усі відповіді вище надають важливу інформацію щодо оригінального питання. Однак є узагальнення, яке здається неправильним.
Можна встановити ширину і висоту принаймні одному вбудованому елементу (що я можу придумати) - <img>
елементу.
Тут і в цьому дублікаті прийняті відповіді, що це неможливо, але це не здається дійсним загальним правилом.
Приклад:
img
Має display: inline
, але його width
і height
були успішно встановлені.
Відповідь splattne, ймовірно, охоплювала більшу частину всього, тому я не повторюю те саме, але: inline
і inline-block
поводитися по-різному з direction
властивістю CSS.
У наступному фрагменті, який ви бачите one two
(для порядку), відображається, як це робиться в макетів LTR. Я підозрюю, що браузер тут автоматично визначив англійську частину як текст LTR і виводив її зліва направо.
body {
text-align: right;
direction: rtl;
}
h2 {
display: block; /* just being explicit */
}
span {
display: inline;
}
<h2>
هذا عنوان طويل
<span>one</span>
<span>two</span>
</h2>
Тим НЕ менше, якщо я йду вперед і набір display
в inline-block
браузер , здається, поважати direction
власність і роблять елементи справа наліво в порядку, так що two one
виявляється.
body {
text-align: right;
direction: rtl;
}
h2 {
display: block; /* just being explicit */
}
span {
display: inline-block;
}
<h2>
هذا عنوان طويل
<span>one</span>
<span>two</span>
</h2>
Я не знаю, чи є якісь інші примхи до цього, про це я дізнався лише емпірично в Chrome.