Буквы вертикальной навигации CSS

Я очень новичок, пытаюсь реализовать вертикальную навигацию, где даже ссылки и буквы вертикальны. До сих пор я делал все вертикально, но теперь у меня проблемы с хлюпанием ссылок, потому что у них нет места?

На рисунке 1 вы видите, что я пытаюсь сделать, а на рисунке 2 показано, что я уже сделал.

Не уверен, должен ли дисплей быть блочным или встроенным блоком.

вертикальная навигация Буквы вертикальной навигации CSS

Буквы вертикальной навигации CSS

Вот мой код: html (с php)

    <div class = "container">
  <div class = "navigation">
    <div class = "navigation__left">
      <a class = "header__logo" href = "<?= home_url(); ?>"><?php bloginfo('name'); ?></a>
    </div>
    <nav aria-label = "primary">
      <div class = "inner">
        <?php dazy_top_nav(); ?>
      </div>
    </nav>
  </div>
</div>

СКСС:

.menu {
  margin: 5px 0 0;
  padding: rem-calc(100 20);
  list-style: none;
  font-size: rem-calc(22);
  text-align: center;
  @include breakpoint($medium) {
    margin: rem-calc(0 -15);
    padding: 0;
    font-family: $regular;
    font-size: unquote("clamp(0.938rem, 0.5vw + 0.8rem, 1.375rem)");
    font-weight: 400;
    line-height: unquote("clamp(1.25rem, 0.9vw + 1rem, 2.125rem)");
    letter-spacing: -0.01em;
    text-align: initial;
  }
  &__item {
    padding: rem-calc(10 0);
    width: 100%;
    white-space: nowrap;
    @include breakpoint($medium) {
      padding: rem-calc(20 0);
    }
  }
  &__link {
    color: $black;
    text-decoration: none;
    display: block;
    transform: rotate(-90deg);

и:

.navigation {
  height: 100%;
  width: 49px;
  position: fixed;
  top: 0;
  left: 0;
  background-color: #ffffff;
  overflow-x: hidden;
  padding-top: 20px;
  .inner {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    position: fixed;
    list-style: none;
    background-color: $white-fever;
    transition: transform linear 300ms;
    visibility: hidden;
    @include breakpoint($medium) {
      padding: 0;
      transform: translateY(0);
      flex-direction: row;
      background-color: transparent;
      position: relative;
      visibility: visible;
      transition: none;
    }
    .is-open & {
      transform: translateY(0);
    }
  }
}
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Быстрым решением было бы использовать комбинацию обоих:

  • writing-mode: vertical-lr;
  • transform: rotate(0.5turn);

Вот быстрый пример:

ul {
  list-style: none;
  writing-mode: vertical-lr;
}

li {
  display: inline-block;
  transform: rotate(0.5turn)
}


/* Next two rules are just here to show you the space taken by the links */
li a {
  background-color: #ccc;
}

li:nth-child(odd) a {
  background-color: #999;
}
<ul>
  <li><a href = "">item 1</a></li>
  <li><a href = "">item 2</a></li>
  <li><a href = "">item 3</a></li>
  <li><a href = "">item 4</a></li>
  <li><a href = "">item 5</a></li>
  <li><a href = "">item 6</a></li>
  <li><a href = "">item 7</a></li>
  <li><a href = "">item 8</a></li>
  <li><a href = "">item 9</a></li>
  <li><a href = "">item 10</a></li>
</ul>

Дополнительная информация: определение режима записи на MDN

The writing-mode CSS property sets whether lines of text are laid out horizontally or vertically, as well as the direction in which blocks progress. When set for an entire document, it should be set on the root element (html element for HTML documents).

Другие вопросы по теме