我试图让徽标响应并在小屏幕和大屏幕上保持相同的比例。但是,在笔记本电脑上,徽标在全分辨率下太大,但在较小的屏幕上接近正确的尺寸。任何有关如何修复图像大小的帮助表示赞赏。哦,请不要告诉我使用bootstrap或任何框架!
/* 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()">☰</a>
</li>
</ul>
</nav>
<!-- Defines a footer for a document or a section-->
<footer>
Site by: Me © 2016
</footer>
</body>
&#13;
答案 0 :(得分:0)
我正在使用什么做没有任何lib或框架的响应式设计它是flexbox!它本身就受到浏览器的支持..它已经有几年了......在这里你有compatibility list
在这里你有一个关于它是如何工作的惊人指南..你应该尝试一下:
答案 1 :(得分:0)
从图像显然太大的事实来看,我首先要在任何图像编辑软件中调整图像大小
<img id="logo" src="">
CSS:
#logo {
width: %; //whatever percentage you find most appropriate
}
但请记住,宽度取决于父容器(100%是父容器的宽度)。
在您的情况下,父母是&#34; ul&#34;它占据了宽度的100%,因此徽标占据了宽度的35%。