缺少动画是由于原始链接(标签)元素没有transition:
定义属性。根据此处的定位文档,它似乎只inline-block
适用于流动文本并且无法显示包装文本,即使使用 wrap: break-word; 当下。,也不起作用,因为它们都是inline-flex
块显示类型。inline-grid
一种解决方案是在某些点断开文本行,并<br>
为某些页面宽度/设备设置不同的元素以不同的@media 宽度显示。然而,inline-block
元素不能像普通文本一样换行,所以中断最终使它成为文本中间的 2 行块。
div {
border: 1px solid black;
/* text-align: justify; */
width: 20em;
}
a {
text-decoration: none;
/* new */
transition: transform .15s; /* Animations: "transform" on a-tag must be present */
display: inline-block;
}
a:hover {
transform: scale(1.01); /* then we transform the transition here */
-ms-transform: scale(1.01); /* IE 9 */
-webkit-transform: scale(1.01); /* Safari 3-8 */
}
<div>
<p>Today, <a href="https://github.com/Aster89/WinZoZ">my
Vim plugin for easy window navigation</a>, which I named
<a href="https://nonciclopedia.org/wiki/Windows">WinZoZ</a>,
has got its first star! Given <a
href="https://stackoverflow.com/questions/69007954/vim-remap-ctrl-w-in-insert-mode-to-behave-as-it-does-in-normal-mode#comment121984179_69007954">this
comment on StackOverflow</a>, the star is from the user <a
href="https://stackoverflow.com/users/3271687/yolenoyer">@yolenoyer</a>.
</p>
</div>
一些 JS 脚本
将行分解为ul
列表中的块,其中 li 项本身是内联块,这可能是一种解决方案。在每个所需 div 的内容上运行 DOM 加载的函数可以做到这一点。这些 div 中所有a
元素的循环将每个链接转换为单词数组并将数组项放入ul -> li
. 也许已经有一个jQuery 插件。
轻量级 JS 示例
(不是完整的代码,而是使用querySelectorAll
,它可以用来从一个<div>
你作为函数输入的类收集链接):
<script type="text/javascript">
// function to look for a-tags in a DIV with a specific class
function linkToList(inputDivClass) {
// get the links inside the div with the input div class
const allLinks = document.querySelectorAll("div." + inputDivClass + " > a");
for (var i = allLinks.length; i < 0; i++) {
// here we go through the links returned from the div...
}
// then go through the data and see what to put where...
}
// when dom is loaded we run the function that looks for the divs with the a-tags...
document.addEventListener("DOMContentLoaded", linkToList(inputDivClass) );
</script>