html - 元素周围的线
问题描述
我想要动画3.svg
张图片:
<div class="sequence">
<img src="assets/img/1.svg"/>
<img src="assets/img/2.svg"/>
<img src="assets/img/3.svg"/>
</div>
和css
:
.sequence {
position: relative;
}
.sequence img {
position: absolute;
top: 0;
opacity: 0;
animation: cycle 0.3s steps(1) infinite;
}
@keyframes cycle {
0% { opacity: 1; }
33% { opacity: 0; }
}
.sequence img:nth-child(2) {
animation-delay: 0.1s;
}
.sequence img:nth-child(3) {
animation-delay: 0.2s;
}
但是这种方式在某些时候动画开始滑动和闪烁,包含<img src="assets/img/1.svg" alt="" alt=""/>
in<a class="sequence" id="anm">
不允许很好地将图像与元素中心对齐。
所以,从背景的另一种方式:
img{
width: 60px;
height: 60px;
border: 0px;
border-style: none; /*border-style: hidden;*/
outline: none;
animation: rotateImages 0.3s infinite;
}
@keyframes rotateImages {
0% { background: url("assets/img/1.svg"); }
32% { background: url("assets/img/1.svg"); }
33% { background: url("assets/img/2.svg"); }
65% { background: url("assets/img/2.svg"); }
66% { background: url("assets/img/3.svg"); }
100% { background: url("assets/img/3.svg"); }
}
<img></img>
没有这个缺陷的作品,但我不知道,如何删除创建元素周围的细黑线,粉红色 squire 周围的边框,如下所示,显示为.svg
, 。gif
, .png
. 我试过 add border-width: 0px;
,以防万一border-color: white;
因为我的背景是白色的,但它看起来像是别的东西。我不确定如何删除它:
例子:
https://jsfiddle.net/3gxpbauo/
.png-s
,这是相同的图像.svg
:
正如我已经指出的,我想将它与一个文本中心线对齐<label><h1><p id="nameblock">Text</p></h1></label>
。使用<div id="container"></div>
, 显示在Prajyot Tote答案中,或者如上所示使用<a class="sequence" id="anm">
, (也成功显示没有轮廓的标签),在这两种情况下都将元素对齐在单独的行上,或者.inline{display:inline-block;}
在文本的底行使用 of。这是<img>
和<div id="container"></div>
区别:
解决方案:
因此,我在Prajyot Tote的帮助下为我的特定任务找到的解决方案,基于答案, #container
不使用#img
with border: 0px;
for .inline
:
#container {
width: 72px;
height: 73px;
border: 0px;
animation: rotateImages 0.3s infinite;
}
.inline{display:inline-block;vertical-align: middle; border: 0px;}
@keyframes rotateImages {
0% { background: url("https://i.stack.imgur.com/d0tnz.png"); }
32% { background: url("https://i.stack.imgur.com/d0tnz.png"); }
33% { background: url("https://i.stack.imgur.com/elROb.png"); }
65% { background: url("https://i.stack.imgur.com/elROb.png"); }
66% { background: url("https://i.stack.imgur.com/O0fGg.png"); }
100% { background: url("https://i.stack.imgur.com/O0fGg.png"); }
}
<div class="inline">
<label><h1><p id="nameblock">Some text</p></h1></label>
</div>
<div id="container" class="inline"></div>
解决方案
问题不在于边框、svg 或 png,而在于您正在使用的标签。
background-image
可以与任何元素一起使用。img
将标签更改为div
,一切都会好起来的。
#container,
img {
width: 60px;
height: 60px;
animation: rotateImages 0.3s infinite;
}
h1 {
margin: 0;
line-height: 1;
padding: 0 20px;
}
.inline {
display: inline-block;
vertical-align: middle;
border: 1px solid #eee;
}
@keyframes rotateImages {
0% {
background: url("https://i.stack.imgur.com/d0tnz.png");
}
32% {
background: url("https://i.stack.imgur.com/d0tnz.png");
}
33% {
background: url("https://i.stack.imgur.com/elROb.png");
}
65% {
background: url("https://i.stack.imgur.com/elROb.png");
}
66% {
background: url("https://i.stack.imgur.com/O0fGg.png");
}
100% {
background: url("https://i.stack.imgur.com/O0fGg.png");
}
}
<div class="sequence">
<div class="inline">
<label><h1><p id="nameblock">Some text</p></h1></label>
</div>
<div id="container" class="inline"></div>
</div>
我们看到的边框是空img
标签。无法帮助那个空img
标签渲染。
更新了代码以使元素正确内联。
注意:添加border
,以便可以正确看到元素位置。并且padding
是为了美观。
推荐阅读
- ios - 为什么 Devise [DELETE] 方法在通过 iOS 添加主屏幕用于注销(但不用于销毁)时会失败?
- ios - 此 Rx 代码是否订阅 JSON 本身的更改?
- javascript - 获取 data-* 属性的值并设置它们的列表
- c# - 获取 java.lang.IllegalStateException:默认 FirebaseApp 未在此过程中初始化 {your_package_name}
- javascript - Webpack 4 文件加载器将 svg 文件内容更改为 __webpack_public_path__
- sql - 在几年内每周获取最新条目
- android - 如何解决“SplashActivity 泄漏了最初添加在此处的窗口 DecorView”的问题?
- amazon-dynamodb - 按非分区字段查询 DynamoDB
- blazor-server-side - 在项目中使用 Blazorise 不显示菜单
- rust - 如何构建一个没有共享库的 Rust 应用程序?