J'ai finalement réussi à résoudre ce même problème. Voici ma solution et je l'ai testée sur mon site dans les trois principaux navigateurs : Chrome, Firefox, et Internet Explorer.
Tout d'abord, si vous n'utilisez pas de logo textuel, supprimez complètement "navbar-brand". J'ai trouvé que cette classe particulière était la cause principale du doublement de mon menu nav effondré.
Merci à l'utilisateur 3137032 de m'avoir conduit dans la bonne direction.
Vous devez créer un conteneur d'images personnalisé, j'ai appelé le mien "logo".
Voici le balisage HTML du bootstrap :
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="@Url.Action(" Index ", "Home ")" class="logo"><img src="~/resources/images/Logo_Concept.png" /></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="@Url.Action(" About ", "Home ")">
<i class="glyphicon glyphicon-info-sign"></i> About
</a>
</li>
<li>
<a href="@Url.Action(" Contact ", "Home ")">
<i class="glyphicon glyphicon-phone"></i> Contact
</a>
</li>
<li>
<a href="@Url.Action(" Index ", "Products ")">
<i class="glyphicon glyphicon-tag"></i> Products
</a>
</li>
</ul>
</div>
</div>
</div>
Et le code CSS :
.logo img {
width: 100% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 100%;
}
@media (max-width:480px) {
.logo img {
width: 70% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 70% !important;
}
}
@media (max-width:400px) {
.logo img {
width: 75% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 75%;
}
}
@media (max-width:385px) {
.logo img {
width: 70% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 70%;
}
}
@media (max-width:345px) {
.logo img {
width: 65% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 65%;
}
}
@media (max-width:335px) {
.logo img {
width: 60% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 60%;
}
}
@media (max-width:325px) {
.logo img {
width: 55% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 55%;
}
}
@media (max-width:315px) {
.logo img {
width: 50% \9; /*Force IE10 and below to size SVG images correctly*/
max-width: 50%;
}
}
La valeur dans @media (max-width : x) peut varier en fonction de la largeur de vos images de logo, la mienne est de 368px. Les pourcentages peuvent également devoir être modifiés en fonction de la taille de votre logo. La première requête @media doit être votre seuil et le mien était la largeur de l'image (368px) + la taille du bouton réduit (44px) + environ 60px et il est arrivé à 480px qui est l'endroit où je commence la mise à l'échelle de l'image réactive.
Assurez-vous d'enlever ma syntaxe de rasoir des portions HTML. Faites-moi savoir si cela règle votre problème, cela a réglé le mien.
Edit : Désolé, j'ai manqué votre problème de hauteur de la barre de navigation. Il y a plusieurs façons de procéder. Personnellement, je compile le fichier LESS de Bootstrap avec la hauteur appropriée de la barre de navigation, pour mes besoins, j'utilise 70px, et la hauteur de mon image est de 68 px. La deuxième façon de procéder est dans le fichier bootstrap.css lui-même, recherchez ".navbar" et modifiez min-height : à la hauteur de votre logo.
2 votes
<img src="logo.png" width="27px" />
: ajustement29 votes
Avec toutes les réponses soumises à cette question, pourquoi aucune d'entre elles n'a été marquée comme étant la solution ?
1 votes
Deux raisons, je pense : 1. Si quelqu'un restyle le site, la dimension est fixée dans le HTML plutôt que dans le CSS, ce qui crée un cauchemar de maintenance. 2. Cela ne devrait-il pas être height="27px" de toute façon ? C'est la hauteur, et non la largeur, qui est la contrainte.
0 votes
Les attributs de largeur et de hauteur supposent que leur valeur est exprimée en pixels. Vous ne devez donc pas ajouter "px" dans la valeur.
width="27"
0 votes
Tout bien considéré, c'est la meilleure réponse et elle devrait être acceptée. stackoverflow.com/a/26333342/171456 . Il répond aux besoins de la communauté élargie des OS qui ont visité cette question depuis 2013.
0 votes
@ZimSystem Mon principal problème était que l'image de mon logo était plus grande que la hauteur de la barre de navigation. Cette réponse suppose que l'image s'insère dans la barre de navigation, ce qui rend les choses très simples.
0 votes
Pourquoi ne pouvez-vous pas appliquer un style pour permettre à votre image de déborder de la barre de navigation ? De nombreux sites le font.