我不是前端开发人员,我正在尝试创建一个非常简单的页面骨架,目前如下所示:
徽标与标题高度相同
div
,右侧的所有内容都是纯文本。我想将单词 SYNGERY technology partners
对齐到垂直中间。我也不知道如果未来的内容比标题高会发生什么。
我有一种感觉,使用简单的后续
span
元素不是正确的方法。有没有更好的方法来构建它?我不想为此创建一个完整的图像。
我也宁愿远离绝对定位,除非这是推荐的做法。
标题周围有一个
5px
边框 div
以便澄清,我已尽可能简化了 HTML/CSS。
<!DOCTYPE html>
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Gugi&display=swap" rel="stylesheet" />
</head>
<body>
<div id="DivMain">
<div id="DivHeader" style="border: 5px solid red;">
<a href="Index.html">
<img src="Assets/Brand/Logo.png" style="width: 80px; height: 80px;" />
<span class="Logo" style="height: 100px;">SYNERGY</span>
<span>TECHNOLOGY PARTNERS</span>
</a>
</div>
<div id="DivMenu"><a id="AnchorMenuIndex" href="Index.html">HOME</a></div>
<div id="DivBody"><h1>HOME</h1></div>
<div id="DivFooter"><a href="Contact.html">CONTACT</a></div>
</div>
</body>
</html>
<style type="text/css">
* { margin: 0px; padding: 0px; }
body { height: 100%; max-height: 100vh; font-family: Arial, Helvetica, sans-serif; border-color: black; background-color: white; }
a { color: #0E2841; text-decoration: none; }
div { text-align: justify; }
#DivHeader
{
height: 80px;
color: white;
background-color: #0E2841;
vertical-align: middle; /* This is perhaps the problem? */
}
#DivHeader a { color: white; }
#DivMain { background-color: white; }
#DivMenu { }
#DivBody { }
#DivFooter { }
.Logo { font-family: "Gugi", sans-serif; font-weight: 400; font-style: normal; font-size: 36px; }
</style>
我环顾四周,找了各种办法,都没有找到我能理解的东西。任何指示将不胜感激。
* {
margin: 0px;
padding: 0px;
}
body {
height: 100%;
max-height: 100vh;
font-family: Arial, Helvetica, sans-serif;
border-color: black;
background-color: white;
}
a {
color: #0e2841;
text-decoration: none;
}
div {
text-align: justify;
}
#DivHeader {
height: 80px;
color: white;
background-color: #0e2841;
}
#DivHeader a {
color: white;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
#DivHeader a * {
color: white;
display: inline-block;
vertical-align: middle;
}
#DivMain {
background-color: white;
}
#DivMenu {
}
#DivBody {
}
#DivFooter {
}
.Logo {
font-family: "Gugi", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 36px;
}
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Gugi&display=swap" rel="stylesheet" />
</head>
<body>
<div id="DivMain">
<div id="DivHeader" style="border: 5px solid red;">
<a href="Index.html">
<img src="Assets/Brand/Logo.png" style="width: 80px; height: 80px;" />
<span class="Logo">SYNERGY</span>
<span>TECHNOLOGY PARTNERS</span>
</a>
</div>
<div id="DivMenu"><a id="AnchorMenuIndex" href="Index.html">HOME</a></div>
<div id="DivBody"><h1>HOME</h1></div>
<div id="DivFooter"><a href="Contact.html">CONTACT</a></div>
</div>
</body>
</html>
要使用普通 CSS 解决此问题,首先需要将
display
元素的子元素 (<a>
) 的默认 *
CSS 属性转换为 inline-block
。 接下来,将 vertical-align
属性设置为 middle
。然后将填充和边距归零,这样当您将宽度和高度设置为 100% 时,它就会准确无误(没有额外的像素或数学)。 最后,删除 .Logo
元素上的内联高度样式。 需要修复您尝试垂直对齐的内部内容。 显示 block
或 inline-block
通常可以帮助您实现目标。