2016-11-25 3 views
1

Я пытаюсь заставить логотип реагировать и сохранять одинаковые пропорции на маленьком и большом экране. Однако логотип слишком большой с полным разрешением на ноутбуке, но близко к правильному размеру на меньшем экране. Любая помощь по исправлению размера изображения оценивается. О, и, пожалуйста, не говорите мне использовать бутстрап или любые рамки!HTML5 CSS3 Логотип и NavBar Отзывчивый (NO BOOTSTRAP !!)

Click here for cookies!

/* Toggle between adding and removing the "responsive" class to topnav when the user clicks on the icon */ 
 
function myFunction() { 
 
    var x = document.getElementById("myTopnav"); 
 
    if (x.className === "topnav") { 
 
    x.className += " responsive"; 
 
    } else { 
 
    x.className = "topnav"; 
 
    } 
 
}
html, 
 
body { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    height: 100%; 
 
    border: 2px blue solid; 
 
} 
 
#logo { 
 
    display: block; 
 
    width: 35%; 
 
    float: left; 
 
    border-style: 2px green solid; 
 
    border: 2px red solid; 
 
} 
 
/* Remove margins and padding from the list, and add a black background color */ 
 

 
ul.topnav { 
 
    list-style-type: none; 
 
    margin: 0; 
 
    padding: 0; 
 
    overflow: hidden; 
 
    background-color: #333; 
 
} 
 
/* Float the list items side by side */ 
 

 
ul.topnav li { 
 
    float: left; 
 
} 
 
/* Style the links inside the list items */ 
 

 
ul.topnav li a { 
 
    display: inline-block; 
 
    color: #f2f2f2; 
 
    text-align: center; 
 
    padding: 14px 16px; 
 
    text-decoration: none; 
 
    transition: 0.3s; 
 
    font-size: 17px; 
 
} 
 
/* Change background color of links on hover */ 
 

 
ul.topnav li a:hover { 
 
    background-color: #555; 
 
} 
 
/* Hide the list item that contains the link that should open and close the topnav on small screens */ 
 

 
ul.topnav li.icon { 
 
    display: none; 
 
} 
 
/* When the screen is less than 680 pixels wide, hide all list items, except for the first one ("Home"). Show the list item that contains the link to open and close the topnav (li.icon) */ 
 

 
@media screen and (max-width: 680px) { 
 
    ul.topnav li:not(:first-child) { 
 
    display: none; 
 
    } 
 
    ul.topnav li.icon { 
 
    float: right; 
 
    display: inline-block; 
 
    } 
 
} 
 
/* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens */ 
 

 
@media screen and (max-width: 680px) { 
 
    ul.topnav.responsive { 
 
    position: relative; 
 
    } 
 
    ul.topnav.responsive li.icon { 
 
    position: absolute; 
 
    right: 0; 
 
    top: 0; 
 
    } 
 
    ul.topnav.responsive li { 
 
    float: none; 
 
    display: inline; 
 
    } 
 
    ul.topnav.responsive li a { 
 
    display: block; 
 
    text-align: left; 
 
    } 
 
}
<title> 
 

 

 

 
    Archery Club</title> 
 

 
<body> 
 

 
    <!--Defines a header for a document or a section--> 
 
    <header> 
 
    </header> 
 

 
    <!--Defines a container for navigation links--> 
 
    <nav> 
 
    <ul class="topnav" id="myTopnav"> 
 
     <img id="logo" src="https://res.cloudinary.com/durjwdzkx/image/upload/v1480113900/IMG001_kwt1of.png" /> 
 
     <li><a href="#">Home</a> 
 
     </li> 
 
     <li><a href="#">About</a> 
 
     </li> 
 
     <li><a href="#">Contact</a> 
 
     </li> 
 
     <li><a href="#">Location</a> 
 
     </li> 
 
     <li><a href="#">Competitions</a> 
 
     </li> 
 
     <li class="icon"> 
 
     <a href="javascript:void(0);" onclick="myFunction()">&#9776;</a> 
 
     </li> 
 
    </ul> 
 

 
    </nav> 
 

 

 
    <!-- Defines a footer for a document or a section--> 
 
    <footer> 
 
    Site by: Me &copy; 2016 
 
    </footer> 
 

 
</body>

+0

Возможно, размеры логотипа слишком велики для начала? –

+0

@AlekseiMaide, какие размеры обычно имеют размеры логотипа? – Konahrik16

+0

изображения в Интернете не должны быть больше, чем они должны быть: пропускная способность/время загрузки и т. Д. Размер вашего изображения должен быть таким же большим, как это необходимо, чтобы отображать его в своем самом большом предназначенном разрешении, не жертвуя качеством. –

ответ

0

Что я использую для делать адаптивный дизайн без какой-либо библиотеки или рамок Это Flexbox! Он поддерживается браузерами встроенных компонентов .. Она имеет несколько лет уже .. Вот вам compatibility list

А вот у вас есть удивительное руководство о том, как это работает .. Вы должны дать ему попробовать:

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

0

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

<img id="logo" src=""> 

CSS:

#logo { 
width: %; //whatever percentage you find most appropriate 
} 

но имейте в виду, что ширина зависит от родительского контейнера (100% - это ширина родительского элемента).

В вашем случае родительский элемент является «ul», который занимает 100% от ширины, и поэтому логотип занимает 35% от ширины.

Смежные вопросы