【问题标题】:how to put icons in line with other a tags?如何将图标与其他标签对齐?
【发布时间】:2017-09-05 04:50:09
【问题描述】:

我刚刚开始学习 Web 开发,我遇到了一些与标签、按钮和图标对齐相关的问题。

以下是我面临的问题:

  1. 品牌名称不符合 a 标签。我在每个班级都尝试了 display:inline; 但它不起作用。

  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>`

请原谅我的格式不正确,但我是新来的。希望能找到一些答案。谢谢

【问题讨论】:

  • 您能否分享您的要求的确切屏幕截图以便更好地理解(您需要如何)。
  • 您的代码 sn-ps 看起来不完整。很难理解这是否是一个错误,你有一些你想隐藏的私人内容。您能否通过确保仅删除机密数据并仍然保留“配对标签”来提供更好的代码 sn-p?例如,有一个关闭 nav 标记很难分辨它是在哪里打开的。

标签: html css twitter-bootstrap frontend


【解决方案1】:

根据我的经验,组织网页布局的最佳方式是使用表格(行和列)。首先勾画布局并想象您网站项目周围的边界。

我建议您通过在页面标题中包含 CSS 文件来使用 Bootstrap 样式表

<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/#grid-example-basic)。

您的结构可能类似于以下内容:

<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>

【讨论】:

  • 你是对的 khadijah。但我觉得如果我现在从 col 和 row 类开始,我会把这段代码弄得一团糟
【解决方案2】:
  1. 你需要把h1标签放在nav标签里面。
  2. 您在开始表单之前关闭了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>
    

【讨论】:

    【解决方案3】:

    @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 类将它们拉到导航栏的右侧。为了确保它们在同一行,请使用 Bootstrap 的 float 类:pull-leftpull-right。您需要使用padding-top CSS 属性在a 标记的顶部添加填充。我已经完成了一个,所以你可以知道如何做。

    <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>
    

    您只需要重新申请一些课程。

    【讨论】:

    • 非常感谢@cwanjt。你的评论真的很有帮助,我能够解决我的大部分问题。但是现在的问题是 home、order、recipe a 标签已经向上移动,并且所有标签都不再对齐。我尝试在 CSS 的“颜色”类中使用边距和填充,但由于某种原因,这不起作用。我尝试使用
    • jsfiddle上的结果和实际结果不一样。我真的需要帮助
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签