Задать вопрос
pakrauce
@pakrauce

При маленькой ширине из header всё убегает?

Я новичок в вёрстке. Скачал первый попавшийся PSD в интернете и тренируюсь. Пока сделал только header. Выглядит нормально, но если уменьшить ширину браузера, то всё съезжает. Знаю, что ничего тут сложного, но мозг уже сломал

2d539de2ed94.png4f3a62d27c09.png
<html>
    <head>
        <title>Прокачай мобильничег</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body>
        <div class="headerWrapper">
            <div class="logo"></div>
            <div class="banner"></div>
            <div class="arrow"></div>
            <form class="auth">
                <ul>
                    <li>Логин:</li>
                    <li><input type="text"></li>
                </ul>
                <ul>
                    <li>Пароль:</li>
                    <li><input type="password"></li>
                </ul>
                <input class="authSubmit" type="submit" value="Вход">
                    <a href="#">Регистрация</a>
                    <a href="#">Забыли пароль?</a>
            </form>
        </div>
    </body>
</html>

.headerWrapper{
    height:93px;
    background-image: url("../images/bgHeader.png");
}

.logo{
    background-image: url("../images/logo.png");
    width: 255px;
    height: 55px;
    float: left;
    margin: 20px 0 0 20px;
}

.banner{
    background-image: url("../images/banner.png");
    width: 478px;
    height: 70px;
    float: left;
    margin: 10px 0 0 20px;
}

.arrow{
    background-image: url("../images/arrow.png");
    width: 83px;
    height: 103px;
    float: left;
}

.auth{
    font: 14px Trebuchet MS, Arial, sans-serif;
    width: 195px;
    float: left;
}
.auth ul:first-child{
    float: left;
    margin: 0 7px 0 0;
} 
.auth ul input{
    width: 90px;
    height: 24px;
    border: 1px solid #98a7b5;
    border-radius: 5px 5px 5px 5px;
}
.authSubmit{
    background: #75b1e5; /* Old browsers */
    background: -moz-linear-gradient(top,  #75b1e5 0%, #3d8fd7 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#75b1e5), color-stop(100%,#3d8fd7)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  #75b1e5 0%,#3d8fd7 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  #75b1e5 0%,#3d8fd7 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  #75b1e5 0%,#3d8fd7 100%); /* IE10+ */
    background: linear-gradient(to bottom,  #75b1e5 0%,#3d8fd7 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#75b1e5', endColorstr='#3d8fd7',GradientType=0 ); /* IE6-9 */
    
    border: 1px solid #2979c1;
    border-radius: 5px 5px 5px 5px;
    width: 54px;
    height: 25px;
    font: bold 14px Trebuchet MS, Arial, sans-serif;
    color: #fff;
    margin: 7px 10px 0 0;
    cursor: pointer;
    float: left;
}
.auth a{
    font: 12px Trebuchet MS, Arial, sans-serif;
    color: #3492e3;
    float: left;
}
.auth a:hover{
    text-decoration: none;
}
  • Вопрос задан
  • 2424 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Например:
.headerWrapper{ min-width:1024px; }
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
dimka-dooz
@dimka-dooz
front-end разработчик)
Я бы немного изменил бы разметку, обернул бы элементы в блоки с общим классом и прописал бы общие стили. например float, повторяется кучу раз, не оптимально совсем. у вас также не почищен поток, можно добавить после элементов с float пустой див со стилям
.clearfix{
margin:0;
padding:0;
clear:both;
}

Но с точки зрения семантики это не правильно, лучше
.headerWrapper:after{ 
content:" "; 
display:table; 
clear:both; 
}

Что касается сползающих элементов,они имеют фиксированную ширину, и в данном случае блоку родителю можно задать ширину в пикселях, т.к. по умолчанию ширина 100% , или ограничить с помощью min-width. Но в при данных условиях это не обязательно. Беглы осмотр, но оптимизации код ваш требует, глобальной))) удачи в учебе)
Ответ написан
Комментировать
yurka_s
@yurka_s
front-end'er
.headerWrapper{overflow:hidden}
Ответ написан
Комментировать
@newkamikaze
Начните с главного: решите, что вы хотите видеть в хедере на узких экранах, как он должен себя вести. Далее исходя из этого каким-то элементам прописывайте фиксированную ширину, каким-то относительную. В некоторых случаях разумно будет поменять расположение блоков. Например, в вашем примере можно было бы сверху оставить логотип и форма авторизации, а ниже баннер.
Так же при адаптивной верстке часто помогаю такие конструкции:
width: 100%;
max-width: 1024px;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы