首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查看是否使用jQuery将链接文本换行为2行?

查看是否使用jQuery将链接文本换行为2行?
EN

Stack Overflow用户
提问于 2013-02-19 19:37:28
回答 2查看 1.4K关注 0票数 3

我有下面的CSS和HTML。我有一个菜单,其中的列表是一个设置的高度和宽度,并有相对位置。它们中的链接绝对会占据所有可用空间,因此整个li都是可点击的。到目前一切尚好。

问题是链接文本的数量可能会有所不同。当链接文本换行到2行(例如第二个链接)时,我希望有较少的垂直填充。我会添加一个类到第二个链接,除了解决方案需要是动态的和使用javascript。菜单可能会改变,以便第一个链接有更多的文本和换行到2行,在这种情况下,我将需要删除它的垂直填充也。我需要这在不需要更改代码的情况下发生。

我开始研究jQuery的解决方案。我试着测量链接的高度,如果它高于'x‘,那么我可以添加删除垂直填充的类。然而,这不会工作,因为高度是由绝对位置设置的。

有没有其他方法来衡量文本是否换行到2行?我可以计算字符的数量,但这似乎是可靠的,因为一些字符比其他字符占用更多的宽度。

如果我在包含文本的链接中添加一个跨度,会起作用吗?那么,假设链接仍然可以绝对定位,它的跨度可以测量其高度?

http://jsfiddle.net/cUQbJ/3/

代码语言:javascript
运行
复制
<li>
    <a href="#">Link1</a>    
</li>    
<li>
    <a href="#">Link 2 with long text</a>    
</li>    
<li>
    <a href="#">Link3</a>    
</li>    



 li {
   display: block;
    float: left;
    position: relative;
    text-align: center;
    width: 83px;
    min-height: 53px;
    background-color: grey;
    margin-right: 5px;
}
a {
    padding-top: 13px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left:0;
}

更新-我需要支持IE7。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-26 19:30:03

我使用jQuery在链接文本周围插入一个跨度,从而解决了这个问题。然后,jQuery测量跨度的高度,并在需要时对其li应用填充。

从响应性的角度来看,这可能不是最好的解决方案,如果用户调整了浏览器的大小,但它对我来说是有效的,这只是一个样式问题,所以如果它出了一点问题,也不是世界末日。

票数 1
EN

Stack Overflow用户

发布于 2013-02-19 19:54:04

这里不需要使用任何JS。

让我们稍微修改一下HTML结构。我将链接内容包装在span中。我们将垂直对齐这些跨度,而不是a标记。

代码语言:javascript
运行
复制
<li>
    <a href="#" class="valign"><span class="valigned">Link 2 with long text</span></a>
</li>

http://jsfiddle.net/cUQbJ/5/

我将主CSS抽象为两个独立的类.valign (父类)和.valigned (需要居中)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14956536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档