webkit-transition, аномалия при использовании width:auto
У меня есть боковая панель навигации в стандарте <ul><li><a></a></li></ul>
шаблон, который усекает полный текст ссылок, используя переполнение скрыто. После наведения в течение 1 с я хочу, чтобы якорь расширялся по ширине, показывая полный текст ссылки.
У меня эта функциональность полностью работает в CSS, но я сталкиваюсь с аномалией: у меня ширина якоря установлена на Auto on:hover. После срабатывания задержки в 1 с ширина привязки привязывается к 0, а затем расширяется до полной ширины.
ниже мой css, и здесь вы можете увидеть мой текущий код в действии: http://eventfeedstl.com/day/07182011/
.day .sidebar{
width: 200px;
}
.day .sidebar ul {
list-style: none;
padding: 0;
margin:0;
position: absolute;
width: auto;
}
.day .sidebar ul li{
border-bottom: 1px solid #626666;
display: relative;
width: 200px;
}
.day .sidebar ul li:hover{
width: auto;
}
.day .sidebar ul li a{
font-weight: normal;
font-size: .8em;
color: #f2f2f2;
display: block;
width: auto;
padding: 4px 5px;
background: none;
width: 190px;
height: 10px;
overflow: hidden;
position: relative;
z-index: 10;
-webkit-transition: background 1.3s ease-out;
-moz-transition: background 1.3s ease-out;
transition: background-color 1.3s ease-out;
}
.day .sidebar ul li a:hover {
background: #797979;
-webkit-transition: background 0.15s;
-moz-transition: background 0.15s;
transition: background 0.15s;
text-decoration: none;
width: auto;
-webkit-transition-property:width;
-webkit-transition-delay:1s;
position: relative;
}
2 ответа
Вы перезаписываете свои переходы между фоном и шириной, что, вероятно, вызывает проблемы. Есть способ установить несколько переходов, но я уверен, что этот способ вызовет проблемы.
Но
В общем переход на auto
пока не работает. Мне нравится использовать min-width и max-width в этих случаях, чтобы приблизить эффект.
Решение для переключения между определенной шириной и авто: единственный способ получить ширину: авто; Переходы к надежной работе - это явная установка ширины элементов с помощью Javascript. Я знаю, что это побеждает цель использования CSS-переходов, но вот как я заставил это работать:
$(".author").each(function() {
$(this).width( $(this).width() );
});
а потом в css
.author:hover { width: 200px; !important }
РЕДАКТИРОВАТЬ: Вот чистое решение CSS для переключения между 0 и авто: переход CSS не работает для процентной высоты?