Создание html-элементов таблицы, реагирующих на горизонтальную прокрутку - PullRequest
0 голосов
/ 21 декабря 2018

Я знаю, что в Интернете есть много об этом, но я не могу заставить элементы внутри таблицы реагировать на приложение с горизонтальной прокруткой.

Я сделал сам стол отзывчивым, обернув всю свою таблицу в

<div style="overflow-x:auto;"></div>

Как вы можете видеть по правильным полям на боковой стороне стола.

enter image description here

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

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

enter image description here

Использование meta на viewport не делает таблицу отзывчивой.Я думаю, что это может быть файл html4, но я не уверен, как точно знать, основываясь на коде в файле, поэтому я включил HTML-код ниже.

Я пытался использовать медиа-запросы, такие как

@media only screen and (max-width: 1000px) {
  body {
    background-color: lightblue;
  }
}

Просто чтобы проверить, могу ли я заставить его работать, но это даже не меняет цвет фона приложения, когда ширина1000px или меньше.

Неважно, если я укажу центр, влево или вправо, текст будет обрезан при уменьшении таблицы.

ОБНОВЛЕНИЕ:

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

enter image description here

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

Мне бы хотелось, чтобы приложение выглядело так, как показано ниже:

enter image description here

Заголовок должен быть отзывчивым, оставаясь подключенным кобщая таблица.

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

Вот HTML:

<?!= HtmlService.createHtmlOutputFromFile('Stylesheet').getContent(); ?>

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>

    <div>
        <h2 id="title" class="hidden" align="center">OIT Facilities Costs<p id="subtitle">by location<p>
        </h2>
    </div>

    <p>This application visualizes 3 kinds of data </p>
    <br>
    <div id="dashboard1-div" align="center">
        <div id="charts1-div">

            <div id="tablediv">
                <div style="overflow-x:auto;">
                    <table class="container">


                        <tbody>

                            <tr id="tr-test">
                                <td>

                                    <p id="table1-heading" class="hidden">OIT Work Order Maintenance Costs</p>


                                    <button id="OIT-btn" onclick="OITbutton()">View</button>
                                </td>

                            </tr>
                        <tbody>


                <!-- .....other table bodies excluded for clarity -->


                    </table>
                </div>
            </div>
        </div>
    </div>

</body>

</html>

<?!= HtmlService.createHtmlOutputFromFile('JavaScript').getContent(); ?>

Соответствующий CSS:

#tablediv{
padding-left: 25px;
padding-right: 25px;
}

#tr-test{
background-color: #2C3446;
max-width: 100%

}

#table1-heading{
text-align: center;
}

#OIT-btn, #elec-btn, #maint-btn{
display: block;
margin: auto;
}

1 Ответ

0 голосов
/ 25 декабря 2018

Есть два способа решения вашей проблемы:

Проблема:

В настоящее время ваш Заголовок таблицы превышение на width, чем доступное горизонтальное пространство с его родителем container, вместо уменьшения при уменьшении / изменении ширины экрана.

1.Сохранение структуры HTML в том виде, в каком она есть.

  • Сделайте таблицы заголовков от max-width до 100% таким образом, чтобы они не выходили за пределы доступного пространства по горизонтали в любомcase.

  • Реальная причина - overflow-x:auto; Удалите его из <div style="overflow-x:auto;">, который окружает вашу таблицу заголовков.

Это должно решить вашу проблему.

2.Обновление HTML-разметки.

Вы можете взять два отдельных контейнера, содержащих две разные таблицы, то есть для заголовка (содержащего OIT Work Order Maintenance Costs и кнопку) и содержимого.

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

Надеюсь, это поможет вам.Также, если вы хотите, чтобы пример был понятен, попросил бы вас опубликовать все, что у вас есть в HTML и CSS, относящиеся к вашей проблеме.

Обновление

Я бы предложил разделить вашу HTML-разметку для таблиц.как показано ниже:

#tablediv{
padding-left: 25px;
padding-right: 25px;
}

#tr-test{
background-color: #2C3446;
max-width: 100%

}

#table1-heading{
text-align: center;
}

#OIT-btn, #elec-btn, #maint-btn{
display: block;
margin: auto;
}
<div>
    <h2 id="title" class="hidden" align="center">OIT Facilities Costs
       <p id="subtitle">by location<p>
    </h2>
</div>
<p>This application visualizes 3 kinds of data </p>
<br>
<div id="dashboard1-div" align="center">
    <div id="charts1-div">
        <div id="tablediv">
           <!-- Your header table --> 
            <table class="container">
                <tbody>
                    <tr id="tr-test">
                        <td>
                            <p id="table1-heading" class="hidden">OIT Work Order Maintenance Costs</p>
                            <button id="OIT-btn" onclick="OITbutton()">View</button>
                        </td>
                    </tr>
               <tbody>
            </table>
           <!-- Your body table  -->
            <div style="overflow-x:auto;">
                <table class="container">
                    <!-- .....other table bodies excluded for clarity -->
                </table>
            </div>
        </div>
    </div>
</div>

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

Для более здесь создан пример для того же: Ссылка

Обновление 2

#tablediv{
padding-left: 25px;
padding-right: 25px;
}

#tr-test{
background-color: #2C3446;
max-width: 100%

}

#table1-heading{
text-align: center;
}

#OIT-btn, #elec-btn, #maint-btn{
display: block;
margin: auto;
}

table { border-collapse: collapse; width:100%; }

td, th {
   border: 1px solid;
}
<div>
        <h2 id="title" class="hidden" align="center">OIT Facilities Costs
           <p id="subtitle">by location<p>
        </h2>
    </div>
    <p>This application visualizes 3 kinds of data </p>
    <br>
    <div id="dashboard1-div" align="center">
        <div id="charts1-div">
            <div id="tablediv">
               <!-- Your header table --> 
                <table class="container">
                    <tbody>
                        <tr id="tr-test">
                            <td>
                                <p id="table1-heading" class="hidden">OIT Work Order Maintenance Costs</p>
                                <button id="OIT-btn" onclick="OITbutton()">View</button>
                            </td>
                        </tr>
                   <tbody>
                </table>
               <!-- Your body table  -->
                <div style="overflow-x:auto;">
                    <table class="container">
                        <!-- .....other table bodies excluded for clarity -->
                        
                        <tbody>
                            <tr role="row" class="odd">
                                <th class="sorting_1">Airi</th>
                                <th>Satou</th>
                                <th>Accountant</th>
                                <th>Tokyo</th>
                                <th>33</th>
                                <th>2008/11/28</th>
                                <th>$162,700</th>
                                <th>5407</th>
                                <th>a.satou@datatables.net</th>
                            </tr>
                            <tr role="row" class="odd">
                                <td class="sorting_1">Airi</td>
                                <td>Satou</td>
                                <td>Accountant</td>
                                <td>Tokyo</td>
                                <td>33</td>
                                <td>2008/11/28</td>
                                <td>$162,700</td>
                                <td>5407</td>
                                <td>a.satou@datatables.net</td>
                            </tr>
                            <tr role="row" class="even">
                                <td class="sorting_1">Angelica</td>
                                <td>Ramos</td>
                                <td>Chief Executive Officer (CEO)</td>
                                <td>London</td>
                                <td>47</td>
                                <td>2009/10/09</td>
                                <td>$1,200,000</td>
                                <td>5797</td>
                                <td>a.ramos@datatables.net</td>
                            </tr>
                        </tbody>                   
                    </table>
                </div>
            </div>
        </div>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...