Carina Rosborg Thornval Ответов: 1

Как сделать так, чтобы меню "заполняло" следующую колонку по мере ее вертикального расширения


Пожалуйста, простите мое упрощенное описание, я все еще нахожусь в процессе ознакомления с кодированием.

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

Я использовал таблицу для размещения этого меню. Я хочу создать функцию, в которой меню может расширяться только до определенного момента, прежде чем оно начнет "заполнять" следующий столбец оставшейся частью меню.

Я также вставил в него часть своего кода.

Что я уже пробовал:

<script>

            $(document).ready(function(){
              $("#Project1").click(function(){
                $("p.Describtion1").toggle();
              });
            });

        </script>


body {
  font-family: 'Helvetica Neue';
  text-align: center;

  position: absolute;
  width: 100%;
}

#content {
  width: 100%;
  border-spacing: 0;

  margin-top: 200px;

}

#content td span {
  text-overflow: ellipsis;
  overflow : hidden;

  display: block;

  border-left: 7px solid #fff;
  border-right: 7px solid #fff;
  padding: 16px;
  vertical-align: top;
  text-align: left;
  font-size: 45px;

}


#content td {
  vertical-align: top;
  font-size: 45px;

}


#content td:nth-child(odd) {
  width: 30%;
}

#content td:nth-child(even) {
  width: 3%;
}


  #Project1:hover {
    text-decoration: underline;
      cursor: default;
  	}


p {

display: inline-block;
text-align: left;
padding-left:30px;
padding-right:30px;
font-size: 30px;

}


<table id="content">
    <tr>
        <td id="Project1">
                Wer Baut Der Stadt 2019
            <br>
                <p class="Describtion1" style="display:none;">
                Identity and Font developed for the lecture series on architecture conducted by No Image in Berlin. 
                </p>
            <br>
        </td>
        <td>2019</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>

Richard Deeming

Стол-это определенно неправильный подход.

То право подход будет зависеть от ваших точных требований. Он, вероятно, связаны либо многостолбцовый макет, макет на основе адаптируемых блоков, или сетке.

CSS Multi-column Layout - CSS: Каскадные Таблицы Стилей | MDN[^]
CSS Flexible Box Layout - CSS: Каскадные Таблицы Стилей | MDN[^]
CSS Grid Layout - CSS: Каскадные Таблицы Стилей | MDN[^]

1 Ответов

Рейтинг:
1

W∴ Balboos, GHB

Стратегия (от кого-то, кто также использует таблицы без сожалений.


- Вам нужно подумать, сколько строк вы хотите разрешить, прежде чем менять столбцы.
- Определите количество строк, которые вам нужно отобразить в вашем меню.
- Если порог превышен, то вы пользуетесь встроенные условные выражения в вашем коде это добавит второй столбец в вашу таблицу (перед </tr>)
- теперь заполните меню из двух столбцов своими данными: решите, будет ли второй столбец принимать "следующую" запись меню или вычислите смещение в свой массив и добавьте "новые" записи меню во второй столбец.

При первом способе заполнения второго столбца высота меню будет уменьшаться, когда вы поместите его во второй столбец. Во втором методе вы можете управлять высотой по своему усмотрению, и второй столбец будет заполнен "после" первого столбца.

Я использую аналогичную технику, хотя и только один столбец, для меню кнопок "левая сторона". Когда число приближается к полному столбцу, я уменьшаю размер шрифта, и они продолжают соответствовать. Очень немногие пользователи, кроме разработчиков и старшего руководства, видят этот эффект.