webkit-transition, аномалия при использовании width: auto - PullRequest
9 голосов
/ 17 июля 2011

У меня есть боковая панель навигации в стандартном шаблоне <ul><li><a></a></li></ul>, которая усекает полный текст ссылок, используя переполнение скрытого После наведения в течение 1 с я хочу, чтобы якорь расширялся по ширине, показывая полный текст ссылки.

У меня эта функциональность полностью работает в CSS, но я сталкиваюсь с аномалией: У меня ширина якоря установлена ​​на Авто: 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 ]

21 голосов
/ 19 июля 2011

Вы перезаписываете свои переходы между фоном и шириной, что, вероятно, вызывает проблемы.Есть способ установить несколько переходов, но я уверен, что этот способ вызовет проблемы.

Но

В целом переход на auto пока не работает.Мне нравится использовать min-width и max-width в этих случаях, чтобы приблизить эффект.

6 голосов
/ 25 января 2012

Решение для переключения между определенной шириной и авто: единственный способ получить ширину: авто;Переходы к надежной работе - это явная установка ширины элементов с помощью Javascript.Я знаю, что это побеждает цель использования переходов CSS, но вот как я заставил это работать:

$(".author").each(function() {
  $(this).width( $(this).width() );
});

и затем в css

.author:hover { width: 200px; !important }

РЕДАКТИРОВАТЬ:Решение CSS для переключения между 0 и авто: Переход CSS не работает для высоты в процентах?

...