Адаптивная панель навигации с использованием HTML, CSS и JS не отображает меню;также невозможно изменить порядок ссылок - PullRequest
0 голосов
/ 03 декабря 2018

Я создаю сайт портфолио на основе моего старого, но использую Bootstrap для макета только потому, что он быстрее.Я попытался создать выпадающую панель навигации с помощью Bootstrap, но меню никогда не появилось, поэтому я сдался и просто использовал HTML, CSS и JS.Я основал его на учебнике THIS от W3C Scools и следовал инструкциям к букве T, за исключением того, что изменил параметры.

Это также не позволяет мне переключать порядок (например, я хочуэто будет: Главная | Проекты | Обо мне | Контакт).Вот мой код:

    <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE-edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Web Portfolio</title>

    <link rel="stylesheet" type="text/css" href="bootstrap.css" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

    <!-- if IE 9 -->
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"</script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <!-- end -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
body {
margin:0;
}

.topnav {
  overflow: hidden;
  background-color: #333;
}

.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

.active {
  background-color: pink;
  color: white;
}

.topnav .icon {
  display: none;
}

.dropdown {
    float: left;
    overflow: hidden;
}

.dropdown .dropbtn {
    font-size: 17px;    
    border: none;
    outline: none;
    color: white;
    padding: 14px 16px;
    background-color: inherit;
    font-family: inherit;
    margin: 0;
}

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

.dropdown-content a {
    float: none;
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
    text-align: left;
}

.topnav a:hover, .dropdown:hover .dropbtn {
  background-color: #555;
  color: white;
}

.dropdown-content a:hover {
    background-color: #ddd;
    color: black;
}

.dropdown:hover .dropdown-content {
    display: block;
}

@media screen and (max-width: 600px) {
  .topnav a:not(:first-child), .dropdown .dropbtn {
    display: none;
  }
  .topnav a.icon {
    float: right;
    display: block;
  }
}

@media screen and (max-width: 600px) {
  .topnav.responsive {position: relative;}
  .topnav.responsive .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;
  }
}
</style>
</head>
<body>

<div class="topnav" id="myTopnav">
  <a href="#home" class="active">Home</a>
  <div class="dropdown">
  <button class="dropbtn">Projects
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#websites">Web Sites</a>
      <a href="#jsapps">JavaScript Applications</a>
      <a href="#csharpapps">C# Applications</a>
      <a href="#javaapps">Java Applications</a>
      <a href="#xmlapps">XML Applications/XSLTs</a>
      <a href="#wpsites">WwordPress Sites (Coming Soon)</a>
    </div>
  <a href="#about">About</a>
  <a href="#contact">Contact</a>
  </div> 
  <a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">&#9776;</a>
</div>
<!-- Bootstrap rows and columns -->
      <div class="row">
        <div class="col-md-12 text-center">
          <h1>Web Portfolio</h1>
        </div>
      </div>

    <hr /> 
    <div class="row">
      <div class="col-md-4 col-sm-6 col-xs-12">
        <h3>Skill 1</h3>
        <p>Stuff goes here
        </p>
      </div>

       <div class="col-md-4 col-sm-6 col-xs-12">
       <h3>Skill 2</h3>
        <p>Stuff goes here
        </p>
      </div>

       <div class="col-md-4 col-sm-6 col-xs-12">
       <h3>Skill 3</h3>
        <p>Stuff goes here
        </p>
      </div>

      <div class="col-md-4 col-sm-6 col-xs-12">
       <h3>Skill 4</h3>
        <p>Stuff goes here
        </p>
      </div>

      <div class="col-md-4 col-sm-6 col-xs-12">
       <h3>Skill 5</h3>
        <p>Stuff goes here
        </p>
      </div>

      <div class="col-md-4 col-sm-6 col-xs-12">
       <h3>Skill 6</h3>
        <p>Stuff goes here
        </p>
      </div>

     </div>
  </div>

    <script>
function myFunction() {
    var x = document.getElementById("myTopnav");
    if (x.className === "topnav") {
        x.className += " responsive";
    } else {
        x.className = "topnav";
    }
}
</script>
    <!-- scripts into the body -->
   <script src="jquery.js"</script>
   <script src="bootstrap.js"></script>
<!-- </footer>PLC &copy;2018 All Rights Reserved.</footer> -->
  </body>
   </html> 

Пожалуйста, если кто-то может сообщить мне, что я сделал неправильно, я буду искренне признателен.Или я должен просто удалить это и создать один, используя элемент Nav, добавив CSS и JS, чтобы, надеюсь, сделать его отзывчивым?Спасибо.

1 Ответ

0 голосов
/ 03 декабря 2018

Ваши разделы "О нас" и "Контакт" были включены в выпадающий список проектов, поэтому я просто разместил их после:

function myFunction() {
  var x = document.getElementById("myTopnav");
  if (x.className === "topnav") {
    x.className += " responsive";
  } else {
    x.className = "topnav";
  }
}
body {
  margin: 0;
}

.topnav {
  overflow: hidden;
  background-color: #333;
}

.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

.active {
  background-color: pink;
  color: white;
}

.topnav .icon {
  display: none;
}

.dropdown {
  float: left;
  overflow: hidden;
}

.dropdown .dropbtn {
  font-size: 17px;
  border: none;
  outline: none;
  color: white;
  padding: 14px 16px;
  background-color: inherit;
  font-family: inherit;
  margin: 0;
}

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

.dropdown-content a {
  float: none;
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

.topnav a:hover,
.dropdown:hover .dropbtn {
  background-color: #555;
  color: white;
}

.dropdown-content a:hover {
  background-color: #ddd;
  color: black;
}

.dropdown:hover .dropdown-content {
  display: block;
}

@media screen and (max-width: 600px) {
  .topnav a:not(:first-child),
  .dropdown .dropbtn {
    display: none;
  }
  .topnav a.icon {
    float: right;
    display: block;
  }
}

@media screen and (max-width: 600px) {
  .topnav.responsive {
    position: relative;
  }
  .topnav.responsive .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;
  }
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE-edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Web Portfolio</title>

  <link rel="stylesheet" type="text/css" href="bootstrap.css" />
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

  <!-- if IE 9 -->
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
  <!-- end -->
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>

<body>

  <div class="topnav" id="myTopnav">
    <a href="#home" class="active">Home</a>
    <div class="dropdown">
      <button class="dropbtn">Projects
      <i class="fa fa-caret-down"></i>
    </button>
      <div class="dropdown-content">
        <a href="#websites">Web Sites</a>
        <a href="#jsapps">JavaScript Applications</a>
        <a href="#csharpapps">C# Applications</a>
        <a href="#javaapps">Java Applications</a>
        <a href="#xmlapps">XML Applications/XSLTs</a>
        <a href="#wpsites">WwordPress Sites (Coming Soon)</a>
      </div>
    </div>
    <a href="#about">About</a>
    <a href="#contact">Contact</a>
    <a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">&#9776;</a>
  </div>
  <!-- Bootstrap rows and columns -->
  <div class="row">
    <div class="col-md-12 text-center">
      <h1>Web Portfolio</h1>
    </div>
  </div>

  <hr />
  <div class="row">
    <div class="col-md-4 col-sm-6 col-xs-12">
      <h3>Skill 1</h3>
      <p>Stuff goes here
      </p>
    </div>

    <div class="col-md-4 col-sm-6 col-xs-12">
      <h3>Skill 2</h3>
      <p>Stuff goes here
      </p>
    </div>

    <div class="col-md-4 col-sm-6 col-xs-12">
      <h3>Skill 3</h3>
      <p>Stuff goes here
      </p>
    </div>

    <div class="col-md-4 col-sm-6 col-xs-12">
      <h3>Skill 4</h3>
      <p>Stuff goes here
      </p>
    </div>

    <div class="col-md-4 col-sm-6 col-xs-12">
      <h3>Skill 5</h3>
      <p>Stuff goes here
      </p>
    </div>

    <div class="col-md-4 col-sm-6 col-xs-12">
      <h3>Skill 6</h3>
      <p>Stuff goes here
      </p>
    </div>

  </div>
  </div>

</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...