标题对齐困难的HTML和CSS

odopli94  于 2023-04-08  发布在  其他
关注(0)|答案(3)|浏览(126)

我挣扎了几个小时想弄清楚这一点,但我至少有所有的部分看起来的方式,我想要他们。
我试图对齐一个标志(目前在页面的正确位置),导航栏(目前居中,但不在同一行),和一个按钮(目前浮动的另一行上的边缘)对齐作为标题。无论我如何操作,我似乎不能让他们在同一行上看起来像他们应该。
下面是我的HTML代码:

/* Globals */

* {
  font-family: 'Chronica';
}

/* Elements */

.header {
  width: 100%;
  overflow: hidden;
}

.nav ul {
  list-style-type: none;
  text-align: center;
}

.nav ul li {
  display: inline;
}

.nav ul li a {
  text-decoration: none;
  color: black;
  padding-left: 50px;
  padding-right: 50px;
  transition: 0.3s;
}

.nav ul li a:hover {
  color: gray;
}

img {
  width: 83px;
  margin-left: 30px;
}

#btn {
  background-color: #ff0000;
  border: none;
  border-radius: 5px;
  padding-left: 22px;
  padding-right: 23px;
  padding-top: 12px;
  padding-bottom: 12px;
  float: right;
  margin-right: 30px;
  transition: 0.2s;
  cursor: pointer;
  font-size: 16px;
}

#btn a {
  text-decoration: none;
  color: white;
}

#btn:hover {
  border-radius: 15px;
}
<!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.0" />
  <title>Document</title>
  <link rel="stylesheet" href="css/style.css" />
</head>

<body>
  <div class="header">
    <p>
      <a href="https://www.deliberatemedia.com/">
        <img src="Images/dm logo.png" class="logo" /></a>
    </p>
    <nav class="nav">
      <ul>
        <li><a href="#">ABOUT</a></li>
        <li><a href="#">PRICING</a></li>
        <li><a href="#">CONTACT</a></li>
      </ul>
    </nav>
    <button id="btn">
        <a href="https://www.deliberatemedia.com/schedule-a-meeting"
          >GET STARTED</a
        >
      </button>
  </div>
</body>

</html>

我试图创建的是我现有的website上的头(试图从头开始创建它,以学习HTML和CSS中的编码和快捷方式)。
一直在滚动通过堆栈溢出以及w3schools尝试各种不同的选项,并试图优化,如果为外观,我试图实现我现有的网站,并已提出了空。
在这一点上经历了10次迭代,没有任何工作,但这是我所得到的最接近的。

ryevplcw

ryevplcw1#

要实现你想要的,你需要使用flex或grid,这里我使用flex来解决你的问题:

.header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
pgpifvop

pgpifvop2#

查看Flexbox
你加上这个

display: flex;
  justify-content: space-between;

你的头

/* Globals */

* {
  font-family: 'Chronica';
}

/* Elements */

.header {
  width: 100%;
  overflow: hidden;
  /* Add this */
  display: flex;
  justify-content: space-between;
  /*----*/
}

.nav ul {
  list-style-type: none;
  text-align: center;
}

.nav ul li {
  display: inline;
}

.nav ul li a {
  text-decoration: none;
  color: black;
  padding-left: 50px;
  padding-right: 50px;
  transition: 0.3s;
}

.nav ul li a:hover {
  color: gray;
}

img {
  width: 83px;
  margin-left: 30px;
}

#btn {
  background-color: #ff0000;
  border: none;
  border-radius: 5px;
  padding-left: 22px;
  padding-right: 23px;
  padding-top: 12px;
  padding-bottom: 12px;
  float: right;
  margin-right: 30px;
  transition: 0.2s;
  cursor: pointer;
  font-size: 16px;
}

#btn a {
  text-decoration: none;
  color: white;
}

#btn:hover {
  border-radius: 15px;
}
<div class="header">
  <p>
    <a href="https://www.deliberatemedia.com/">
      <img src="Images/dm logo.png" class="logo" /></a>
  </p>
  <nav class="nav">
    <ul>
      <li><a href="#">ABOUT</a></li>
      <li><a href="#">PRICING</a></li>
      <li><a href="#">CONTACT</a></li>
    </ul>
  </nav>
  <button id="btn">
    <a href="https://www.deliberatemedia.com/schedule-a-meeting">
      GET STARTED
    </a>
  </button>
</div>
niwlg2el

niwlg2el3#

哦,亲爱的,你把你的HTML容器弄得如此复杂,首先是一个<p>,然后是一个<a>,最后是你的图像。
你可以创建3个div,一次抛出你的图片,一个是你的导航,另一个是你的按钮。然后把这3个div放到一个容器中,并给予容器一个display: flex;。就完成了!
示例:

<head>
    <style>
         .container{
              display: flex;
              justify-content: center;
              align-items: center;
          }
    </style>
<body>
    <div class = 'container'>
        <div>
           <!-- Your Logo -->
        </div>
        <div>
           <!-- Your Nav -->
        </div>
        <div>
           <!-- Your button -->
        </div>
    </div>
</body>

相关问题