HTML 将图标与徽标对齐
HTML Aligning icons with logo
我遇到了一些问题,我无法让图标正确对齐。如果我删除所有图标的部分,徽标和标题会完美对齐,但是在添加图标时,会导致大量问题。对不起,如果这是一个愚蠢的问题,html 对我来说是个新问题!
我正在为设计元素使用基础 HTML5 模板:HTML5UP Editorial
HTML & CSS:
/* Header */
#header {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
border-bottom: solid 5px #f56a6a;
padding: 6em 0 1em 0;
position: relative; }
#header > * {
-moz-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
margin-bottom: 0; }
#header .logo {
border-bottom: 0;
color: inherit;
font-family: "Roboto Slab", serif;
font-size: 1.125em; }
#header .icons {
text-align: right; }
@media screen and (max-width: 1680px) {
#header {
padding-top: 5em; } }
@media screen and (max-width: 736px) {
#header {
padding-top: 6.5em; }
#header .logo {
font-size: 1.25em;
margin: 0; }
#header .icons {
height: 5em;
line-height: 5em;
position: absolute;
right: -0.5em;
top: 0; } }
/* Icons */
ul.icons {
cursor: default;
list-style: none;
padding-left: 0; }
ul.icons li {
display: inline-block;
padding: 0 1em 0 0; }
ul.icons li:last-child {
padding-right: 0; }
ul.icons li .icon {
color: inherit; }
ul.icons li .icon:before {
font-size: 1.25em; }
<!-- Header -->
<header id="header">
<div>
<a href="index.php" class="logo"><img style="vertical-align:middle; margin-right:0.5em;"; src="images/cat-logo.png"; alt=""; width="64"; height="64";/></a>
<a class="logo"><strong> Oscat Pets</strong></a>
<ul class="icons">
<li><a href="#" class="icon brands fa-facebook-f"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon brands fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-snapchat-ghost"><span class="label">Snapchat</span></a></li>
<li><a href="#" class="icon brands fa-medium-m"><span class="label">Medium</span></a></li>
</ul>
</div>
</header>
Example of Current Broken Alignment
Example of how Alignment should look
Example of Header without icons being generated
Example of HTML Inspect
尝试使用 position: relative
而不是 position: absolute
。
如需进一步了解,您可以尝试参考此 page。
#header .icons {
height: 5em;
line-height: 5em;
position: relative;
right: -0.5em;
top: 0; } }
您必须将以下代码添加到您的 css 才能使其正常工作。
#header > div {
display: flex;
align-items: center;
}
#header > div > ul.icons {
margin-left: auto;
}
尝试以下操作。我分成两个 div 并将徽标 div 浮动到左侧
<style>
/* Header */
#header {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
border-bottom: solid 5px #f56a6a;
padding: 6em 0 1em 0;
position: relative;
}
#header>* {
-moz-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
margin-bottom: 0;
}
#header .logo {
border-bottom: 0;
color: inherit;
font-family: "Roboto Slab", serif;
font-size: 1.125em;
}
#header .icons {
text-align: right;
}
@media screen and (max-width: 1680px) {
#header {
padding-top: 5em;
}
}
@media screen and (max-width: 736px) {
#header {
padding-top: 0;
}
#header .logo {
font-size: 1.25em;
margin: 0;
border: 0;
}
#header .icons {
height: 5em;
line-height: 5em;
right: -0.5em;
top: 0;
}
}
/* Icons */
ul.icons {
cursor: default;
list-style: none;
padding-left: 0;
}
ul.icons li {
display: inline-block;
padding: 0 1em 0 0;
}
ul.icons li:last-child {
padding-right: 0;
}
ul.icons li .icon {
color: inherit;
}
ul.icons li .icon:before {
font-size: 1.25em;
}
</style>
<!-- Header -->
<header id="header">
<div style="float: left;">
<a href="index.php" class="logo"><img style="vertical-align:middle; margin-right:0.5em;" ; src="images/cat-logo.png" ; alt="" ; width="64" ; height="64" ;/></a>
<a class="logo"><strong> Oscat Pets</strong></a>
</div>
<div>
<ul class="icons">
<li><a href="#" class="icon brands fa-facebook-f"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon brands fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-snapchat-ghost"><span class="label">Snapchat</span></a></li>
<li><a href="#" class="icon brands fa-medium-m"><span class="label">Medium</span></a></li>
</ul>
</div>
</header>
您展示的模板 CSS 中有些内容要么非常过时,要么非常糟糕。因为,即使它明确地使用了 flexbox,它也会使用 oldschool position
ing 之类的东西来做 flexbox 实际上擅长的事情;奇怪。
无论如何,这应该能满足您的所有需求:
/* reset header CSS to saner defaults */
#header, #header > div, #header div > a, #header .logo, #header ul.icons, #header ul.icons li, #header ul.icons li .icon {
position: static;
display: flex;
flex: 0 0 auto;
height: auto; width: auto;
line-height: normal;
padding: 0;
}
/* now define the header layout */
#header { padding: 1em; }
#header > div { width: 100%; flex-flow: row nowrap; justify-content: flex-start; align-items: center; align-content: center; gap: 1.0em; }
#header ul.icons { flex: 1 1 auto; flex-flow: row wrap; justify-content: flex-end; align-items: center; align-content: center; gap: 0.5em; }
只需将 CSS 放在您的样式表中(某处 under/after 模板代码)。
请注意,您的 <a ... class="logo">
元素包含一些奇怪的 ;
。您在 style=""
参数内使用 ;
分隔符,但在 HTML.
参数外不使用
您好,感谢大家的反馈和建议!经过大约 6 个小时的尝试很多不同的事情后,结果是缺少了一个简单的 ul class:
语句
style="align-self: flex-end;"
尽管基本代码已更改,但文本现在已正确对齐:
<!-- Header -->
<header id="header">
<a href="index.php" class="logo"><img style="vertical-align:middle; margin-right:0.5em;" src="images/cat-logo.png" alt="" width="64" height="64" />
<strong> Oscat Pets</strong></a>
<ul class="icons" style="align-self: flex-end;">
<li><a href="#" class="icon brands fa-facebook-f"><span class="label"; >Facebook</span></a></li>
<li><a href="#" class="icon brands fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-snapchat-ghost"><span class="label">Snapchat</span></a></li>
<li><a href="#" class="icon brands fa-medium-m"><span class="label">Medium</span></a></li>
</ul>
</header>
最终,模板没有问题,我只是使用了错误的功能。尽管将考虑 Raxi 的贡献,但在进一步操纵该项目时!
感谢大家对我的第一个 post 这么快的支持!我真的很感激,一定会充分参与这个网站!
我遇到了一些问题,我无法让图标正确对齐。如果我删除所有图标的部分,徽标和标题会完美对齐,但是在添加图标时,会导致大量问题。对不起,如果这是一个愚蠢的问题,html 对我来说是个新问题!
我正在为设计元素使用基础 HTML5 模板:HTML5UP Editorial
HTML & CSS:
/* Header */
#header {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
border-bottom: solid 5px #f56a6a;
padding: 6em 0 1em 0;
position: relative; }
#header > * {
-moz-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
margin-bottom: 0; }
#header .logo {
border-bottom: 0;
color: inherit;
font-family: "Roboto Slab", serif;
font-size: 1.125em; }
#header .icons {
text-align: right; }
@media screen and (max-width: 1680px) {
#header {
padding-top: 5em; } }
@media screen and (max-width: 736px) {
#header {
padding-top: 6.5em; }
#header .logo {
font-size: 1.25em;
margin: 0; }
#header .icons {
height: 5em;
line-height: 5em;
position: absolute;
right: -0.5em;
top: 0; } }
/* Icons */
ul.icons {
cursor: default;
list-style: none;
padding-left: 0; }
ul.icons li {
display: inline-block;
padding: 0 1em 0 0; }
ul.icons li:last-child {
padding-right: 0; }
ul.icons li .icon {
color: inherit; }
ul.icons li .icon:before {
font-size: 1.25em; }
<!-- Header -->
<header id="header">
<div>
<a href="index.php" class="logo"><img style="vertical-align:middle; margin-right:0.5em;"; src="images/cat-logo.png"; alt=""; width="64"; height="64";/></a>
<a class="logo"><strong> Oscat Pets</strong></a>
<ul class="icons">
<li><a href="#" class="icon brands fa-facebook-f"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon brands fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-snapchat-ghost"><span class="label">Snapchat</span></a></li>
<li><a href="#" class="icon brands fa-medium-m"><span class="label">Medium</span></a></li>
</ul>
</div>
</header>
Example of Current Broken Alignment
Example of how Alignment should look
Example of Header without icons being generated
Example of HTML Inspect
尝试使用 position: relative
而不是 position: absolute
。
如需进一步了解,您可以尝试参考此 page。
#header .icons {
height: 5em;
line-height: 5em;
position: relative;
right: -0.5em;
top: 0; } }
您必须将以下代码添加到您的 css 才能使其正常工作。
#header > div {
display: flex;
align-items: center;
}
#header > div > ul.icons {
margin-left: auto;
}
尝试以下操作。我分成两个 div 并将徽标 div 浮动到左侧
<style>
/* Header */
#header {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
border-bottom: solid 5px #f56a6a;
padding: 6em 0 1em 0;
position: relative;
}
#header>* {
-moz-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
margin-bottom: 0;
}
#header .logo {
border-bottom: 0;
color: inherit;
font-family: "Roboto Slab", serif;
font-size: 1.125em;
}
#header .icons {
text-align: right;
}
@media screen and (max-width: 1680px) {
#header {
padding-top: 5em;
}
}
@media screen and (max-width: 736px) {
#header {
padding-top: 0;
}
#header .logo {
font-size: 1.25em;
margin: 0;
border: 0;
}
#header .icons {
height: 5em;
line-height: 5em;
right: -0.5em;
top: 0;
}
}
/* Icons */
ul.icons {
cursor: default;
list-style: none;
padding-left: 0;
}
ul.icons li {
display: inline-block;
padding: 0 1em 0 0;
}
ul.icons li:last-child {
padding-right: 0;
}
ul.icons li .icon {
color: inherit;
}
ul.icons li .icon:before {
font-size: 1.25em;
}
</style>
<!-- Header -->
<header id="header">
<div style="float: left;">
<a href="index.php" class="logo"><img style="vertical-align:middle; margin-right:0.5em;" ; src="images/cat-logo.png" ; alt="" ; width="64" ; height="64" ;/></a>
<a class="logo"><strong> Oscat Pets</strong></a>
</div>
<div>
<ul class="icons">
<li><a href="#" class="icon brands fa-facebook-f"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon brands fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-snapchat-ghost"><span class="label">Snapchat</span></a></li>
<li><a href="#" class="icon brands fa-medium-m"><span class="label">Medium</span></a></li>
</ul>
</div>
</header>
您展示的模板 CSS 中有些内容要么非常过时,要么非常糟糕。因为,即使它明确地使用了 flexbox,它也会使用 oldschool position
ing 之类的东西来做 flexbox 实际上擅长的事情;奇怪。
无论如何,这应该能满足您的所有需求:
/* reset header CSS to saner defaults */
#header, #header > div, #header div > a, #header .logo, #header ul.icons, #header ul.icons li, #header ul.icons li .icon {
position: static;
display: flex;
flex: 0 0 auto;
height: auto; width: auto;
line-height: normal;
padding: 0;
}
/* now define the header layout */
#header { padding: 1em; }
#header > div { width: 100%; flex-flow: row nowrap; justify-content: flex-start; align-items: center; align-content: center; gap: 1.0em; }
#header ul.icons { flex: 1 1 auto; flex-flow: row wrap; justify-content: flex-end; align-items: center; align-content: center; gap: 0.5em; }
只需将 CSS 放在您的样式表中(某处 under/after 模板代码)。
请注意,您的 <a ... class="logo">
元素包含一些奇怪的 ;
。您在 style=""
参数内使用 ;
分隔符,但在 HTML.
您好,感谢大家的反馈和建议!经过大约 6 个小时的尝试很多不同的事情后,结果是缺少了一个简单的 ul class:
语句style="align-self: flex-end;"
尽管基本代码已更改,但文本现在已正确对齐:
<!-- Header -->
<header id="header">
<a href="index.php" class="logo"><img style="vertical-align:middle; margin-right:0.5em;" src="images/cat-logo.png" alt="" width="64" height="64" />
<strong> Oscat Pets</strong></a>
<ul class="icons" style="align-self: flex-end;">
<li><a href="#" class="icon brands fa-facebook-f"><span class="label"; >Facebook</span></a></li>
<li><a href="#" class="icon brands fa-twitter"><span class="label">Twitter</span></a></li>
<li><a href="#" class="icon brands fa-instagram"><span class="label">Instagram</span></a></li>
<li><a href="#" class="icon brands fa-snapchat-ghost"><span class="label">Snapchat</span></a></li>
<li><a href="#" class="icon brands fa-medium-m"><span class="label">Medium</span></a></li>
</ul>
</header>
最终,模板没有问题,我只是使用了错误的功能。尽管将考虑 Raxi 的贡献,但在进一步操纵该项目时!
感谢大家对我的第一个 post 这么快的支持!我真的很感激,一定会充分参与这个网站!