仅将边框添加到换行文本的底部

2024-02-05

我试图在一些换行文本上实现下划线,该下划线适合底行文本的宽度,同时仅出现在该底线下方。图1说明了期望的效果

Figure 1

使用这个 HTML:

<h2><span class="inline-block">optatur, volendit inum simolor</span></h2>

并设置span to display:inline;我可以让下划线与文本的宽度完美契合,但它会为所有文本添加下划线。

Or,设置span to display:inline-block;我可以让下划线仅出现在底线下方,但随后它会填充父级的整个宽度。

请参阅 JSfiddle 了解上述示例:http://jsfiddle.net/PWDV7/1/ http://jsfiddle.net/PWDV7/1/

有什么办法可以达到图1的效果吗?


凭借良好的腿从这个答案 https://stackoverflow.com/questions/3738490/finding-line-wraps/3744583#3744583对于有关查找换行的问题,我设法提出了这个解决方案(简而言之,它涉及使用 JS 来查找发生换行的位置,并将跨度包裹在最后一行的所有文本周围):

function underLineText () {
    $underlined_text.each(function(){
        var $this = $(this);
        var text = $this.text();
        var originalText = text;
        var breakWords = new Array();

        //split the words into individual strings 
        var words = text.split(' ');

        //find the height of the first word
        $this.text(words[0]);
        var height = $this.height();

        //if there is more than one word
        if (words.length > 1) {
            //loop through all the words
            for(var i = 1; i < words.length; i++){
                $this.text($this.text() + ' ' + words[i]);

                //check if the current word has a different height from the previous word
                //if this is true, we have witnessed a word wrap!
                if($this.height() > height){
                    height = $this.height();
                    //add the first word after the wrap to a predefined array
                    breakWords.push(words[i]);
                }

                //on the last iteration on the loop...
                if (i === words.length - 1) {
                    if (breakWords.length > 0) {
                        //select the last word of the breakWords array
                        //(this is to handle cases where there there are more than one line or word wraps)
                        var breakStartAt = breakWords[breakWords.length - 1];
                        //add a span before the last word
                        var withSpan = '<span>'+breakStartAt;
                        //replace the last occurrence of this word with the span wrapped version
                        //(this is to handle cases where there are more than one occurrences of the last word)
                        originalText = originalText.replaceLast(breakStartAt,withSpan);
                        //close the last line with a span
                        originalText += "</span>";

                    }
                }
            }
        }
        //if there are no word wraps, wrap the whole text in spans
        else {
            originalText = '<span>'+originalText+'</span>';
        }

        //replace the original text with the span-wrapped mod
        $(this).html(originalText);
    });
}

你可以在这里看到它的工作原理:http://jsfiddle.net/PWDV7/5/ http://jsfiddle.net/PWDV7/5/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅将边框添加到换行文本的底部 的相关文章

  • 为什么我可以在css中将gif设置为背景图片url(),但无法将视频mp4设置为背景url?

    为什么我可以在css中将gif设置为背景图片url 但无法将视频mp4设置为背景url 我尝试了一切 甚至将 url 设置为指向 svg 该 svg 中包含在 src 属性中编码为 base64 的异物视频 但行不通 我不需要 video
  • 是否可以使用“grid-template-areas”删除网格中空行的高度?

    我有一个包含八张 或更少 卡片的网格 我希望卡片自动放置在网格中 而不知道它们的宽度和高度 也就是说 宽度和高度应该在网格样式中指定 当我展示全部 8 张卡片时效果非常好 例子 grid template areas card 1 card
  • Flex、AngularJS + Masonry、akoenig/angular-deckgrid 等 [重复]

    这个问题在这里已经有答案了 我一直在发送此电子邮件 我即将发布一个用于 Web 应用程序安全的应用程序 它需要使用像 Masonry 这样的网格 我已经尝试过所有的 每一个角度模块 指令和不同的方法 包括基于 CSS 的技术 纯 Vanil
  • 平均分配固定大小容器的空间。 Flexbox 的案例?

    如何设计 HTML CSS 结构 将固定大小的容器水平分成三部分 第一部分的高度应与其内容需求一样高 第二部分和第三部分将共享剩余的空间五五十 无论它们的内容如何 如果其内容的大小超过此限制 则该部分应该是可滚动的 它的 HTML 部分很简
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • 如何使用 HTML 和 CSS 在我的网站上显示社交图标?

    我拼命尝试向我的网站添加一些图标 但无法让它们正确显示 我想要的只是一个包含图像并在线显示它们的容器 然后我想在该容器和图像之间添加一些填充 仅此而已 看这里我的方法 如果有人可以帮助我并纠正我的代码 使其真正有效 我会非常高兴 在我的 H
  • 带有覆盖CSS的背景图像

    我如何在 CSS 中设计带有叠加层的背景图像 就像这个示例图像一样 这是代码 我想添加tour类到背景图像和叠加效果 div class tour div class container div class row div class co
  • 当 Chrome 中嵌套滚动中的数据更改时防止页面滚动

    我在页面中有一个固定大小的元素 带有 溢出 滚动 其内容经常更改 我预计该元素内部发生的更改会影响该元素的滚动 但不会影响页面滚动 但是当这个元素位于页面顶部时 页面本身开始滚动 我怎样才能防止这种情况发生 要重现此行为 我在 chrome
  • 如何在 CSS 中将容器内的多个 div 居中

    我正在测试像 Windows Metro 风格的中心分隔线 container height 300px width 70 background EEE margin 10px auto position relative block ba
  • Radiobutton-带有纯 html/css 的按钮

    是否可以创建像这样的单选按钮JQuery http jqueryui com demos button radio那些 用纯html css thanks 试试这个小提琴 http jsfiddle net mcXm7 1 http jsf
  • 内部有图像的 CSS 响应式圆圈

    蓝色div有固定的高度和响应宽度 里面应该有一个相同高度的圆形图像 这是我尝试过的 https jsfiddle net xnkkrhnt 1 https jsfiddle net xnkkrhnt 1 如何使完美的中心圆始终为蓝色 div
  • 如何在node.js中使用express框架提供图像文件?

    在我的应用程序中 我使用 Express 框架来服务客户端文件 但是在为 html 元素提供背景图像时 它显示无法加载给定的 url var express require express http require http var app
  • 在 CSS 选择器中转义双引号

    我有一个 html 标签 div style background image url div images test jpg gt 我想使用 CSS 选择器来定位这个元素 我尝试了下面的选择器 但它抛出错误 document queryS
  • 如何将表情符号水平居中?

    在非视网膜显示屏上 unicode 表情符号字符似乎溢出了其边界框 但在视网膜显示屏上 它仍保留在字符边界内 那么如何在视网膜和非视网膜显示屏上将表情符号水平居中在 div 中呢 非视网膜 Retina 这适用于视网膜屏幕 但在非视网膜显示
  • 禁用 CSS 规则

    有什么办法可以禁用 CSS 规则吗 我问是因为我使用的是 Kendo UI 他们的规则非常全面 例如 k grid td styles 然而 如果我把我的桌子放在他们的桌子里面 它的风格也会类似 所以它的影响太大 需要删除 更换 我不想手动
  • 如何更改点击事件上的引导插入符指向方向

    我正在使用 2 3 2 引导程序 因为当我单击菜单按钮时 我可以更改插入符号图标的位置 我需要当我单击图标插入符号向上时 当您单击另一个项目时 插入符号返回到初始状态 这怎么可能 导航代码 div div class container d
  • 带有针织滑轨的垂直滚动条可实现长功能

    是否可以使用knitr幻灯片制作垂直滚动条以实现长功能 使用xaringan https slides yihui name xaringan 自定义样式 我正在根据上一个问题尝试一些选项如何使垂直滚动条出现在RMarkdown代码块中 h
  • onClick 事件适用于触摸屏设备上的触摸吗?

    我用过onclick我的网站上的活动 但是 当我在谷歌浏览器的开发人员模式移动视图中打开它时 触摸使用鼠标单击的元素没有任何反应 所以我的问题是 我还必须添加吗ontouch事件连同onclick事件或 onClick 事件适用于所有触摸屏
  • 用于生成多色文本的 jQuery 插件,该文本可在悬停时改变颜色

    我想为各种链接生成多色文本 并从预先指定的颜色数组中为各个字母随机分配颜色 当将鼠标悬停在带有文本的 div 上时 颜色会发生变化 我正在考虑一个 jQuery 插件 脚本将是可行的方法 我想知道是否存在这样的插件或近似插件 Thanks
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1

随机推荐

  • 启动另一个 Windows 应用商店应用程序

    当用户单击我的应用程序中的按钮时 是否可以启动不同的 Windows 应用商店应用程序 是的 您可以从您的应用程序启动其他 Windows 应用商店应用程序 例如 Bing 地图 地图应用程序支持协议激活 这意味着您可以使用特殊的 url
  • Apple 多个推送通知在通知托盘中不可见

    我基本上想在同一个应用程序中在 iOS 的通知托盘中显示多个推送通知 如果我的数据已打开 同时通过 APNS 触发推送通知 则此方案有效 但仅收到最新的数据 以防我离线并在一段时间后回来 此功能已得到 APNS 文档的确认 然而 这在 Wh
  • Laravel 如何使用另一台服务器作为文件存储

    我正在使用 Laravel 7 6 我在每台服务器中有两个 Laravel 项目 服务器是普通服务器 既不是 AWS 也不是 Digital Ocean 只是专用服务器 项目 1 位于服务器 1 中 项目 2 位于服务器 2 中 我的问题是
  • Servicereferences.clientconfig 更改值 silverlight

    我有一个 servicereference clientconfig 现在 我的安装团队正在为我的 silverlight 应用程序创建安装 这是一个问题 因为在 servicereference clientconfig 中有一组 Web
  • c# - 关闭浏览对话框导致表单关闭

    我有一个通过以下方式显示的表格 ShowDialog 表格没有CancelButton指定的 当我打开一个BrowseDialog从窗体中 然后关闭BrowseDialog 表格也被关闭 我怎样才能防止这种情况发生 单击 浏览 按钮时 br
  • 将 DTO 映射到域对象的最佳实践?

    我看到很多与映射相关的问题DTOs https en wikipedia org wiki Data transfer object到域对象 但我觉得他们没有回答我的问题 我以前使用过很多方法并有自己的意见 但我正在寻找更具体的方法 情况
  • PHP GET 请求,发送标头

    我需要执行获取请求并随之发送标头 我可以用什么来做到这一点 我需要设置的主要标头是浏览器标头 是否有捷径可寻 如果您使用 cURL 则可以使用curl setopt handle CURLOPT USERAGENT browser desc
  • Spring - 多种配置和@CompontentScan顺序

    我有多个Spring Configuration定义 bean 的类 我运行应用程序的主类有 SpringBootApplication scanBasePackageClasses BasePackage class 我的问题是 扫描这些
  • 什么是匹配不带子域的有效域名的正则表达式?

    我需要验证域名 谷歌网站 stackoverflow com 因此 一个最原始形式的域名 甚至不是像 www 这样的子域名 字符应该只是a z A Z 0 9 and period and dash 域名部分不应以破折号 开头或结尾 例如
  • 删除掩模图像中不需要的部分

    我使用 U2NET 成功计算了图像的掩模 如下所示 然而 正如我们所看到的 面具是not内部完全白色 并且在掩模外部 即左侧部分 也可以观察到一些不需要的伪影 我正在尝试使用膨胀和腐蚀操作来解决上述两个问题 但我认为这是错误的方法 因为它不
  • NHibernate 会话的生命周期应该是多长?

    我是 NHibernate 的新手 在过早关闭会话时遇到了一些问题 我通过重用会话而不是为每个事务打开一个会话来暂时解决了这个问题 然而 我的印象是 每次需要时打开会话是会话生命周期管理的推荐方法 不 所以 处理会话的推荐方法是什么 他们的
  • BSON |终端和非终端

    阅读通过BSON规范 http bsonspec org specification我遇到了terminal and 非终结符其中的条款 例如 有效的BSON数据由文档表示非终结符 以下基本类型用作终端在语法的其余部分 BSON 规范中的
  • 使用程序集版本控制属性的最佳方法是什么?

    The 汇编版本 http msdn microsoft com en us library system reflection assemblyversionattribute aspx and 程序集文件版本 http msdn mic
  • 如何向/使用 RESTful WCF 服务传递和使用 JSON 参数?

    我是 RESTful 服务的初学者 我需要创建一个接口 客户端需要在其中传递最多 9 个参数 我更喜欢将参数作为 JSON 对象传递 例如 如果我的 JSON 是 age 100 name foo messages msg 1 msg 2
  • 将朝鲜文音节分解为字母 (jamo)

    我正在开发一个处理韩语句子的程序 我需要一种方法将音节或块分解为其字母 对于那些不懂韩文的人来说 一个音节由 2 4 个字母 jamo 组成 可以创建数千种不同的组合 我想做的就是将这些音节分解成构成它的字母 我能够通过将其 Unicode
  • 在 Virtuoso 中定义端点

    如何在 Virtuoso 中为我的本体定义新端点 我能够通过 Virtuoso Conductor 的 RDF Store Upload 选项卡上传我的本体 现在我需要定义一组端点 以便能够通过 HTTP 在我的应用程序中使用它们 Virt
  • pandas 中的旋转问题(在 R 中传播)

    我在使用 pandas 中的 pd pivot 或 hub table 函数时遇到一些问题 我有这个 df pd DataFrame site id 0 a 1 a 2 b 3 b 4 c 5 c 6 a 7 a 8 b 9 b 10 c
  • Qt moc.exe 不生成 *.moc 文件

    我正在尝试建立qtestlib tutorial1 示例 但是testqstring moc当我运行时没有生成文件nmake 我在 Windows XP SP3 上运行 Qt 4 5 2 我复制了测试qstring cpp从教程目录到我的构
  • XSRF - 如何设置跨域 cookie

    我开发了 REST API 和两个 JavaScript 客户端 单页应用程序和本机应用程序 基于电子 在这两个客户端中 我的用户都通过 OAuth2 流程进行身份验证 将用户密码发送到服务器 获取访问令牌 以纯文本形式 和刷新令牌 以 h
  • 仅将边框添加到换行文本的底部

    我试图在一些换行文本上实现下划线 该下划线适合底行文本的宽度 同时仅出现在该底线下方 图1说明了期望的效果 Figure 1 使用这个 HTML h2 span class inline block optatur volendit inu