Адаптируйте страницу так, чтобы при сворачивании сохранить css во вкладках - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть веб-страница со следующими вкладками:

enter image description here

Но всякий раз, когда я уменьшаю или изменяю размер окна, расположение всех вкладок отключаетсяи все искажается так:

enter image description here

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

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

Это код:

<div class="tab" id="navbar">
<button class="tablink" onclick="openPage('tab1', this, 'gray')" id="defaultOpen">Tab 1</button>
<button class="tablink" onclick="openPage('tab2', this, 'gray')">Tab 2</button>
<button class="tablink" onclick="openPage('tab3', this, 'gray')">Tab 3</button>
<button class="tablink" onclick="openPage('tab4', this, 'gray')">Tab 4</button>
<button class="tablink" onclick="openPage('tab5', this, 'gray')">Tab 5</button>
<button class="tablink" id="myBtn">Tab 6</button>
<button class="tablink" onclick="location.href='Logout.php'">Tab 7</button>
</div>

2 скрипта, которые есть на вкладках:

  <script>
        function openPage(pageName,elmnt,color) {
            var i, tabcontent, tablinks;
            tabcontent = document.getElementsByClassName("tabcontent");
            for (i = 0; i < tabcontent.length; i++) {
                tabcontent[i].style.display = "none";
            }
            tablinks = document.getElementsByClassName("tablink");
            for (i = 0; i < tablinks.length; i++) {
                tablinks[i].style.backgroundColor = "";
            }
            document.getElementById(pageName).style.display = "block";
            elmnt.style.backgroundColor = color;
        }

        // Get the element with id="defaultOpen" and click on it
        document.getElementById("defaultOpen").click();
    </script>


    <script>
<!---"sticky" navbar----->
    window.onscroll = function() {myFunction()};

    var navbar = document.getElementById("navbar");
    var sticky = navbar.offsetTop;

    function myFunction() {
        if (window.pageYOffset >= sticky) {
            navbar.classList.add("sticky")
        } else {
            navbar.classList.remove("sticky");
        }
    }
</script>

CSS:

.tab {
    overflow: hidden;
    border: 1px solid #ccc;
    background-color: #555;
}

/* Style tab links */
.tablink {
    /*margin: auto;*/
    background-color: #555;
    color: white;
    float: left;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 14px 50px;
    font-size: 20px;
    /*width: 30%;*/
    width: fit-content;
}

.tablink:hover {
    background-color: #777;
}

.sticky {
    position: fixed;
    top: 0;
    width: 100%;
}

1 Ответ

2 голосов
/ 18 апреля 2019

Вы можете сохранить все вкладки в одной строке с помощью CSS:

.tab{display: flex; flex-wrap: nowrap;}

, и если вы хотите прокрутить на мобильном устройстве, вы можете дать прокрутку в том же виде:

.tab{display: flex; flex-wrap: nowrap; overflow: auto}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...