我目前正在构建一个模板,它将成为我新网站的基础,并且已经达到添加动画和其他“特殊效果”的地步。作为我的模板的基础,我使用的是 Boilerplate h5bp 模板,并且我的标题元素是由内联块构建的 -
<header>
<div class="box" id="head-one">
<h1>Your name here</h1>
<h2>Click to call <a href="tel:your-phone-number">your-phone</a> or <a href="mailto:you@your-domain.what.where?subject=Message%20subject%20here&body=Some%20text%20to%20add%20to%20the%20message%20body.">Email Us</a></h2>
<nav>
<ul class="menu">
<li><a href="index.html">Page 1</a></li>
<li><a href="accordion.html">Page 2</a></li>
<li><a href="boxs.html">Page 3</a></li>
<li><a href="images.html">Page 4</a></li>
</ul>
</nav>
</div><!-- close class box id head-one
--><div class="box" id="head-two"><!--
--><img id="logo-head" src="images/logo.svg" alt="Logo for your web site">
</div><!-- close class box id head-two -->
</header>
这就是我完成 css 对齐的方式(使用的颜色纯粹是为了突出显示此阶段的框大小和对齐方式) -
header
{
border: 0.5em solid blue;
box-sizing: border-box;
-moz-box-sizing: border-box;
text-align: justify;
padding: 1em 0.5em 0em 0.5em;
margin: 5px auto;
}
nav,
ul.menu,
ul.menu li
{
display: inline-block;
}
#logo-head
{
width: 200px;
height: 200px;
padding: 0.5em;
}
div.box#head-two
{
width: 100%;
height: 100%;
text-align:center;
display: inline-block;
animation:logo 5s linear 0.3s 3;
-webkit-animation:logo 5s linear 0.3s 3;
}
@keyframes logo
{
0% {transform:rotate(0deg);}
25% {transform:rotate(90deg);}
50% {transform:rotate(180deg);}
100% {transform:rotate(360deg);}
}
@-webkit-keyframes logo
{
0% {-webkit-transform:rotate(0deg);}
25% {-webkit-transform:rotate(90deg);}
50% {-webkit-transform:rotate(180deg);}
100% {-webkit-transform:rotate(360deg);}
}
div.box#head-one
{
width: 75%;
text-align: center;
}
header::after
{
content: '';
width: 100%;
display: inline-block;
}
header div.box#head-one::before
{
content: '';
height: 100%;
width: 100%;
vertical-align: middle;
}
但是,动画将“header div.box#head-two”中包含的徽标推到标题框的底部,而不是在右侧向上,没有动画,徽标很好地垂直对齐 - 中间和右侧标题内容的其余部分。
如何阻止这个基本动画破坏我的结构,这是我在这个项目中要解决的一个重要问题,因为页面布局取决于 inline-block 显示值。