Расширять изображение и меню навигации при переполнении страницы

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

Обновлено: опубликованный код с моей главной страницы и файла стиля.

body {
    font-family: Arial, Helvetica, sans-serif;
    background: #ffffff;
    max-width: none;
    overflow: scroll;
}

table {
    border-spacing: 0px
}

td {
    padding: 2px;
    margin: 0px;
    border-spacing: 0px
}
/*-----------------------------------------------------------------Header Logo------------------------------------------------------------------------------------------------*/

.responsive {
    width: 100%;
    height: auto;
}

/*------------------------------------------------------------------------ Menu -----------------------------------------------------------------------------------------*/
.navbar {
    width: 100%;
    overflow: hidden;
    background-color: #333;
    font-family: Arial, Helvetica, sans-serif;
    margin-top: 0px;
    padding-top: 0px;
}

    .navbar a {
        float: left;
        font-size: 16px;
        color: white;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
    }

.dropdown {
    float: left;
}

    .dropdown .dropbtn {
        font-size: 16px;
        border: none;
        outline: none;
        color: white;
        padding: 14px 16px;
        background-color: inherit;
        font-family: inherit;
        margin: 0;
    }

    .navbar a:hover, .dropdown:hover .dropbtn {
        background-color: red;
    }

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}

    .dropdown-content a {
        float: none;
        color: black;
        padding: 12px 16px;
        text-decoration: none;
        display: block;
        text-align: left;
    }

        .dropdown-content a:hover {
            background-color: #ddd;
        }

.dropdown:hover .dropdown-content {
    display: block;
}


/*-----------------------------------------------------------------Formatting------------------------------------------------------------------------------------------------*/

.
.under2 {
    text-decoration: underline;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #3A4A37;
}

.box_app {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #3A4A37;
    border: 1px solid #C4D0C1;
}

.validator {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #F00000;
}

.validator_mini {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #F00000;
}

.validator_mini2 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #000080;
}

.subtitles {
    font-weight: bold;
    background-color: #093145;
    border-bottom-style: solid;
    border-bottom-color: #3A4A37;
    border-bottom-width: 1px;
    text-align: left;
    color: white;
}

.textbox_padded {
    border: 1px solid #C4D0C1;
    padding: 4px;
    color: #3A4A37;
    font-family: arial, Helvetica, sans-serif;
}

.title_times_new {
    font-family: "Times New Roman", Times, serif;
    font-size: 32px;
    color: #4D6145;
    font-weight: bold;
    font-style: italic;
    text-align: center;
}

.title_times_new2 {
    font-family: "Times New Roman", Times, serif;
    font-size: 16px;
    color: #4D6145;
    font-weight: bold;
    font-style: italic;
}

.contract_list {
    margin-left: auto;
    margin-right: auto;
}


/*-------------------------------------------------------------------New Contract Form----------------------------------------------------------------------*/
#contract table {
    width: 600px;
}

html, body {
    margin: 0;
    padding: 0;
}

.img-responsive {
    display: inline-block;
    max-width: 100%;
    height: auto;
}

.drop {
    left: 0px;
    margin-right: 90px;
}

.flow {
    width: 1200px
}

/*-------------------------------------------------------------------Media queries----------------------------------------------------------------------*/

@media only screen and (max-width: 1280px) {
    .navbar {
        width: 1670px;
        margin-top: 0px;
    }

    .responsive {
        width: 1670px;
    }

    .contract_list {
        margin-right: 0px;
        margin-left: 1%;
    }
}
<html>
<head runat = "server">
    <title></title>

    <link href = "~/secure/styles.css" type = "text/css" rel = "stylesheet" runat = "server" />
    <link rel = "stylesheet" href = "~/secure/font-awesome.min.css" runat = "server" />
    <link rel = "shortcut icon" type = "image/ico" href = "images/faviocon/favicon.ico" runat = "server" />

    <asp:ContentPlaceHolder ID = "head" runat = "server">
    </asp:ContentPlaceHolder>

</head>
<body>
    <form id = "form1" runat = "server">
        <img src = "images/logo2.png" alt = "Logo" runat = "server" class = "responsive" />
        <div class = "navbar" runat = "server" style = "margin-top: 0px; padding-top: 0px;">
            <div class = "dropdown">
                <button class = "dropbtn" causesvalidation = "false">
                    Clinical Arrangements        
                </button>
                <div class = "dropdown-content">
                    <a href = "/secure/student_ca_arrangement.aspx">Add New Student</a>
                </div>
            </div>

            <div class = "dropdown">
                <button class = "dropbtn" causesvalidation = "false">
                    Contracts 
                </button>
                <div class = "dropdown-content">
                    <a href = "/secure/ca_contracts/new_contract.aspx">New Contract</a>
                    <a href = "/secure/ca_contracts/contract_list.aspx">Contract List</a>
                </div>
            </div>
            <div class = "dropdown">
                <button class = "dropbtn" causesvalidation = "false">
                    Letters 
                </button>
                <div class = "dropdown-content">
                    <a href = "/secure/letters/begin_letter_list.aspx">Beginning of Term Letter</a>
                    <a href = "/secure/letters/end_letters_list.aspx">End of Term Letter</a>
                </div>
            </div>
            <a id = "logout" causesvalidation = "false" runat = "server" onserverclick = "logout_Click">Sign Out</a>
        </div>

        <br />
        <asp:ContentPlaceHolder ID = "ContentPlaceHolder1" runat = "server">
        </asp:ContentPlaceHolder>

    </form>
    <script type = "text/javascript" src = "https://cdn.ywxi.net/js/1.js" async></script>
</body>
</html>

Вы не получите очень полезных ответов без CSS или разметки в вашем вопросе.

IrishChieftain 08.11.2018 16:01

@IrishChieftain готово, спасибо за совет.

cflasrado 08.11.2018 16:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Вы можете отключить горизонтальную прокрутку с помощью

overflow-x:hidden;

в вашем CSS

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

cflasrado 08.11.2018 15:31

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

cflasrado 08.11.2018 15:44

Да, это не самый оптимальный вариант, вы можете попытаться установить процентные значения / значения области просмотра для вашей ширины, а не фиксированные значения пикселей, также проверьте родительские элементы вашего веб-сайта в инструментах chrome dev и посмотрите, нужно ли вам устанавливать процентные значения на родительские элементы также

Dmitriy 08.11.2018 17:26

Похоже, вы вручную создаете свои собственные адаптивные медиа-запросы? Я бы предложил использовать Bootstrap v3 - вы можете использовать диспетчер пакетов, чтобы все это настроить.

В вашем медиа-запросе вы устанавливаете фиксированную ширину с использованием пикселей до 1670 пикселей. В RWD фиксированные единицы ширины никогда не используются; это всегда делается в процентах. Вы можете избежать этих проблем, используя Bootstrap, поскольку вся тяжелая работа уже сделана за вас.

В случае вашей конкретной проблемы у вас должны быть разные экраны мультимедиа для разных разрешений экрана:

https://getbootstrap.com/docs/3.3/css/#grid-media-queries

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

cflasrado 08.11.2018 17:22

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

Jack 08.11.2018 17:35

Нет. Медиа-запросы и браузер определяют макет в зависимости от размера области просмотра. Мне кажется, ваше лекарство хуже болезни. Я бы вернулся к царапинам и установил контейнер вокруг всего ;-)

IrishChieftain 08.11.2018 17:42

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