响应式HTML菜单-居中问题

尝试居中显示菜单时,我的脑子屁很大。

衷心感谢任何人能为我提供的帮助。

我的菜单继续在左侧对齐,但需要居中。

每当我在其周围放置一个容器时,就会失去响应能力。

这是我的HTML

<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link href="./style.css" rel="stylesheet" type="text/css" />
<script>
/* 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";
  }
}
</script>
</head>
<body>
<div id="header">
<div class="logo"><img src="./images/logo.png"></div>

<div class="topnav" id="myTopnav">

    <a href="#">Home</a>

    <div class="dropdown">
    <button class="dropbtn">gifts
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Home & Lifestyle
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Edible
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Wearable
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Toys & Games
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Blog
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">About Us
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

  <a href="javascript:void(0);" class="icon" onclick="myFunction()">&#9776;</a>
    </div>

</div>
<!-- END TOP NAV -->

</div>
<!-- END HEADER -->




这是我的CSS

body {
margin:0 auto;
}
.container {
    overflow: hidden;
    width: 960px;
    margin: 0 auto;
}
.logo {
    display: block;
    color: #000000;
    text-align: center;
    letter-spacing: .04em;
    font-family: 'Quattrocento Sans',sans-serif;
    font-size: 40px;
    font-weight: 700;
    line-height: normal;
    padding: 10px 0;
}
.nav-wrap {
    overflow: hidden;
    width: 100%;
    padding: 10px 0;
    background: #ffffff;
    box-sizing: border-box;
    -webkit-backface-visibility: hidden;
    text-align:center;
}

/* Add a black background color to the top navigation */
.topnav {
  background-color: #fff;
  overflow: hidden;
}

/* Style the links inside the navigation bar */
.topnav a {
  float: left;
  display: block;
  color: #b9b9b9;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
      text-transform: uppercase;
    letter-spacing: .07em;
    font-family: 'Quattrocento Sans',sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 19px;
}

/* Add an active class to highlight the current page */
.active {
  color: 000;
}

/* Hide the link that should open and close the topnav on small screens */
.topnav .icon {
  display: none;
  color:#b9b9b9;
}

/* Dropdown container - needed to position the dropdown content */
.dropdown {
  float: left;
  overflow: hidden;
}

/* Style the dropdown button to fit inside the topnav */
.dropdown .dropbtn {   
   text-transform: uppercase;
    letter-spacing: .07em;
    font-weight: 400;
    line-height: 19px;
    font-size:inherit;
  border: none;
  outline: none;
  color: #b9b9b9;
  padding: 14px 16px;
  background-color: inherit;
  font-family: inherit;
  margin: 0;
}

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

/* Style the links inside the dropdown */
.dropdown-content a {
  float: none;
  color: #b9b9b9;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

/* Add a dark background on topnav links and the dropdown button on hover */
.topnav a:hover,.dropdown:hover .dropbtn {
  color: 000;
}

/* Add a grey background to dropdown links on hover */
.dropdown-content a:hover {
  background-color: #ddd;
  color: black;
}

/* Show the dropdown menu when the user moves the mouse over the dropdown button */
.dropdown:hover .dropdown-content {
  display: block;
}

/* When the screen is less than 600 pixels wide,hide all links,except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
@media screen and (max-width: 600px) {
  .topnav a:not(:first-child),.dropdown .dropbtn {
    display: none;
  }
  .topnav a.icon {
    float: right;
    display: 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 (display the links vertically instead of horizontally) */
@media screen and (max-width: 600px) {
  .topnav.responsive {position: relative;}
  .topnav.responsive a.icon {
    position: absolute;
    right: 0;
    top: 0;
  }
  .topnav.responsive a {
    float: none;
    display: block;
    text-align: left;
  }
  .topnav.responsive .dropdown {float: none;}
  .topnav.responsive .dropdown-content {position: relative;}
  .topnav.responsive .dropdown .dropbtn {
    display: block;
    width: 100%;
    text-align: left;
  }
}


p {font-family: Verdana,Arial,Helvetica,sans-serif; font-size:14px; color:#333; line-height:20px;}
.thick { font-weight: bold;}
.column {
  float: left;
  width: 285px;
  padding: 15px;
}

.row {
  width: 945px;
  margin: 0 auto;
  text-align: center;
}

/* Clear floats after image containers */
.row::after {
  content: "";
  clear: both;
  display: table;
}

hr.short {
  width: 285px;
  height: 1px;
  border: none;
  background-color: #dedede;
  margin-top: 40px;

}



/* Responsive layout */
@media only screen and (max-width: 767px) {
  .column {
    width: 100%;
    padding: 0px;
  }

  .row {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

/* Clear floats after image containers */
.row::after {
  content: "";
  clear: both;
  display: table;
}


} 

菜单一直向左移动(可能是float:left),但我无法使它正常工作。

请问有谁能成为当日的英雄吗?

qiyugfh0715021 回答:响应式HTML菜单-居中问题

您可以使用flexbox来使菜单居中:

.topnav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

@media screen and (max-width: 600px) {
  .topnav {
    justify-content: space-between;
  }

  .responsive {
    flex-direction: column;
  }
}

编辑:

尽管尽管我提出了建议,您仍在努力实现所需的解决方案,并且由于今天我有一些空闲时间,所以我决定为您准备一个最小的工作示例。我认为您想实现以下目标:

.logo-placeholder {
  width: 50px;
  height: 30px;
  margin: auto;
  background-color: red;
  margin-bottom: 10px;
}

.content {
  margin: 20px 100px 0 100px;
  padding: 20px;
  background-color: #EEE;
}

.header-navigation {
  position: sticky;
  top: 0;
  padding: 5px;
  background-color: #CCC;
}

.navigation {
  display: flex;
  justify-content: space-around;
  list-style: none;
}

.subnavigation {
  display: none;
}

.navigation-item {
  position: relative;
}

.navigation-item:hover > .subnavigation {
  display: block;
  position: absolute;
  list-style: none;
  padding: 10px;
  background-color: #EEE;
}
<div class="logo-placeholder"></div>
<nav class="header-navigation">
  <ul class="navigation">
    <li class="navigation-item">
      Top Nav Item 1
      <ul class="subnavigation">
        <li>Subitem 1</li>
        <li>Subitem 2</li>
        <li>Subitem 3</li>
        <li>Subitem 4</li>
      </ul>
     </li>
    <li class="navigation-item">
      Top Nav Item 2
      <ul class="subnavigation">
        <li>Subitem 1</li>
        <li>Subitem 2</li>
        <li>Subitem 3</li>
        <li>Subitem 4</li>
      </ul>
    </li>
    <li class="navigation-item">
      Top Nav Item 3
      <ul class="subnavigation">
        <li>Subitem 1</li>
        <li>Subitem 2</li>
        <li>Subitem 3</li>
        <li>Subitem 4</li>
      </ul>
    </li>
    <li class="navigation-item">
      Top Nav Item 4
      <ul class="subnavigation">
        <li>Subitem 1</li>
        <li>Subitem 2</li>
        <li>Subitem 3</li>
        <li>Subitem 4</li>
      </ul>
    </li>
  </ul>
</nav>

<article class="content">
  <p>Lorem ipsum dolor sit amet,consectetur adipiscing elit. Quid ergo aliud intellegetur nisi uti ne quae pars naturae neglegatur? Quamquam ab iis philosophiam et omnes ingenuas disciplinas habemus; Sin laboramus,quis est,qui alienae modum statuat industriae? <b>Duo Reges: constructio interrete.</b> Idem iste,inquam,de voluptate quid sentit? Hoc etsi multimodis reprehendi potest,tamen accipio,quod dant. <b>Maximus dolor,inquit,brevis est.</b> </p>

<p><i>Non est igitur summum malum dolor.</i> <i>Sed haec omittamus;</i> Quia nec honesto quic quam honestius nec turpi turpius. Quid Zeno? </p>

<p><a href="http://loripsum.net/" target="_blank">Eiuro,inquit adridens,iniquum,hac quidem de re;</a> An me,nisi te audire vellem,censes haec dicturum fuisse? Cenasti in vita numquam bene,cum omnia in ista Consumis squilla atque acupensere cum decimano. At ille non pertimuit saneque fidenter: Istis quidem ipsis verbis,inquit; Est autem etiam actio quaedam corporis,quae motus et status naturae congruentis tenet; Quas enim kakaw Graeci appellant,vitia malo quam malitias nominare. </p>

<p>Nam si beatus umquam fuisset,beatam vitam usque ad illum a Cyro extructum rogum pertulisset. Semper enim ex eo,quod maximas partes continet latissimeque funditur,tota res appellatur. Eam tum adesse,cum dolor omnis absit; An me,censes haec dicturum fuisse? </p>

<p>Nam quibus rebus efficiuntur voluptates,eae non sunt in potestate sapientis. Immo istud quidem,quo loco quidque,nisi iniquum postulo,arbitratu meo. <i>Sed nunc,quod agimus;</i> Aliter homines,aliter philosophos loqui putas oportere? Universa enim illorum ratione cum tota vestra confligendum puto. Sed potestne rerum maior esse dissensio? An ea,quae per vinitorem antea consequebatur,per se ipsa curabit? <b>Quod quidem nobis non saepe contingit.</b> Dolor ergo,id est summum malum,metuetur semper,etiamsi non aderit; Nunc ita separantur,ut disiuncta sint,quo nihil potest esse perversius. </p>

<p>Sed quid attinet de rebus tam apertis plura requirere? Claudii libidini,qui tum erat summo ne imperio,dederetur. <i>Et ille ridens: Video,quid agas;</i> <b>Hoc est non dividere,sed frangere.</b> Tu enim ista lenius,hic Stoicorum more nos vexat. <b>Quid iudicant sensus?</b> Facile est hoc cernere in primis puerorum aetatulis. Sit enim idem caecus,debilis. Tum ille timide vel potius verecunde: Facio,inquit. <i>Comprehensum,quod cognitum non habet?</i> </p>

<p>Cur ipse Pythagoras et Aegyptum lustravit et Persarum magos adiit? Dicet pro me ipsa virtus nec dubitabit isti vestro beato M. Aliter enim nosmet ipsos nosse non possumus. Re mihi non aeque satisfacit,et quidem locis pluribus. Scio enim esse quosdam,qui quavis lingua philosophari possint; Familiares nostros,credo,Sironem dicis et Philodemum,cum optimos viros,tum homines doctissimos. </p>

<p>Atque hoc loco similitudines eas,quibus illi uti solent,dissimillimas proferebas. <a href="http://loripsum.net/" target="_blank">Murenam te accusante defenderem.</a> Cupiditates non Epicuri divisione finiebat,sed sua satietate. An vero,quisquam potest probare,quod perceptfum,quod. Huic ego,si negaret quicquam interesse ad beate vivendum quali uteretur victu,concederem,laudarem etiam; <b>Quae cum essent dicta,discessimus.</b> Quod maxime efficit Theophrasti de beata vita liber,in quo multum admodum fortunae datur. </p>

<p>Zenonis est,hoc Stoici. Itaque vides,quo modo loquantur,nova verba fingunt,deserunt usitata. <i>Aliter enim nosmet ipsos nosse non possumus.</i> Nec tamen ullo modo summum pecudis bonum et hominis idem mihi videri potest. Quid enim est a Chrysippo praetermissum in Stoicis? Alterum significari idem,ut si diceretur,officia media omnia aut pleraque servantem vivere. <i>Qui ita affectus,beatum esse numquam probabis;</i> Itaque si aut requietem natura non quaereret aut eam posset alia quadam ratione consequi. </p>

<p>Itaque sensibus rationem adiunxit et ratione effecta sensus non reliquit. Multoque hoc melius nos veriusque quam Stoici. <a href="http://loripsum.net/" target="_blank">Est enim effectrix multarum et magnarum voluptatum.</a> <b>Nihilo beatiorem esse Metellum quam Regulum.</b> Nos autem non solum beatae vitae istam esse oblectationem videmus,sed etiam levamentum miseriarum. </p>

<p><a href="http://loripsum.net/" target="_blank">Quaerimus enim finem bonorum.</a> Tenent mordicus. At iam decimum annum in spelunca iacet. Cur tantas regiones barbarorum pedibus obiit,tot maria transmisit? </p>

<p>Cum audissem Antiochum,Brute,ut solebam,cum M. <a href="http://loripsum.net/" target="_blank">Summum ením bonum exposuit vacuitatem doloris;</a> Aliis esse maiora,illud dubium,ad id,quod summum bonum dicitis,ecquaenam possit fieri accessio. Et ille ridens: Video,quid agas; Sed fortuna fortis; Facillimum id quidem est,inquam. Quid in isto egregio tuo officio et tanta fide-sic enim existimo-ad corpus refers? Eorum enim est haec querela,qui sibi cari sunt seseque diligunt. Sic enim maiores nostri labores non fugiendos tristissimo tamen verbo aerumnas etiam in deo nominaverunt. Quod autem ratione actum est,id officium appellamus. <b>Sin aliud quid voles,postea.</b> </p>


</article>

,

由于我的帐户还很新,所以我无法发表评论,但是无论如何这里是

ajobi发布了一个不错的解决方案,对于2D元素行来说,这是一个很好的解决方案。您还应该看看CSS Grid。它与Flexbox基本相同,但是在3个维度上。

本文链接:https://www.f2er.com/3107442.html

大家都在问