gpt4 book ai didi

html - 动画SVG的对齐

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:46 24 4
gpt4 key购买 nike

我对文本的 SVG 对齐有问题。
JSFiddle:https://jsfiddle.net/ajhzdhff/2/

我希望“AN”从一开始就位于中心位置。

但如果我这样做:

.logo-svg {
margin-left: 16em;
transition-delay: 222ms;
}

在一台计算机上完全位于中心,但在另一台计算机上 - 不。

最佳答案

如果您不想依靠仔细调整的边距来使您的 SVG 居中,那么通过进行一些更改,您可以将居中留给浏览器。这意味着居中将继续工作,即使其他元素如 <p>尺寸变化。

这是我的做法:

  1. 将整个内容包装在 <div> 中所以我们有一些东西要居中。如果你在页面上居中,那么你不需要这个。你可以只使用 <body> .
  2. 给出 <div>宽度足以容纳整个 SVG (340px)。如果您的原始容器(或 <body>)比 SVG 宽,那么您也不需要它。

  3. 设置preserveAspectRatio="xMinYMid slice在 SVG 上。这使得 SVG 内容与 SVG 视口(viewport)左对齐而不是居中。 "slice"部分意味着它溢出 SVG 的 RHS,而不是按比例缩小以适合。

  4. 设置height SVG 的大小为 72,以便其宽度/高度比与 viewBox 相匹配。这是下一步工作所必需的。

  5. 设置 SVG 的宽度,使其仅覆盖前两个字母。由于宽度与 SVG 的最初可见部分(“AN”)相匹配,它会自动在容器中居中。

  6. 悬停时,。将 SVG 的宽度设置为全宽 (340px)。浏览器将重新放置新的、更宽的 SVG。

请参阅下面的工作演示。我在这里稍微简化了您的示例以使事情更清楚。

body {
text-align: center;
}

svg {
margin: 80px auto 0;
width: 106px;
}

svg:hover {
width: 340px;
}

.logo-type {
opacity: 0;
}

svg:hover .logo-type {
opacity: 1;
}

p {
font-size: 13px;
color: #777;
background: #333;
width: 15em;
margin: 3em auto;
padding: 0.75em 0;
}
<body>
<div class="container">
<svg class="logo-svg" viewBox="0 0 224.8 47.6" width="340px" height="72px"
preserveAspectRatio="xMinYMid slice">
<g>
<g class="logo-type-group">
<path class="logo-type logo-type-code-ninero" d="M178,0v38.2h-54.4L109.4,24c0,4.7,0,9.5,0,14.2c-12.8,0-25.6,0-38.3,0V29h28.3V24H70.9c0-8,0-16,0-24c21.7,0,43.3,0,65,0
c0,3.3,0,6.6,0,10c-4.7,4.6-9.3,9.3-14,13.9c1.7,1.7,3.4,3.4,5.1,5.1c13.6,0,27.3,0,40.9,0c0-6.3,0-12.7,0-19h-19.1v17.2h-9.3
l0-27.2L178,0z M109.4,23.3c4.4-4.5,8.9-8.9,13.3-13.4h-13.3C109.3,14.4,109.4,18.8,109.4,23.3z M80.4,14.4c6.3,0,12.6,0,19,0
c0-1.5,0-2.9,0-4.4h-19V14.4z"></path>
<path class="logo-type logo-type-code-s" d="M224.8,0c-3.2,3.2-6.5,6.5-9.7,9.7c-7.2,0-14.4,0-21.6,0c-1.6,1.6-3.1,3.1-4.7,4.7c9.7,0,19.3,0,29,0c0,4.5,0,9,0,13.5
c-3.4,3.4-6.9,6.9-10.3,10.3c-9.3,0-18.6,0-27.9,0c0-3.1,0-6.1,0-9.2c7.7,0,15.4,0,23.1,0c1.7-1.7,3.4-3.4,5.1-5.1
c-9.4,0-18.8,0-28.3,0c0-5,0-9.9,0-14.9c3-3,6-6,9-9C200.6,0,212.7,0,224.8,0z"></path>
</g>
</g>

<path class="logo-an" d="M69.7,0c0,15.1,0,30.2,0,45.3c-10.3-10.3-20.7-20.7-31-31c0,7.9,0,15.8,0,23.8c-3.2,0-6.5,0-9.7,0c0-9.4,0-18.8,0-28.2
c-6.4,0-12.8,0-19.3,0c0,4.4,0,8.7,0,13.1c3-3,5.9-5.9,8.9-8.9c2.5,2.5,5,5,7.5,7.5c-8.7,8.7-17.3,17.3-26,26C0,31.7,0,15.9,0,0
c12.8,0,38.5,0,38.5,0c7.1,7.1,14.2,14.2,21.3,21.3c0-7.1,0-14.2,0-21.3C63.1,0,66.4,0,69.7,0z"></path>
</svg>

<p class="hover">***</p>
</div>
</body>

关于html - 动画SVG的对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38289290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com