(Примечание. По соображениям совместимости для этого я могу использовать только HTML и CSS).
У меня есть div
содержащий тег h4
. То, что заканчивается, - это мой h4
тег с автоматической заданной шириной, основанной на том, сколько текста включено. Однако, когда я включаю его под div
теге div
автоматически использует width:100%
вместо окружающего тега, как я хочу его. Это становится проблемой, потому что, когда я меняю цвет div
помощью hover
я вижу тонну лишнего незаполненного пространства.
Вот один из примеров проблемы, которую я испытываю:
<a href='./HH.html'>
<div id='homenav'>
<h4>
HH
</h4>
</div>
</a>
Это мой текущий CSS:
h4{padding:0px;Margin:5px;}
#homenav
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
background: #e8edff;
color: #669;
text-align:center;
vertical-align: middle;
display:-webkit-box;
-webkit-box-pack:left;
-webkit-box-align:left;
display:-moz-box;
-moz-box-pack:left;
-moz-box-align:left;
border-radius: 5px;
padding: 2px;
width:auto;
}
#homenav:hover
{
background:#D0DAFD;
color:#333399;
}
Вы можете добавить отображение: inline-block в родительский div и удалить атрибут width.
Пример:
HTML:
<div class="container">
<h2>Text</h2>
</div>
CSS:
.container {
display: inline-block;
}
Вы можете использовать display: table
. См. Ваш пример: http://jsfiddle.net/cArg7/1/
h4{padding:0px;Margin:5px;}
#homenav
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
background: #e8edff;
color: #669;
text-align:center;
vertical-align: middle;
border-radius: 5px;
padding: 2px;
width:auto;
display: table;
}
#homenav:hover
{
background:#D0DAFD;
color:#333399;
}
И упростите html-код, <a>
теги <a>
и <div>
:
<a href='./HH.html' id='homenav'>
<h4>
HH
</h4>
</a>
Установка display
родительского div на inline-block
приведет к тому, что родительский div будет разделен на ширину текста. См. Это в качестве примера.
<a>
и<div>
. jsfiddle.net/cArg7/1