2015-06-20 2 views
0

Мое требование состоит в том, чтобы элемент h3 занимал только такое количество места, как текст в нем. Нельзя напрямую использовать span. Я пытался инкапсулировать h3 элемент с span, но это не сработало. Красный цвет должен иметь только ширину, как мир приветствия.Создание элемента h3 занимает пробел как текст внутри него

HTML код:

<div class="parent"> 
    <h3 class="center">hello world</h3> 
</div> 

код CSS:

.parent { 
    padding-left:5px; 
    overflow:auto; 
    background-color:blue; 
} 

.center { 
    text-align:center; 
    overflow:auto; 
    background-color:red; 
} 

JSFiddle

+0

h3 является 'block' элемент, который не может выполнить ваши требования, вы aither должны плавать обернуть его, или использовать' рядный block' – Eric

ответ

3

Вы можете использовать встроенный макет в h3.center элемента (например, inline-block). Если вы хотите центр h3 после этого, вы можете применить text-align: center к .parent

JSFiddle

3

вы можете использовать поверочный элемент вместо h3, но если вы хотите h3, просто добавьте эту строку, она будет хотя удалить центрирование

display:inline-block; 

и если вы хотите, чтобы центр его, а затем добавить

text-align:center 

т о родительском сНу CSS

1

Вы не можете использовать пролет? Что делать, если я использую не диапазон?

.parent { 
 
    padding-left:5px; 
 
    overflow:auto; 
 
    background-color:blue; 
 
} 
 

 
.center { 
 
    text-align:center; 
 
    overflow:auto; 
 
    
 
} 
 
notaspan{ 
 
    background-color:red; 
 
}
<div class="parent"> 
 
    <h3 class="center"><notaspan>hello world</notaspan></h3> 
 
</div>

0
.center {  
     text-align:center; 
     overflow:auto; 
     background-color:red; 
     position:absolute; 
     left:50%; 
     top:50%; 
     transform:translate(-50%,-50%); 
} 

При этом, вам не нужно, чтобы изменить HTML или параметры отображения. Если установка абсолютного значения на h3 вызывает проблемы, вы можете установить значение .parent в relative. Вы даже можете удалить text-align:center;, я верю.

1

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

.parent { 
 
    background-color:blue; 
 
} 
 
.center { 
 
    background-color:aqua; 
 
    display:table; /*shrink to fit width*/ 
 
    margin:auto; /*center it*/ 
 
}
<div class="parent"> 
 
    <h3 class="center">hello world</h3> 
 
</div>

+0

Похоже, излишним для этот точный вопрос. _Но конечно работает. – potashin

+0

@suslov, что вы имеете в виду, переполнив его? лучше иметь некоторые различия, а не повторять все тот же ответ снова и снова ... нет? – Stickers

+0

Моя точка зрения заключается не в том, что это _состояние плохое, просто с моей точки зрения желаемый результат может быть достигнут с использованием более ортодоксальных инструментов, вот и все. Во всяком случае, не обижайся. – potashin

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