Как поставить значки в соответствие с другими тегами?

Я только начал изучать веб-разработку и столкнулся с несколькими проблемами, связанными с выравниванием тегов, кнопок и значков.

Вот проблемы, с которыми я сталкиваюсь:

  1. Название бренда не соответствует тегам a. я попробовал дисплей: встроенный; в каждом классе, но это не работает.

  2. теги социальных сетей висят в воздухе, я хочу, чтобы они соответствовали тегам a. Я снова попытался уменьшить поля, отступы и использовать встроенную команду, но, похоже, ничего не работает.

  3. Кнопка поиска начальной загрузки также висит в воздухе. Я хочу, чтобы все вышеперечисленные три были в соответствии.

Вот скриншот страницы.

И вот код

header {
  background: #669999;
  color: white;
  padding: 5px 5px 5px 15px;
}

.fontsize {
  color: white;
  margin: 0px 0px 0px 10px;
  font-size: 25px;
  padding: 5px;
}

.icon {
  float: right;
  list-style-type: none;
  margin: 0px 10px 0px 10px;
  padding: 5px;
  display: inline;
}

body {
  margin: 0px;
}

.colors {
  margin: 5px 10px 5px 10px;
  padding: 10px;
  color: white;
}

a:hover.colors {
  color: black;
  text-decoration: none;
}

.picturefont {
  font-size: 25;
  font-style: italic;
}

.whitespace {
  padding: 10px;
  margin: 50px;
}

#margin {
  margin: 0px;
}

.frontpageimage {
  width: 90%;
  display: inline;
  border: 1px solid black;
}
<h1 class="fontsize"> Brand name </h1>

<nav>

  <a class="colors" href="home.html"> Home </a>
  <a class="colors" href="contact.html"> Contact </a>
  <a class="colors" href="recipe.html"> Recipes </a>
  <a class="colors" href="order.html">  Order </a>


  <ul>
    <li class="icon">
      <a href="#"><img src="icon-insta.png"></a>
    </li>
    <li class="icon">
      <a href="#"><img src="fb-icon.png"></a>
    </li>
    <li class="icon">
      <a href="#"><img src="phone-icon.png"> </a>
    </li>
  </ul>

</nav>


<form id="margin" class="navbar-form navbar-right">
  <div class="form-group">
    <input type="text" class="form-control" placeholder="Search">
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>
<ul class="nav navbar-nav navbar-right">
  <!--        <li><a href="#">Link</a></li> -->
  <li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span 
       class="caret"></span></a>
    <ul class="dropdown-menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li role="separator" class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </li>
</ul>
</div>
</div>
</nav>

</header>


<body>

  <div class="row">
    <div class="col-sm-2 whitespace picturefont">
      <a href="recipe.html">
        <img class="frontpageimage" src="oreo-cake.jpg"></a> Chocolate Cake</div>
    <div class="col-sm-2 whitespace picturefont">
      <a href="recipe.html">
        <img class="frontpageimage" src="kitkat-cake.jpg"></a> Rasberry Sponge Cake
    </div>
    <div class="col-sm-2 whitespace picturefont">
      <a href="recipe.html">
        <img class="frontpageimage" src="green-cake.jpg"></a> Red Velvet Cake</div>
    <div class="col-sm-2 whitespace picturefont">
      <a href="recipe.html">
        <img class="frontpageimage" src="KitKatCake3.jpg"></a> Mango Rose Tart
    </div>
  </div>

  <div id="slider">
    <div id="slider2">

      <img id="choclatecake" src="oreo-cake.jpg" alt="Moist Chocolate Cake" />
      <img id="choclatecake" src="kitkat-cake.jpg" alt="Moist Chocolate 
     Cake" />
      <img id="choclatecake" src="green-cake.jpg" alt="Moist Chocolate Cake" />
      <img id="choclatecake" src="KitKatCake3.jpg" alt="Moist Chocolate 
    Cake" />

    </div>
  </div>`

Простите за неподходящий формат, но я здесь новенький. Надеюсь найти ответы на некоторые вопросы. Спасибо

3 ответа

  1. Вам нужно поставить h1 тег внутри nav тег.
  2. Вы закрыли nav тег перед запуском формы, и у вас есть еще один закрывающий тег nav позже.
  3. По той же причине, что и выше.

    Попробуйте это так:

    <nav>
        <h1 class="fontsize"> Brand name </h1>
    
           <a class="colors" href="home.html"> Home </a>
           <a class="colors" href="contact.html"> Contact </a>
           <a class="colors" href="recipe.html"> Recipes </a>
           <a class="colors" href="order.html">  Order </a>
    
    
           <ul>
                <li class="icon">
                     <a href="#"><img src="icon-insta.png"></a>
                </li>
                <li class="icon">
                    <a href="#"><img src="fb-icon.png"></a>
                </li>
                <li class="icon">
                     <a href="#"><img src="phone-icon.png"> </a>
                </li>
            </ul>
    
           <form id="margin" class="navbar-form navbar-right">
               <div class="form-group">
                   <input type="text" class="form-control" placeholder="Search">
               </div>
               <button type="submit" class="btn btn-default">Submit</button>
           </form>
           <ul class="nav navbar-nav navbar-right">
               <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span 
           class="caret"></span></a>
                  <ul class="dropdown-menu">
                      <li><a href="#">Action</a></li>
                      <li><a href="#">Another action</a></li>
                      <li><a href="#">Something else here</a></li>
                      <li role="separator" class="divider"></li>
                      <li><a href="#">Separated link</a></li>
                  </ul>
               </li>
           </ul> 
    </nav>
    

@Student, у вас здесь много чего происходит, но большинство ваших проблем связаны с искаженным HTML. Итак, давайте рассмотрим ваши проблемы один за другим.

1) Название бренда не соответствует тегам a. я попробовал дисплей: встроенный; в каждом классе, но это не работает.

Я вижу только ваше использование display:inline в пару ваших классов, но не на фирменном знаке. В любом случае, у Bootstrap уже есть бренд со встроенными для вас ссылками. Как вы можете видеть в коде ниже.

 <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button class="navbar-toggle collapsed" aria-expanded="false" type="button" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Brand Name</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav">
                <li><a href="home.html">Home</a></li>
                <li><a href="contact.html">Contact</a></li>
                <li><a href="recipes.html">Recipes</a></li>
                <li><a href="orders.html">Orders</a></li>
            </ul>
...

2) Теги социальных сетей висят в воздухе, я хочу, чтобы они соответствовали тегам a. Я снова попытался уменьшить поля, отступы и использовать встроенную команду, но, похоже, ничего не работает.

Чтобы они совпадали, вы можете вкладывать форму и значки социальных сетей в div тег, который тянет их обоих справа от панели навигации, используя navbar-right учебный класс. Чтобы убедиться, что они находятся на одной линии, используйте класс float Bootstrap: pull-left а также pull-right, Вам нужно будет добавить отступ в верхней части a использование тегов padding-top CSS свойство Я сделал это с одним, чтобы вы могли понять, как.

<div class="navbar-right">
                <form class="navbar-form pull-left">
                    <div class="form-group">
                        <input class="form-control" type="text" placeholder="Search">
                    </div>
                    <button class="btn btn-default" type="submit">Submit</button>
                </form>
                <ul class="nav navbar-nav pull-right">
                    <li>
                        <a href="#" style="padding-top: 10px;"><img src="fb-icon.png"></a>
                    </li>
                    <li>
                        <a href="#"><img src="phone-icon.png"></a>
                    </li>
                    <li>
                        <a href="#"><img src="icon-insta.png"></a>
                    </li>
                </ul>
            </div>

Вам просто нужно повторно применить некоторые из ваших классов.

Исходя из моего опыта, лучший способ организовать макет веб-страницы - это использовать таблицы (строки и столбцы). Начните с создания эскиза макета и представления границ вокруг элементов вашего сайта.

Я предлагаю вам использовать таблицу стилей Bootstrap, включив файл CSS в заголовок своей страницы

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

Затем с помощью классов CSS row а также .col-md-* за div классы элементов содержат.

Обратитесь к странице ( https://getbootstrap.com/docs/3.3/css/) для примеров кода.

Ваша структура может выглядеть примерно так:

<div class="row">
  <div class="col-md-8">Brand name</div>
  <div class="col-md-4">social media tags</div>
</div>

<div class="row">
  <div class="col-md-6">navigation</div>
  <div class="col-md-6">search</div>
</div>

<div class="row">
  <div class="col-md-12">Body</div>
</div>
Другие вопросы по тегам