«text-художественное оформление: подчеркивание» вызывает дрожание анимации в выпадающем меню очень неприятным образом - PullRequest
0 голосов
/ 28 марта 2020

введите описание изображения здесь

.user-nav {
  align-self: stretch;
  display: flex;
  align-items: center; }
  .user-nav > * {
    padding: 0 2rem;
    cursor: pointer;
    height: 100%;
    display: flex;
    align-items: center; }
  .user-nav > *:hover {
    background-color: grey; }



  .user-nav__user {
    position: relative; }
  .user-nav__user:hover .user-nav__profile-dropdown {
    opacity: 1;
    width: 150%; }
    
  .user-nav__profile-dropdown {
    position: absolute;
    top: 100%;
    right: -.1rem;
    background-color: white;
    font-size: 12px;
    text-transform: uppercase;
    opacity: 0;
    width: 0;
    border-radius: 0 0 .5rem .5rem;
    overflow: hidden;
    box-shadow: 0 2rem 4rem rgba(0, 0, 0, 0.25);
    transition: opacity .3s; }
    
  .user-nav__profile-list {
    list-style: none; }
    
  .user-nav__profile-item {
    position: relative;
    padding: 1.5rem;
    z-index: 1; }
    .user-nav__profile-item:not(:last-child) {
      border-bottom: 1px solid #f4f2f2; }
    .user-nav__profile-item::before {
      content: " ";
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      background-color: black;
      overflow: hidden;
      width: 0;
      z-index: 0;
      opacity: 0;
      transition: opacity .1s; }
      
  .user-nav__profile-link {
    text-decoration: none;
    color: grey;
    display: flex;
    align-items: center;
    z-index: 1;
    transition: all .3s; }
    

  .user-nav__profile-item:hover::before {
    width: 100%;
    opacity: 1; }
    

  .user-nav__profile-item:hover .user-nav__profile-link {
    color: white;
    border-bottom: 1px solid white; }
<nav class="user-nav">
  <div class="user-nav__user">
    <span class="user-nav__user-name">James</span>
    
    <div class="user-nav__profile-dropdown">
      <ul class="user-nav__profile-list">
        <li class="user-nav__profile-item">
          <a href="#" class="user-nav__profile-link">
            <span class="user-nav__profile-link">Profile</span>
          </a>
        </li>
        <li class="user-nav__profile-item">
          <a href="#" class="user-nav__profile-link">
            <span class="user-nav__profile-link">Settings</span>
          </a>
        </li>
        <li class="user-nav__profile-item">
          <a href="#" class="user-nav__profile-link">
            <span class="user-nav__profile-link">Orders</span>
          </a>
        </li>
        <li class="user-nav__profile-item">
          <a href="#" class="user-nav__profile-link">
            <span class="user-nav__profile-link">Logout</span>
          </a>
        </li>
      </ul>
    </div>
  </div>

Текст дрожит, когда подчеркивание применяется.

Пока что я искал stackOverflow и нашел эту ссылку . Это говорит о кнопке с другой проблемой, и они предлагают использовать псевдоэлемент :: after.

Еще одна вещь, которую я прочитал, - это использование backface-visibility: hidden; Но безрезультатно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...